Browse Source

Fix incorrect clipping due to stale viewport dimensions (#680)

Someone Somewhere 1 year ago
parent
commit
1b6411f664
3 changed files with 5 additions and 3 deletions
  1. 1 1
      Include/RmlUi/Core/RenderManager.h
  2. 1 1
      Source/Core/Context.cpp
  3. 3 1
      Source/Core/RenderManager.cpp

+ 1 - 1
Include/RmlUi/Core/RenderManager.h

@@ -76,7 +76,7 @@ public:
 	RenderManager(RenderInterface* render_interface);
 	RenderManager(RenderInterface* render_interface);
 	~RenderManager();
 	~RenderManager();
 
 
-	void PrepareRender();
+	void PrepareRender(Vector2i dimensions);
 	void SetViewport(Vector2i dimensions);
 	void SetViewport(Vector2i dimensions);
 	Vector2i GetViewport() const;
 	Vector2i GetViewport() const;
 
 

+ 1 - 1
Source/Core/Context.cpp

@@ -216,7 +216,7 @@ bool Context::Render()
 {
 {
 	RMLUI_ZoneScoped;
 	RMLUI_ZoneScoped;
 
 
-	render_manager->PrepareRender();
+	render_manager->PrepareRender(dimensions);
 
 
 	root->Render();
 	root->Render();
 
 

+ 3 - 1
Source/Core/RenderManager.cpp

@@ -68,7 +68,7 @@ RenderManager::~RenderManager()
 	ReleaseAllTextures();
 	ReleaseAllTextures();
 }
 }
 
 
-void RenderManager::PrepareRender()
+void RenderManager::PrepareRender(Vector2i dimensions)
 {
 {
 #ifdef RMLUI_DEBUG
 #ifdef RMLUI_DEBUG
 	const RenderState default_state;
 	const RenderState default_state;
@@ -77,6 +77,8 @@ void RenderManager::PrepareRender()
 	RMLUI_ASSERT(state.transform == default_state.transform);
 	RMLUI_ASSERT(state.transform == default_state.transform);
 	RMLUI_ASSERTMSG(render_stack.empty(), "Unbalanced render stack detected, ensure every PushLayer call has a corresponding call to PopLayer.");
 	RMLUI_ASSERTMSG(render_stack.empty(), "Unbalanced render stack detected, ensure every PushLayer call has a corresponding call to PopLayer.");
 #endif
 #endif
+
+	SetViewport(dimensions);
 }
 }
 
 
 void RenderManager::SetViewport(Vector2i dimensions)
 void RenderManager::SetViewport(Vector2i dimensions)