Доработка метода рендера
This commit is contained in:
parent
b5572c5de0
commit
0511c6ca1e
|
@ -24,7 +24,7 @@ class Scene
|
||||||
Scene(const Scene ©); // Конструктор копирования
|
Scene(const Scene ©); // Конструктор копирования
|
||||||
Scene& operator=(const Scene& other); // Оператор присваивания
|
Scene& operator=(const Scene& other); // Оператор присваивания
|
||||||
|
|
||||||
void render(ShaderProgram &shaderProgram, UBO &material_buffer); // Рендер сцены
|
void render(ShaderProgram &shaderProgram, UBO &material_buffer, bool recalc_animations = false); // Рендер сцены
|
||||||
|
|
||||||
void set_group_id(GLuint64 id, GLuint etc = 0); // Изменение флага записи идентификатора для всех моделей
|
void set_group_id(GLuint64 id, GLuint etc = 0); // Изменение флага записи идентификатора для всех моделей
|
||||||
|
|
||||||
|
|
|
@ -30,9 +30,16 @@ Scene& Scene::operator=(const Scene& other)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Рендер сцены
|
// Рендер сцены
|
||||||
void Scene::render(ShaderProgram &shaderProgram, UBO &material_buffer)
|
void Scene::render(ShaderProgram &shaderProgram, UBO &material_buffer, bool recalc_animations)
|
||||||
{
|
{
|
||||||
for (auto & model : models)
|
// Если требуется пересчитаем анимации
|
||||||
|
if (recalc_animations)
|
||||||
|
for (auto & animation : animations)
|
||||||
|
if (animation.isEnabled())
|
||||||
|
animation.process();
|
||||||
|
|
||||||
|
// Рендер моделей
|
||||||
|
for (auto & model : models)
|
||||||
model.render(shaderProgram, material_buffer);
|
model.render(shaderProgram, material_buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue