git.ucc.asn.au
/
ipdf
/
code.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
More testing particularly of negatives
[ipdf/code.git]
/
src
/
view.h
diff --git
a/src/view.h
b/src/view.h
index
ee0fdcd
..
ca4c808
100644
(file)
--- a/
src/view.h
+++ b/
src/view.h
@@
-11,6
+11,7
@@
namespace IPDF
{
namespace IPDF
{
+ class Screen;
/**
* The View class manages a rectangular view into the document.
* It is responsible for coordinate transforms and rendering the document.
/**
* The View class manages a rectangular view into the document.
* It is responsible for coordinate transforms and rendering the document.
@@
-19,7
+20,7
@@
namespace IPDF
class View
{
public:
class View
{
public:
- View(Document & document, const Rect & bounds = Rect(0,0,1,1), const Colour & colour = Colour(0.f,0.f,0.f,1.f));
+ View(Document & document,
Screen & screen,
const Rect & bounds = Rect(0,0,1,1), const Colour & colour = Colour(0.f,0.f,0.f,1.f));
virtual ~View();
void Render(int width = 0, int height = 0);
virtual ~View();
void Render(int width = 0, int height = 0);
@@
-35,7
+36,13
@@
namespace IPDF
const bool UsingGPURendering() const { return m_use_gpu_rendering; } // whether GPU shaders are used or CPU rendering
void ToggleGPUTransform() { m_use_gpu_transform = (!m_use_gpu_transform); m_bounds_dirty = true; m_buffer_dirty = true; }
void ToggleGPURendering() { m_use_gpu_rendering = (!m_use_gpu_rendering); m_bounds_dirty = true; m_buffer_dirty = true; }
const bool UsingGPURendering() const { return m_use_gpu_rendering; } // whether GPU shaders are used or CPU rendering
void ToggleGPUTransform() { m_use_gpu_transform = (!m_use_gpu_transform); m_bounds_dirty = true; m_buffer_dirty = true; }
void ToggleGPURendering() { m_use_gpu_rendering = (!m_use_gpu_rendering); m_bounds_dirty = true; m_buffer_dirty = true; }
-
+
+
+ void ForceBoundsDirty() {m_bounds_dirty = true;}
+ void ForceBufferDirty() {m_buffer_dirty = true;}
+ void ForceRenderDirty() {m_render_dirty = true;}
+
+
private:
struct GPUObjBounds
{
private:
struct GPUObjBounds
{
@@
-52,6
+59,7
@@
namespace IPDF
bool m_buffer_dirty; // the object bounds have changed (also occurs when changing view, but only when not using GPU transforms)
bool m_render_dirty; // the document has changed (occurs when document first loaded)
Document & m_document;
bool m_buffer_dirty; // the object bounds have changed (also occurs when changing view, but only when not using GPU transforms)
bool m_render_dirty; // the document has changed (occurs when document first loaded)
Document & m_document;
+ Screen & m_screen;
FrameBuffer m_cached_display;
Rect m_bounds;
Colour m_colour;
FrameBuffer m_cached_display;
Rect m_bounds;
Colour m_colour;
@@
-64,7
+72,13
@@
namespace IPDF
// ObjectRenderers to be initialised in constructor
// Trust me it will be easier to generalise things this way. Even though there are pointers.
std::vector<ObjectRenderer*> m_object_renderers;
// ObjectRenderers to be initialised in constructor
// Trust me it will be easier to generalise things this way. Even though there are pointers.
std::vector<ObjectRenderer*> 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.
+
+#endif
};
}
};
}
UCC
git Repository :: git.ucc.asn.au