From 7e1df6e67c3fbf3dd982dee6c576439b23935fbc Mon Sep 17 00:00:00 2001 From: Josh Yelon Date: Wed, 9 Nov 2005 23:30:21 +0000 Subject: [PATCH] Added cardcenter --- panda/src/glstuff/glShaderContext_src.cxx | 21 ++++++++++++++++++++- panda/src/glstuff/glShaderContext_src.h | 1 + 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/panda/src/glstuff/glShaderContext_src.cxx b/panda/src/glstuff/glShaderContext_src.cxx index 0fef3106f6..eb592574cb 100755 --- a/panda/src/glstuff/glShaderContext_src.cxx +++ b/panda/src/glstuff/glShaderContext_src.cxx @@ -351,7 +351,7 @@ unbind() void CLP(ShaderContext):: issue_cg_auto_bind(const ShaderAutoBind &bind, GSG *gsg) { - LVecBase4f t; + LVecBase4f t; float xhi,yhi; int px,py; CGparameter p = bind.parameter; switch(bind.value) { @@ -387,6 +387,17 @@ issue_cg_auto_bind(const ShaderAutoBind &bind, GSG *gsg) t[3] = 1; cgGLSetParameter4fv(p, t.get_data()); return; + case SIC_sys_cardcenter: + px = gsg->_current_display_region->get_pixel_width(); + py = gsg->_current_display_region->get_pixel_height(); + xhi = (px*1.0) / Texture::up_to_power_2(px); + yhi = (py*1.0) / Texture::up_to_power_2(py); + t[0] = xhi*0.5; + t[1] = yhi*0.5; + t[2] = 1; + t[3] = 1; + cgGLSetParameter4fv(p, t.get_data()); + return; } } #endif @@ -1118,6 +1129,14 @@ compile_cg_parameter(CGparameter p) _cg_auto_param.push_back(bind); return true; } + if (pieces[1] == "cardcenter") { + if (!errchk_cg_parameter_type(p, CG_FLOAT2)) { + return false; + } + bind.value = SIC_sys_cardcenter; + _cg_auto_param.push_back(bind); + return true; + } errchk_cg_output(p,"unknown system parameter"); return false; } diff --git a/panda/src/glstuff/glShaderContext_src.h b/panda/src/glstuff/glShaderContext_src.h index 029926a239..28dd6a2b25 100755 --- a/panda/src/glstuff/glShaderContext_src.h +++ b/panda/src/glstuff/glShaderContext_src.h @@ -74,6 +74,7 @@ private: // From this point forward, it's okay to insert stuff. SIC_sys_windowsize, SIC_sys_pixelsize, + SIC_sys_cardcenter, }; struct ShaderAutoBind { CGparameter parameter;