mirror of
https://github.com/brunoherbelin/vimix.git
synced 2025-12-11 18:34:58 +01:00
Optimize reordering of sources nodes in Views (perfom sorting on scenes
only if layer view changed)
This commit is contained in:
16
View.cpp
16
View.cpp
@@ -22,6 +22,8 @@
|
||||
#define CIRCLE_PIXELS 64
|
||||
#define CIRCLE_PIXEL_RADIUS 1024.0
|
||||
|
||||
bool View::need_reordering_ = true;
|
||||
|
||||
View::View(Mode m) : mode_(m)
|
||||
{
|
||||
}
|
||||
@@ -43,8 +45,9 @@ void View::update(float dt)
|
||||
// recursive update from root of scene
|
||||
scene.update( dt );
|
||||
|
||||
// reorder depth
|
||||
scene.fg()->sort();
|
||||
// reorder depth if needed
|
||||
if (View::need_reordering_)
|
||||
scene.fg()->sort();
|
||||
}
|
||||
|
||||
void View::drag (glm::vec2 from, glm::vec2 to)
|
||||
@@ -84,7 +87,6 @@ MixingView::MixingView() : View(MIXING)
|
||||
Mesh *circle = new Mesh("mesh/circle.ply");
|
||||
circle->shader()->color = pink;
|
||||
scene.bg()->attach(circle);
|
||||
|
||||
}
|
||||
|
||||
MixingView::~MixingView()
|
||||
@@ -106,7 +108,6 @@ void MixingView::zoom( float factor )
|
||||
scene.root()->scale_.y = z;
|
||||
}
|
||||
|
||||
|
||||
void MixingView::grab (glm::vec2 from, glm::vec2 to, Source *s, std::pair<Node *, glm::vec2>)
|
||||
{
|
||||
if (!s)
|
||||
@@ -133,7 +134,6 @@ void MixingView::grab (glm::vec2 from, glm::vec2 to, Source *s, std::pair<Node *
|
||||
s->touch();
|
||||
}
|
||||
|
||||
|
||||
uint MixingView::textureMixingQuadratic()
|
||||
{
|
||||
static GLuint texid = 0;
|
||||
@@ -194,7 +194,6 @@ RenderView::~RenderView()
|
||||
delete frame_buffer_;
|
||||
}
|
||||
|
||||
|
||||
void RenderView::setResolution(glm::vec3 resolution)
|
||||
{
|
||||
if (resolution.x < 128.f || resolution.y < 128.f)
|
||||
@@ -355,7 +354,6 @@ LayerView::LayerView() : View(LAYER), aspect_ratio(1.f)
|
||||
Frame *border = new Frame(Frame::ROUND_SHADOW);
|
||||
border->color = glm::vec4( 0.8f, 0.f, 0.8f, 0.7f );
|
||||
scene.bg()->attach(border);
|
||||
|
||||
}
|
||||
|
||||
LayerView::~LayerView()
|
||||
@@ -365,7 +363,6 @@ LayerView::~LayerView()
|
||||
|
||||
void LayerView::draw ()
|
||||
{
|
||||
|
||||
// update rendering of render frame
|
||||
FrameBuffer *output = Mixer::manager().session()->frame();
|
||||
if (output)
|
||||
@@ -420,5 +417,8 @@ void LayerView::grab (glm::vec2 from, glm::vec2 to, Source *s, std::pair<Node *,
|
||||
|
||||
// request update
|
||||
s->touch();
|
||||
|
||||
// request reordering
|
||||
View::need_reordering_ = true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user