X-Git-Url: https://git.ucc.asn.au/?p=ipdf%2Fcode.git;a=blobdiff_plain;f=src%2Fview.h;h=e4254de0e52eb5f5ec5cba5b3ca6dfb0a09b5f54;hp=ff91f46517eec61f686e55b6fe76377c54553b01;hb=e88c1ef58e2446cf57d5f7b0d5d4e5bfff0b8c37;hpb=d3e941df79b54b698a5b8a1d4763346c4d6eb3d7 diff --git a/src/view.h b/src/view.h index ff91f46..e4254de 100644 --- a/src/view.h +++ b/src/view.h @@ -48,10 +48,12 @@ namespace IPDF { float x0, y0; float x1, y1; - }; + } __attribute__((packed)); void PrepareRender(); // call when m_render_dirty is true - void UpdateObjBoundsVBO(); // call when m_buffer_dirty is true + void UpdateObjBoundsVBO(unsigned first_obj, unsigned last_obj); // call when m_buffer_dirty is true + + void RenderRange(int width, int height, unsigned first_obj, unsigned last_obj); bool m_use_gpu_transform; bool m_use_gpu_rendering; @@ -73,6 +75,13 @@ namespace IPDF // Trust me it will be easier to generalise things this way. Even though there are pointers. std::vector m_object_renderers; uint8_t * m_cpu_rendering_pixels; // pixels to be used for CPU rendering + +#ifndef QUADTREE_DISABLED + QuadTreeIndex m_current_quadtree_node; // The highest node we will traverse. + int m_quadtree_max_depth; // The maximum quadtree depth. + void RenderQuadtreeNode(int width, int height, QuadTreeIndex node, int remaining_depth); + +#endif }; }