summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@collabora.co.uk>2014-04-15 00:27:25 +0200
committerMarkus Mohrhard <markus.mohrhard@collabora.co.uk>2014-04-15 01:51:27 +0200
commit3bd173af500d2e30f004cac4ca5a9309c5a49741 (patch)
treeb583ea83a29c803844645b1614b0edf400db0d7f /include
parentd321709febe1222e582614b200e7c155b2f0ee7b (diff)
only render through OpenGL after successful context creation
Change-Id: I60ebceee2bf0eca1c7022e14fc43128347d682b5
Diffstat (limited to 'include')
-rw-r--r--include/svx/svdoopengl.hxx4
-rw-r--r--include/vcl/IOpenGLRenderer.hxx28
-rw-r--r--include/vcl/OpenGLContext.hxx5
3 files changed, 34 insertions, 3 deletions
diff --git a/include/svx/svdoopengl.hxx b/include/svx/svdoopengl.hxx
index 7760b823717d..a8e7a422d4c9 100644
--- a/include/svx/svdoopengl.hxx
+++ b/include/svx/svdoopengl.hxx
@@ -23,7 +23,7 @@ namespace sdr { namespace contact {
class IOpenGLRenderer;
-class SVX_DLLPUBLIC SdrOpenGLObj : public SdrObject
+class SVX_DLLPUBLIC SdrOpenGLObj : public SdrObject, public IOpenGLInfoProvider
{
public:
virtual ~SdrOpenGLObj();
@@ -36,6 +36,8 @@ public:
void setRenderer(IOpenGLRenderer* pRenderer);
IOpenGLRenderer* getRenderer();
+ virtual bool isOpenGLInitialized();
+
private:
OpenGLContext maContext;
diff --git a/include/vcl/IOpenGLRenderer.hxx b/include/vcl/IOpenGLRenderer.hxx
index 3efb2c5f3b38..b5b723bbe6e8 100644
--- a/include/vcl/IOpenGLRenderer.hxx
+++ b/include/vcl/IOpenGLRenderer.hxx
@@ -10,12 +10,36 @@
#ifndef VCL_IOPENGLRENDER_HXX
#define VCL_IOPENGLRENDER_HXX
+class IOpenGLInfoProvider
+{
+public:
+ virtual ~IOpenGLInfoProvider() {}
+
+ virtual bool isOpenGLInitialized() = 0;
+};
+
class IOpenGLRenderer
{
public:
- virtual ~IOpenGLRenderer() {};
- virtual void operator()() = 0;
+ IOpenGLRenderer():
+ mpInfoProvider(NULL) {}
+ virtual ~IOpenGLRenderer() {}
+
+ bool isOpenGLInitialized()
+ {
+ if(mpInfoProvider)
+ return mpInfoProvider->isOpenGLInitialized();
+
+ return false;
+ }
+
+ void setInfoProvider(IOpenGLInfoProvider* pInfo)
+ {
+ mpInfoProvider = pInfo;
+ }
+private:
+ IOpenGLInfoProvider* mpInfoProvider;
};
#endif
diff --git a/include/vcl/OpenGLContext.hxx b/include/vcl/OpenGLContext.hxx
index 220efb5b75e4..56d6a56890c3 100644
--- a/include/vcl/OpenGLContext.hxx
+++ b/include/vcl/OpenGLContext.hxx
@@ -152,6 +152,11 @@ public:
void renderToFile();
+ bool isInitialized()
+ {
+ return mbInitialized;
+ }
+
private:
SAL_DLLPRIVATE bool initWindow();