Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save defHLT/7502522 to your computer and use it in GitHub Desktop.
Save defHLT/7502522 to your computer and use it in GitHub Desktop.
From 0ddd6bc0493696f388c86f758763ff312b844afd Mon Sep 17 00:00:00 2001
From: Josh Handley <[email protected]>
Date: Tue, 16 Jul 2013 08:09:57 -0400
Subject: [PATCH] Added UNIFORM_WORLD_VIEW uniform to MOAIShader which is bound
to worldView matrix (worldViewProj without projection)
Signed-off-by: Josh Handley <[email protected]>
---
src/moai-sim/MOAIShader.cpp | 13 ++++++++++++-
src/moai-sim/MOAIShader.h | 2 ++
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/src/moai-sim/MOAIShader.cpp b/src/moai-sim/MOAIShader.cpp
index 9a95fa0..7798b49 100644
--- a/src/moai-sim/MOAIShader.cpp
+++ b/src/moai-sim/MOAIShader.cpp
@@ -69,6 +69,7 @@ void MOAIShaderUniform::Bind () {
case UNIFORM_VIEW_PROJ:
case UNIFORM_WORLD:
case UNIFORM_WORLD_VIEW_PROJ:
+ case UNIFORM_WORLD_VIEW:
case UNIFORM_TRANSFORM:
zglUniformMatrix4fv ( this->mAddr, 1, false, this->mBuffer );
break;
@@ -106,6 +107,14 @@ void MOAIShaderUniform::BindPipelineTransforms ( const ZLMatrix4x4& world, const
this->Bind ();
break;
}
+ case UNIFORM_WORLD_VIEW: {
+
+ ZLMatrix4x4 mtx = world;
+ mtx.Append ( view );
+ this->SetValue ( mtx );
+ this->Bind ();
+ break;
+ }
case UNIFORM_WORLD_VIEW_PROJ: {
ZLMatrix4x4 mtx = world;
@@ -172,6 +181,7 @@ void MOAIShaderUniform::SetType ( u32 type ) {
}
case UNIFORM_VIEW_PROJ:
case UNIFORM_WORLD:
+ case UNIFORM_WORLD_VIEW:
case UNIFORM_WORLD_VIEW_PROJ:
case UNIFORM_TRANSFORM: {
@@ -336,7 +346,7 @@ int MOAIShader::_clearUniform ( lua_State* L ) {
@in string name
@opt number type One of MOAIShader.UNIFORM_COLOR, MOAIShader.UNIFORM_FLOAT, MOAIShader.UNIFORM_INT,
MOAIShader.UNIFORM_TRANSFORM, MOAIShader.UNIFORM_PEN_COLOR, MOAIShader.UNIFORM_VIEW_PROJ,
- MOAIShader.UNIFORM_WORLD, MOAIShader.UNIFORM_WORLD_VIEW_PROJ
+ MOAIShader.UNIFORM_WORLD, MOAIShader.UNIFORM_WORLD_VIEW, MOAIShader.UNIFORM_WORLD_VIEW_PROJ
@out nil
*/
int MOAIShader::_declareUniform ( lua_State* L ) {
@@ -773,6 +783,7 @@ void MOAIShader::RegisterLuaClass ( MOAILuaState& state ) {
state.SetField ( -1, "UNIFORM_TRANSFORM", ( u32 )MOAIShaderUniform::UNIFORM_TRANSFORM );
state.SetField ( -1, "UNIFORM_VIEW_PROJ", ( u32 )MOAIShaderUniform::UNIFORM_VIEW_PROJ );
state.SetField ( -1, "UNIFORM_WORLD", ( u32 )MOAIShaderUniform::UNIFORM_WORLD );
+ state.SetField ( -1, "UNIFORM_WORLD_VIEW", ( u32 )MOAIShaderUniform::UNIFORM_WORLD_VIEW );
state.SetField ( -1, "UNIFORM_WORLD_VIEW_PROJ", ( u32 )MOAIShaderUniform::UNIFORM_WORLD_VIEW_PROJ );
}
diff --git a/src/moai-sim/MOAIShader.h b/src/moai-sim/MOAIShader.h
index ce413a9..0adfef1 100644
--- a/src/moai-sim/MOAIShader.h
+++ b/src/moai-sim/MOAIShader.h
@@ -63,6 +63,7 @@ public:
UNIFORM_VIEW_PROJ,
UNIFORM_WORLD,
UNIFORM_WORLD_VIEW_PROJ,
+ UNIFORM_WORLD_VIEW,
};
MOAIShaderUniform ();
@@ -83,6 +84,7 @@ public:
@const UNIFORM_TRANSFORM
@const UNIFORM_VIEW_PROJ
@const UNIFORM_WORLD
+ @const UNIFORM_WORLD_VIEW
@const UNIFORM_WORLD_VIEW_PROJ
*/
class MOAIShader :
--
1.8.3.2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment