X-Git-Url: https://git.ucc.asn.au/?p=ipdf%2Fcode.git;a=blobdiff_plain;f=src%2Fview.h;h=e1b3291a8d1e131460224c55a336a288321b3353;hp=cd9442020be07a3dafd71efa2b81ec18df24f444;hb=f0b6c9b6b95fde134927c395afbfbbbc057868e6;hpb=e08b7671a4592481aa73d68b30b7bd1d96e75002 diff --git a/src/view.h b/src/view.h index cd94420..e1b3291 100644 --- a/src/view.h +++ b/src/view.h @@ -8,22 +8,16 @@ #include "path.h" #include "transformationtype.h" -#define USE_GPU_TRANSFORM true +#define USE_GPU_TRANSFORM false #define USE_GPU_RENDERING true #define USE_SHADING !(USE_GPU_RENDERING) && true -#ifdef TRANSFORM_BEZIERS_TO_PATH + #include "gmprat.h" -#endif + namespace IPDF { - #ifdef TRANSFORM_BEZIERS_TO_PATH - #pragma message "View using Gmprat for bounds" - typedef Gmprat VReal; - #else - typedef Real VReal; - #endif typedef TRect VRect; class Screen; @@ -73,6 +67,8 @@ namespace IPDF void ForceBufferDirty() {m_buffer_dirty = true;} void ForceRenderDirty() {m_render_dirty = true;} + void QueryGPUBounds(const char * filename, const char * mode="r"); + void SetLazyRendering(bool state = true) {m_lazy_rendering = state;} bool UsingLazyRendering() const {return m_lazy_rendering;} @@ -82,6 +78,9 @@ namespace IPDF void SaveGPUBMP(const char * filename); Document & Doc() {return m_document;} +#ifndef QUADTREE_DISABLED + QuadTreeIndex GetCurrentQuadtreeNode() { return m_current_quadtree_node; } +#endif private: struct GPUObjBounds @@ -89,6 +88,8 @@ namespace IPDF float x0, y0; float x1, y1; } __attribute__((packed)); + + void PrepareRender(); // call when m_render_dirty is true void UpdateObjBoundsVBO(unsigned first_obj, unsigned last_obj); // call when m_buffer_dirty is true @@ -127,6 +128,8 @@ namespace IPDF bool m_show_fill_bounds; bool m_lazy_rendering;// don't redraw frames unless we need to + + FILE * m_query_gpu_bounds_on_next_frame; #ifndef QUADTREE_DISABLED