Mercurial > hg > orthanc-stone
comparison 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 |
comparison
equal
deleted
inserted
replaced
946:dbe3e1e47019 | 947:1091b2adeb5a |
---|---|
25 { | 25 { |
26 namespace Internals | 26 namespace Internals |
27 { | 27 { |
28 void OpenGLTextRenderer::LoadLayer(const TextSceneLayer& layer) | 28 void OpenGLTextRenderer::LoadLayer(const TextSceneLayer& layer) |
29 { | 29 { |
30 data_.reset(new OpenGLTextProgram::Data(context_, alphabet_, layer)); | 30 if (!context_.IsContextLost()) |
31 data_.reset(new OpenGLTextProgram::Data(context_, alphabet_, layer)); | |
32 else | |
33 data_.reset(NULL); | |
31 } | 34 } |
32 | 35 |
33 | 36 |
34 OpenGLTextRenderer::OpenGLTextRenderer(OpenGL::IOpenGLContext& context, | 37 OpenGLTextRenderer::OpenGLTextRenderer(OpenGL::IOpenGLContext& context, |
35 OpenGLTextProgram& program, | 38 OpenGLTextProgram& program, |
47 | 50 |
48 void OpenGLTextRenderer::Render(const AffineTransform2D& transform, | 51 void OpenGLTextRenderer::Render(const AffineTransform2D& transform, |
49 unsigned int canvasWidth, | 52 unsigned int canvasWidth, |
50 unsigned int canvasHeight) | 53 unsigned int canvasHeight) |
51 { | 54 { |
52 if (data_.get() != NULL) | 55 if (!context_.IsContextLost() && data_.get() != NULL) |
53 { | 56 { |
54 program_.Apply(texture_, *data_, transform); | 57 program_.Apply(texture_, *data_, transform); |
55 } | 58 } |
56 } | 59 } |
57 | 60 |
58 | |
59 void OpenGLTextRenderer::Update(const ISceneLayer& layer) | 61 void OpenGLTextRenderer::Update(const ISceneLayer& layer) |
60 { | 62 { |
61 LoadLayer(dynamic_cast<const TextSceneLayer&>(layer)); | 63 LoadLayer(dynamic_cast<const TextSceneLayer&>(layer)); |
62 } | 64 } |
63 } | 65 } |