X-Git-Url: https://git.ucc.asn.au/?p=ipdf%2Fcode.git;a=blobdiff_plain;f=src%2Fview.cpp;h=73331ef3c7bc76ba9df43aa762cfef3d3e26f94d;hp=af1980a57a4cc3ce1482324dd5765dc19920a402;hb=e297312c8c82e52abd3507c861e85db497ca7e81;hpb=54798ed9050d0742c6cdab067fad0cc364b1d6b2 diff --git a/src/view.cpp b/src/view.cpp index af1980a..73331ef 100644 --- a/src/view.cpp +++ b/src/view.cpp @@ -32,6 +32,12 @@ View::View(Document & document, Screen & screen, const Rect & bounds, const Colo // 2. Implement class inheriting from ObjectRenderer using that type in objectrenderer.h and objectrenderer.cpp // 3. Add it here // 4. Profit + + +#ifndef QUADTREE_DISABLED + m_quadtree_max_depth = 1; + m_current_quadtree_node = document.GetQuadTree().root_id; +#endif } /** @@ -88,7 +94,7 @@ void View::ScaleAroundPoint(Real x, Real y, Real scale_amount) m_bounds.y = y - top; m_bounds.w *= scale_amount; m_bounds.h *= scale_amount; - Debug("View Bounds => %s", m_bounds.Str().c_str()); + //Debug("Scale at {%s, %s} by %s View Bounds => %s", x.Str().c_str(), y.Str().c_str(), scale_amount.Str().c_str(), m_bounds.Str().c_str()); if (!m_use_gpu_transform) m_buffer_dirty = true; m_bounds_dirty = true; @@ -162,6 +168,9 @@ void View::Render(int width, int height) m_cached_display.Bind(); //NOTE: This is redundant; Clear already calls Bind m_cached_display.Clear(); + // When we QuadTree, this will be magic. + int first_obj = 0; + int last_obj = m_document.ObjectCount(); // Render using GPU if (m_use_gpu_rendering) @@ -178,7 +187,7 @@ void View::Render(int width, int height) for (unsigned i = 0; i < m_object_renderers.size(); ++i) { - m_object_renderers[i]->RenderUsingGPU(); + m_object_renderers[i]->RenderUsingGPU(first_obj, last_obj); } glDisableVertexAttribArray(0); @@ -203,7 +212,7 @@ void View::Render(int width, int height) for (unsigned i = 0; i < m_object_renderers.size(); ++i) { - m_object_renderers[i]->RenderUsingCPU(m_document.m_objects, *this, {m_cpu_rendering_pixels, width, height}); + m_object_renderers[i]->RenderUsingCPU(m_document.m_objects, *this, {m_cpu_rendering_pixels, width, height}, first_obj, last_obj); } m_screen.RenderPixels(0,0,width, height, m_cpu_rendering_pixels); //TODO: Make this work :( // Debug for great victory (do something similar for GPU and compare?)