diff Framework/Scene2D/Internals/OpenGLTextRenderer.cpp @ 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 6e888cf6a48b
children 2d8ab34c8c91
line wrap: on
line diff
--- a/Framework/Scene2D/Internals/OpenGLTextRenderer.cpp	Tue Aug 06 15:07:23 2019 +0200
+++ b/Framework/Scene2D/Internals/OpenGLTextRenderer.cpp	Sat Aug 10 13:07:31 2019 +0200
@@ -27,7 +27,10 @@
   {
     void OpenGLTextRenderer::LoadLayer(const TextSceneLayer& layer)
     {
-      data_.reset(new OpenGLTextProgram::Data(context_, alphabet_, layer));
+      if (!context_.IsContextLost())
+        data_.reset(new OpenGLTextProgram::Data(context_, alphabet_, layer));
+      else
+        data_.reset(NULL);
     }
 
 
@@ -49,13 +52,12 @@
                                     unsigned int canvasWidth,
                                     unsigned int canvasHeight)
     {
-      if (data_.get() != NULL)
+      if (!context_.IsContextLost() && data_.get() != NULL)
       {
         program_.Apply(texture_, *data_, transform);
       }
     }
 
-      
     void OpenGLTextRenderer::Update(const ISceneLayer& layer)
     {
       LoadLayer(dynamic_cast<const TextSceneLayer&>(layer));