[Bf-blender-cvs] [4f767e3] master: BGE: Cleanup: Code style BL_Shader
Thomas Szepe
noreply at git.blender.org
Sun Oct 25 19:44:03 CET 2015
Commit: 4f767e37e8452bdc675e362b566fe9aeedb783e4
Author: Thomas Szepe
Date: Sun Oct 25 19:43:46 2015 +0100
Branches: master
https://developer.blender.org/rB4f767e37e8452bdc675e362b566fe9aeedb783e4
BGE: Cleanup: Code style BL_Shader
Reviewers: lordloki, youle, campbellbarton, sergey, kupoman, moguri, panzergame
Reviewed By: panzergame
Projects: #game_engine
Differential Revision: https://developer.blender.org/D1397
===================================================================
M source/gameengine/Ketsji/BL_Shader.cpp
M source/gameengine/Ketsji/BL_Shader.h
===================================================================
diff --git a/source/gameengine/Ketsji/BL_Shader.cpp b/source/gameengine/Ketsji/BL_Shader.cpp
index a59c368..4b229f5 100644
--- a/source/gameengine/Ketsji/BL_Shader.cpp
+++ b/source/gameengine/Ketsji/BL_Shader.cpp
@@ -41,11 +41,12 @@
#define spit(x) std::cout << x << std::endl;
#define SORT_UNIFORMS 1
-#define UNIFORM_MAX_LEN (int)sizeof(float)*16
+#define UNIFORM_MAX_LEN (int)sizeof(float) * 16
#define MAX_LOG_LEN 262144 // bounds
BL_Uniform::BL_Uniform(int data_size)
-: mLoc(-1),
+ :
+ mLoc(-1),
mDirty(true),
mType(UNI_NONE),
mTranspose(0),
@@ -53,7 +54,7 @@ BL_Uniform::BL_Uniform(int data_size)
{
#ifdef SORT_UNIFORMS
MT_assert((int)mDataLen <= UNIFORM_MAX_LEN);
- mData = (void*)MEM_mallocN(mDataLen, "shader-uniform-alloc");
+ mData = (void *)MEM_mallocN(mDataLen, "shader-uniform-alloc");
#endif
}
@@ -62,7 +63,7 @@ BL_Uniform::~BL_Uniform()
#ifdef SORT_UNIFORMS
if (mData) {
MEM_freeN(mData);
- mData=0;
+ mData = NULL;
}
#endif
}
@@ -72,68 +73,69 @@ void BL_Uniform::Apply(class BL_Shader *shader)
#ifdef SORT_UNIFORMS
MT_assert(mType > UNI_NONE && mType < UNI_MAX && mData);
- if (!mDirty)
+ if (!mDirty) {
return;
+ }
switch (mType) {
case UNI_FLOAT:
{
- float *f = (float*)mData;
- glUniform1fARB(mLoc,(GLfloat)*f);
+ float *f = (float *)mData;
+ glUniform1fARB(mLoc, (GLfloat)*f);
break;
}
case UNI_INT:
{
- int *f = (int*)mData;
+ int *f = (int *)mData;
glUniform1iARB(mLoc, (GLint)*f);
break;
}
case UNI_FLOAT2:
{
- float *f = (float*)mData;
- glUniform2fvARB(mLoc,1, (GLfloat*)f);
+ float *f = (float *)mData;
+ glUniform2fvARB(mLoc, 1, (GLfloat *)f);
break;
}
case UNI_FLOAT3:
{
- float *f = (float*)mData;
- glUniform3fvARB(mLoc,1,(GLfloat*)f);
+ float *f = (float *)mData;
+ glUniform3fvARB(mLoc, 1, (GLfloat *)f);
break;
}
case UNI_FLOAT4:
{
- float *f = (float*)mData;
- glUniform4fvARB(mLoc,1,(GLfloat*)f);
+ float *f = (float *)mData;
+ glUniform4fvARB(mLoc, 1, (GLfloat *)f);
break;
}
case UNI_INT2:
{
- int *f = (int*)mData;
- glUniform2ivARB(mLoc,1,(GLint*)f);
+ int *f = (int *)mData;
+ glUniform2ivARB(mLoc, 1, (GLint *)f);
break;
}
case UNI_INT3:
{
- int *f = (int*)mData;
- glUniform3ivARB(mLoc,1,(GLint*)f);
+ int *f = (int *)mData;
+ glUniform3ivARB(mLoc, 1, (GLint *)f);
break;
}
case UNI_INT4:
{
- int *f = (int*)mData;
- glUniform4ivARB(mLoc,1,(GLint*)f);
+ int *f = (int *)mData;
+ glUniform4ivARB(mLoc, 1, (GLint *)f);
break;
}
case UNI_MAT4:
{
- float *f = (float*)mData;
- glUniformMatrix4fvARB(mLoc, 1, mTranspose?GL_TRUE:GL_FALSE,(GLfloat*)f);
+ float *f = (float *)mData;
+ glUniformMatrix4fvARB(mLoc, 1, mTranspose ? GL_TRUE : GL_FALSE, (GLfloat *)f);
break;
}
case UNI_MAT3:
{
- float *f = (float*)mData;
- glUniformMatrix3fvARB(mLoc, 1, mTranspose?GL_TRUE:GL_FALSE,(GLfloat*)f);
+ float *f = (float *)mData;
+ glUniformMatrix3fvARB(mLoc, 1, mTranspose ? GL_TRUE : GL_FALSE, (GLfloat *)f);
break;
}
}
@@ -141,29 +143,30 @@ void BL_Uniform::Apply(class BL_Shader *shader)
#endif
}
-void BL_Uniform::SetData(int location, int type,bool transpose)
+void BL_Uniform::SetData(int location, int type, bool transpose)
{
#ifdef SORT_UNIFORMS
- mType = type;
- mLoc = location;
- mDirty = true;
+ mType = type;
+ mLoc = location;
+ mDirty = true;
#endif
}
bool BL_Shader::Ok()const
{
- return (mShader !=0 && mOk && mUse);
+ return (mShader != 0 && mOk && mUse);
}
BL_Shader::BL_Shader()
-: PyObjectPlus(),
+ :
+ PyObjectPlus(),
mShader(0),
mPass(1),
mOk(0),
mUse(0),
mAttr(0),
- vertProg(""),
- fragProg(""),
+ vertProg(NULL),
+ fragProg(NULL),
mError(0),
mDirty(true)
{
@@ -183,13 +186,14 @@ BL_Shader::~BL_Shader()
//}
ClearUniforms();
- if ( mShader ) {
+ if (mShader) {
glDeleteObjectARB(mShader);
mShader = 0;
}
- vertProg = 0;
- fragProg = 0;
- mOk = 0;
+
+ vertProg = NULL;
+ fragProg = NULL;
+ mOk = 0;
glUseProgramObjectARB(0);
}
@@ -197,39 +201,38 @@ void BL_Shader::ClearUniforms()
{
BL_UniformVec::iterator it = mUniforms.begin();
while (it != mUniforms.end()) {
- delete (*it);
+ delete *it;
it++;
}
mUniforms.clear();
-
BL_UniformVecDef::iterator itp = mPreDef.begin();
while (itp != mPreDef.end()) {
- delete (*itp);
+ delete *itp;
itp++;
}
mPreDef.clear();
-
}
-
-BL_Uniform *BL_Shader::FindUniform(const int location)
+BL_Uniform *BL_Shader::FindUniform(const int location)
{
#ifdef SORT_UNIFORMS
BL_UniformVec::iterator it = mUniforms.begin();
while (it != mUniforms.end()) {
- if ((*it)->GetLocation() == location)
- return (*it);
+ if ((*it)->GetLocation() == location) {
+ return *it;
+ }
it++;
}
#endif
- return 0;
+ return NULL;
}
-void BL_Shader::SetUniformfv(int location, int type, float *param,int size, bool transpose)
+void BL_Shader::SetUniformfv(int location, int type, float *param, int size, bool transpose)
{
#ifdef SORT_UNIFORMS
- BL_Uniform *uni= FindUniform(location);
+ BL_Uniform *uni = FindUniform(location);
+
if (uni) {
memcpy(uni->getData(), param, size);
uni->SetData(location, type, transpose);
@@ -237,18 +240,19 @@ void BL_Shader::SetUniformfv(int location, int type, float *param,int size, bool
else {
uni = new BL_Uniform(size);
memcpy(uni->getData(), param, size);
-
uni->SetData(location, type, transpose);
mUniforms.push_back(uni);
}
+
mDirty = true;
#endif
}
-void BL_Shader::SetUniformiv(int location, int type, int *param,int size, bool transpose)
+void BL_Shader::SetUniformiv(int location, int type, int *param, int size, bool transpose)
{
#ifdef SORT_UNIFORMS
- BL_Uniform *uni= FindUniform(location);
+ BL_Uniform *uni = FindUniform(location);
+
if (uni) {
memcpy(uni->getData(), param, size);
uni->SetData(location, type, transpose);
@@ -259,19 +263,21 @@ void BL_Shader::SetUniformiv(int location, int type, int *param,int size, bool t
uni->SetData(location, type, transpose);
mUniforms.push_back(uni);
}
+
mDirty = true;
#endif
}
-
void BL_Shader::ApplyShader()
{
#ifdef SORT_UNIFORMS
- if (!mDirty)
+ if (!mDirty) {
return;
+ }
- for (unsigned int i=0; i<mUniforms.size(); i++)
+ for (unsigned int i = 0; i < mUniforms.size(); i++) {
mUniforms[i]->Apply(this);
+ }
mDirty = false;
#endif
@@ -282,50 +288,55 @@ void BL_Shader::UnloadShader()
//
}
-
bool BL_Shader::LinkProgram()
{
- int vertlen = 0, fraglen=0, proglen=0;
- int vertstatus=0, fragstatus=0, progstatus=0;
- unsigned int tmpVert=0, tmpFrag=0, tmpProg=0;
- int char_len=0;
- char *logInf =0;
+ int vertlen = 0, fraglen = 0, proglen = 0;
+ int vertstatus = 0, fragstatus = 0, progstatus = 0;
+ unsigned int tmpVert = 0, tmpFrag = 0, tmpProg = 0;
+ int char_len = 0;
+ char *logInf = NULL;
- if (mError)
+ if (mError) {
goto programError;
+ }
if (!vertProg || !fragProg) {
spit("Invalid GLSL sources");
return false;
}
- if ( !GLEW_ARB_fragment_shader) {
+
+ if (!GLEW_ARB_fragment_shader) {
spit("Fragment shaders not supported");
return false;
}
- if ( !GLEW_ARB_vertex_shader) {
+
+ if (!GLEW_ARB_vertex_shader) {
spit("Vertex shaders not supported");
return false;
}
-
+
// -- vertex shader ------------------
tmpVert = glCreateShaderObjectARB(GL_VERTEX_SHADER_ARB);
- glShaderSourceARB(tmpVert, 1, (const char**)&vertProg, 0);
+ glShaderSourceARB(tmpVert, 1, (const char **)&vertProg, 0);
glCompileShaderARB(tmpVert);
- glGetObjectParameterivARB(tmpVert, GL_OBJECT_INFO_LOG_LENGTH_ARB,(GLint*) &vertlen);
-
+ glGetObjectParameterivARB(tmpVert, GL_OBJECT_INFO_LOG_LENGTH_ARB, (GLint *)&vertlen);
+
// print info if any
- if ( vertlen > 0 && vertlen < MAX_LOG_LEN) {
- logInf = (char*)MEM_mallocN(vertlen, "vert-log");
- glGetInfoLogARB(tmpVert, vertlen, (GLsizei*)&char_len, logInf);
- if (char_len >0) {
+ if (vertlen > 0 && vertlen < MAX_LOG_LEN) {
+ logInf = (char *)MEM_mallocN(vertlen, "vert-log");
+ glGetInfoLogARB(tmpVert, vertlen, (GLsizei *)&char_len, logInf);
+
+ if (char_len > 0) {
spit("---- Vertex Shader Error ----");
spit(logInf);
}
+
MEM_freeN(logInf);
- logInf=0;
+ logInf = 0;
}
+
// check for compile errors
- glGetObjectParameterivARB(tmpVert, GL_OBJECT_COMPILE_STATUS_ARB,(GLint*)&vertstatus);
+ glGetObjectParameterivARB(tmpVert, GL_OBJECT_COMPILE_STATUS_ARB, (GLint *)&vertstatus);
if (!vertstatus) {
spit("---- Vertex shader failed to compile ----");
goto programError;
@@ -333,46 +344,50 @@ bool BL_Shader::LinkProgram()
// -- fragment shader ----------------
tmpFrag = glCreateShaderObjectARB(GL_FRAGMENT_SHADER_ARB);
- glShaderSourceARB(tmpFrag, 1,(const char**)&fragProg, 0);
+ glShaderSourceARB(tmpFrag, 1, (const char **)&fragProg, 0);
glCompileShaderARB(tmpFrag);
- glGetObjectParameterivARB(tmpFrag, GL_OBJECT_INFO_LOG_LENGTH_ARB, (GLint*) &fraglen);
- if (fraglen >0 && fraglen < MAX_LOG_LEN) {
- logInf = (char*)MEM_mallocN(fraglen, "frag-log");
- glGetInfoLogARB(tmpFrag, fraglen,(GLsizei*) &char_len, logInf);
- if (char_len >0) {
+ glGetObjectParameterivARB(tmpFrag, GL_OBJECT_INFO_LOG_LENGTH_ARB, (GLint *)&fraglen);
+
+ if (fraglen > 0 && fraglen < MAX_LOG_LEN) {
+ logInf = (char *)MEM_mallocN(fraglen, "frag-log");
+ glGetInfoLogARB(tmpFrag, fraglen, (GLsizei *)&char_len, logInf);
+
+ if (char_len > 0) {
spit("---- Fragment Shader Error ----");
spit(logInf);
}
+
MEM_freeN(logInf);
- logInf=0;
+ logInf = 0;
}
- glGetObjectParameterivARB(tmpFrag, GL_OBJECT_COMPILE_STATUS_ARB, (GLint*) &fragstatus);
+ glGetObjectParameterivARB(tmpFrag, GL_OBJECT_COMPILE_STATUS_ARB, (GLint *)&fragstatus);
+
if (!fragstatus) {
spit("---- Fragment shader failed to compile ----");
goto programError;
}
-
// -- program ------------------------
- // set compiled vert/frag shader & link
+ // set compiled vert/frag shader & link
tmpProg = glCreateProgramObjectARB();
glAttachObjectARB(tmpProg, tmpVert);
glAttachObjectARB(tmpProg, tmpFrag);
glLinkProgramARB(tmpProg);
- glGetObjectParameterivARB(tmpProg, GL_OBJECT_INFO_LOG_LENGTH_ARB, (GLint*) &proglen);
- glGetOb
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list