diff options
author | Mitchell Stokes <mogurijin@gmail.com> | 2012-12-25 10:20:50 +0400 |
---|---|---|
committer | Mitchell Stokes <mogurijin@gmail.com> | 2012-12-25 10:20:50 +0400 |
commit | 62b6303735a1bbdb0f978ecf6afc1829d13ebe7b (patch) | |
tree | a69e00d21893bb7c64ef0fcf124c94247b3dbace /source/gameengine/GamePlayer/common | |
parent | f339c63584526a56e5053dc288ccf557a722a202 (diff) |
BGE: Fixing an assert with the canvas' GetViewPort(). bf_gpu was changing the viewport when handling shadow buffers. KX_LightObject::BindShadowBuffer() now updates the canvas with the new viewport information from bf_gpu.
Diffstat (limited to 'source/gameengine/GamePlayer/common')
-rw-r--r-- | source/gameengine/GamePlayer/common/GPC_Canvas.cpp | 10 | ||||
-rw-r--r-- | source/gameengine/GamePlayer/common/GPC_Canvas.h | 1 |
2 files changed, 10 insertions, 1 deletions
diff --git a/source/gameengine/GamePlayer/common/GPC_Canvas.cpp b/source/gameengine/GamePlayer/common/GPC_Canvas.cpp index b5c1c29238a..058454ca352 100644 --- a/source/gameengine/GamePlayer/common/GPC_Canvas.cpp +++ b/source/gameengine/GamePlayer/common/GPC_Canvas.cpp @@ -131,7 +131,15 @@ void GPC_Canvas::SetViewPort(int x1, int y1, int x2, int y2) glViewport(x1,y1,x2-x1 + 1,y2-y1 + 1); glScissor(x1,y1,x2-x1 + 1,y2-y1 + 1); -}; +} + +void GPC_Canvas::UpdateViewPort(int x1, int y1, int x2, int y2) +{ + m_viewport[0] = x1; + m_viewport[1] = y1; + m_viewport[2] = x2; + m_viewport[3] = y2; +} const int *GPC_Canvas::GetViewPort() { diff --git a/source/gameengine/GamePlayer/common/GPC_Canvas.h b/source/gameengine/GamePlayer/common/GPC_Canvas.h index ec5375c0e13..00c5911a8b4 100644 --- a/source/gameengine/GamePlayer/common/GPC_Canvas.h +++ b/source/gameengine/GamePlayer/common/GPC_Canvas.h @@ -155,6 +155,7 @@ public: ); void SetViewPort(int x1, int y1, int x2, int y2); + void UpdateViewPort(int x1, int y1, int x2, int y2); const int *GetViewPort(); void ClearColor(float r, float g, float b, float a); |