GeometryShaderManager: Set viewport in SetConstants().

Setting it in the callback is too early.
This commit is contained in:
Jules Blok 2014-12-26 17:58:59 +01:00
parent 339383b8dd
commit 86120bfc97
1 changed files with 12 additions and 3 deletions

View File

@ -20,6 +20,7 @@ GeometryShaderConstants GeometryShaderManager::constants;
bool GeometryShaderManager::dirty; bool GeometryShaderManager::dirty;
static bool s_projection_changed; static bool s_projection_changed;
static bool s_viewport_changed;
void GeometryShaderManager::Init() void GeometryShaderManager::Init()
{ {
@ -64,13 +65,21 @@ void GeometryShaderManager::SetConstants()
dirty = true; dirty = true;
} }
if (s_viewport_changed)
{
s_viewport_changed = false;
constants.lineptparams[0] = 2.0f * xfmem.viewport.wd;
constants.lineptparams[1] = -2.0f * xfmem.viewport.ht;
dirty = true;
}
} }
void GeometryShaderManager::SetViewportChanged() void GeometryShaderManager::SetViewportChanged()
{ {
constants.lineptparams[0] = 2.0f * xfmem.viewport.wd; s_viewport_changed = true;
constants.lineptparams[1] = -2.0f * xfmem.viewport.ht;
dirty = true;
} }
void GeometryShaderManager::SetProjectionChanged() void GeometryShaderManager::SetProjectionChanged()