diff Framework/OpenGL/OpenGLProgram.h @ 947:1091b2adeb5a toa2019081001

Fixed animation frame stopping when returning false + big work on the OpenGL objects to make them lost context-safe + debug code to forcefully tag a context as lost + debug macros
author Benjamin Golinvaux <bgo@osimis.io>
date Sat, 10 Aug 2019 13:07:31 +0200
parents e36e69a380a5
children 2d8ab34c8c91
line wrap: on
line diff
--- a/Framework/OpenGL/OpenGLProgram.h	Tue Aug 06 15:07:23 2019 +0200
+++ b/Framework/OpenGL/OpenGLProgram.h	Sat Aug 10 13:07:31 2019 +0200
@@ -30,14 +30,15 @@
 {
   namespace OpenGL
   {
+    class IOpenGLContext;
+
     class OpenGLProgram : public boost::noncopyable
     {
-    private:
-      GLuint  program_;
-
     public:
       // WARNING: A global OpenGL context must be active to create this object!
-      OpenGLProgram();
+      // the context is only passed so that it can be checked for loss
+      // when destructing the program resource
+      OpenGLProgram(OpenGL::IOpenGLContext& context);
 
       ~OpenGLProgram();
 
@@ -50,6 +51,9 @@
       GLint GetUniformLocation(const std::string& name);
 
       GLint GetAttributeLocation(const std::string& name);
+    private:
+      GLuint  program_;
+      OpenGL::IOpenGLContext& context_;
     };
   }
 }