X-Git-Url: https://git.ucc.asn.au/?p=ipdf%2Fcode.git;a=blobdiff_plain;f=src%2Fview.h;h=e1b3291a8d1e131460224c55a336a288321b3353;hp=47eb0fbfcc65b7ee5218fbf721980318a2f70c77;hb=HEAD;hpb=326f04a375ce3120f7e8957e3d7cd5f296f513e3 diff --git a/src/view.h b/src/view.h index 47eb0fb..e1b3291 100644 --- a/src/view.h +++ b/src/view.h @@ -8,21 +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 - typedef Gmprat VReal; - #else - typedef Real VReal; - #endif typedef TRect VRect; class Screen; @@ -39,8 +34,8 @@ namespace IPDF void Render(int width = 0, int height = 0); - void Translate(VReal x, VReal y); - void ScaleAroundPoint(VReal x, VReal y, VReal scale_amount); + void Translate(Real x, Real y); + void ScaleAroundPoint(Real x, Real y, Real scale_amount); void SetBounds(const Rect & new_bounds); Rect TransformToViewCoords(const Rect& inp) const; @@ -72,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;} @@ -81,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 @@ -88,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 @@ -126,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