Revision: 48934
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48934
Author:   jwilkins
Date:     2012-07-15 06:14:35 +0000 (Sun, 15 Jul 2012)
Log Message:
-----------
GPU_matrix and gpu_funcions fixup

Replaced GPU_MODELVIEW and friends with GL_MODELVIEW (If we need the bit fields 
we can create GPU_MODELVIEW_BIT, but having GPU_MODELVIEW is potentially very 
problematic for spotting bugs.)
Changed some macros to be enabled by WITH_GPU_SAFETY.
Prefer to use BLI_assert because it obeys WITH_ASSERT_ABORT option.
Fixed up CHECKMAT to work on MSVC.
Fixed up some functions to use GLAPIENTRY.
Quieted warning about slight differences between glBindAttribLocation and 
glBindAttribLocationARB.

Modified Paths:
--------------
    branches/soc-2012-swiss_cheese/source/blender/blenfont/intern/blf.c
    branches/soc-2012-swiss_cheese/source/blender/gpu/GPU_functions.h
    branches/soc-2012-swiss_cheese/source/blender/gpu/GPU_matrix.h
    branches/soc-2012-swiss_cheese/source/blender/gpu/intern/gpu_functions.c
    branches/soc-2012-swiss_cheese/source/blender/gpu/intern/gpu_matrix.c
    
branches/soc-2012-swiss_cheese/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp
    
branches/soc-2012-swiss_cheese/source/gameengine/GamePlayer/common/GPC_Canvas.cpp
    
branches/soc-2012-swiss_cheese/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp
    branches/soc-2012-swiss_cheese/source/gameengine/Ketsji/BL_Texture.cpp
    
branches/soc-2012-swiss_cheese/source/gameengine/Ketsji/KX_BlenderMaterial.cpp
    branches/soc-2012-swiss_cheese/source/gameengine/Ketsji/KX_Dome.cpp
    
branches/soc-2012-swiss_cheese/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp
    
branches/soc-2012-swiss_cheese/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
    
branches/soc-2012-swiss_cheese/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVA.cpp

Modified: branches/soc-2012-swiss_cheese/source/blender/blenfont/intern/blf.c
===================================================================
--- branches/soc-2012-swiss_cheese/source/blender/blenfont/intern/blf.c 
2012-07-15 03:11:07 UTC (rev 48933)
+++ branches/soc-2012-swiss_cheese/source/blender/blenfont/intern/blf.c 
2012-07-15 06:14:35 UTC (rev 48934)
@@ -561,11 +561,11 @@
 
        gpuMatrixLock();
 
-       gpuMatrixMode(GPU_TEXTURE);
+       gpuMatrixMode(GL_TEXTURE);
        gpuPushMatrix();
        gpuLoadIdentity();
 
-       gpuMatrixMode(GPU_MODELVIEW);
+       gpuMatrixMode(GL_MODELVIEW);
        gpuPushMatrix();
 
 
@@ -596,10 +596,10 @@
 {
        draw_unlock(font);
 
-       gpuMatrixMode(GPU_TEXTURE);
+       gpuMatrixMode(GL_TEXTURE);
        gpuPopMatrix();
 
-       gpuMatrixMode(GPU_MODELVIEW);
+       gpuMatrixMode(GL_MODELVIEW);
        gpuPopMatrix();
 
        gpuMatrixUnlock();

Modified: branches/soc-2012-swiss_cheese/source/blender/gpu/GPU_functions.h
===================================================================
--- branches/soc-2012-swiss_cheese/source/blender/gpu/GPU_functions.h   
2012-07-15 03:11:07 UTC (rev 48933)
+++ branches/soc-2012-swiss_cheese/source/blender/gpu/GPU_functions.h   
2012-07-15 06:14:35 UTC (rev 48934)
@@ -224,7 +224,7 @@
 GPUFUNC void (GLAPIENTRY* gpuUniformMatrix4fv)(GLint location, GLint count, 
GLboolean transpose, const GLfloat * value);
 
 GPUFUNC GLint (GLAPIENTRY* gpuGetAttribLocation)(GLuint program, const GLchar 
*name);
-GPUFUNC GLint (GLAPIENTRY* gpuBindAttribLocation)(GLuint program, GLuint 
index, const GLchar * name);
+GPUFUNC void (GLAPIENTRY* gpuBindAttribLocation)(GLuint program, GLuint index, 
const GLchar * name);
 GPUFUNC GLint (GLAPIENTRY* gpuGetUniformLocation)(GLuint program, const GLchar 
* name);
 
 
@@ -248,6 +248,8 @@
 #endif
 
 
+#ifndef GIVE_ME_APIENTRY
+
 /***** BEGIN:THIS CODE WAS COPIED DIRECTLY FROM glew.h *****/
 
 #ifdef GLEW_APIENTRY_DEFINED
@@ -272,4 +274,6 @@
 
 /***** END:THIS CODE WAS COPIED DIRECTLY FROM glew.h *****/
 
+#endif
+
 #endif /* GPU_FUNCTIONS_H */

Modified: branches/soc-2012-swiss_cheese/source/blender/gpu/GPU_matrix.h
===================================================================
--- branches/soc-2012-swiss_cheese/source/blender/gpu/GPU_matrix.h      
2012-07-15 03:11:07 UTC (rev 48933)
+++ branches/soc-2012-swiss_cheese/source/blender/gpu/GPU_matrix.h      
2012-07-15 06:14:35 UTC (rev 48934)
@@ -1,4 +1,5 @@
-#include "GPU_material.h"
+#include <GL/glew.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -6,10 +7,6 @@
 #ifndef GPU_MATRIX
 #define GPU_MATRIX
 
-#define GPU_MODELVIEW  1<<0
-#define GPU_PROJECTION 1<<1
-#define GPU_TEXTURE            1<<2
-
 void GPU_matrix_forced_update(void);
 
 void GPU_ms_init(void);
@@ -23,35 +20,35 @@
 void gpuPushMatrix(void);
 void gpuPopMatrix(void);
 
-void gpuMatrixMode(int mode);
+void gpuMatrixMode(GLenum mode);
 
-void gpuLoadMatrix(const float * m);
-float * gpuGetMatrix(float * m);
+void gpuLoadMatrix(const GLfloat * m);
+GLfloat * gpuGetMatrix(GLfloat * m);
 
 void gpuLoadIdentity(void);
 
-void gpuMultMatrix(const float *m);
+void gpuMultMatrix(const GLfloat *m);
 void gpuMultMatrixd(const double *m);
 
-void gpuTranslate(float x, float y, float z);
-void gpuScale(float x, float y, float z);
-void gpuRotateAxis(float angle, char axis);
+void gpuTranslate(GLfloat x, GLfloat y, GLfloat z);
+void gpuScale(GLfloat x, GLfloat y, GLfloat z);
+void gpuRotateAxis(GLfloat angle, char axis);
 
-void gpuOrtho(float left, float right, float bottom, float top, float nearVal, 
float farVal);
-void gpuFrustum(float left, float right, float bottom, float top, float 
nearVal, float farVal);
+void gpuOrtho(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, 
GLfloat nearVal, GLfloat farVal);
+void gpuFrustum(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, 
GLfloat nearVal, GLfloat farVal);
 
-void gpuLoadOrtho(float left, float right, float bottom, float top, float 
nearVal, float farVal);
-void gpuLoadFrustum(float left, float right, float bottom, float top, float 
nearVal, float farVal);
+void gpuLoadOrtho(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, 
GLfloat nearVal, GLfloat farVal);
+void gpuLoadFrustum(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, 
GLfloat nearVal, GLfloat farVal);
 
-void gpuLookAt(float eyeX, float eyeY, float eyeZ, float centerX, float 
centerY, float centerZ, float upX, float upY, float upZ);
+void gpuLookAt(GLfloat eyeX, GLfloat eyeY, GLfloat eyeZ, GLfloat centerX, 
GLfloat centerY, GLfloat centerZ, GLfloat upX, GLfloat upY, GLfloat upZ);
 
 #ifndef GPU_MAT_CAST_ANY
 #define GPU_MAT_CAST_ANY
 
 
-#define gpuLoadMatrix(m) gpuLoadMatrix((const float *) m);
-#define gpuGetMatrix(m) gpuGetMatrix((float *) m);
-#define gpuMultMatrix(m) gpuMultMatrix((const float *) m);
+#define gpuLoadMatrix(m) gpuLoadMatrix((const GLfloat *) m);
+#define gpuGetMatrix(m) gpuGetMatrix((GLfloat *) m);
+#define gpuMultMatrix(m) gpuMultMatrix((const GLfloat *) m);
 #define gpuMultMatrixd(m) gpuMultMatrixd((const double *) m);
 
 #endif

Modified: 
branches/soc-2012-swiss_cheese/source/blender/gpu/intern/gpu_functions.c
===================================================================
--- branches/soc-2012-swiss_cheese/source/blender/gpu/intern/gpu_functions.c    
2012-07-15 03:11:07 UTC (rev 48933)
+++ branches/soc-2012-swiss_cheese/source/blender/gpu/intern/gpu_functions.c    
2012-07-15 06:14:35 UTC (rev 48934)
@@ -34,6 +34,7 @@
 #endif
 
 #define GPU_FUNC_INTERN
+#define GIVE_ME_APIENTRY
 #include "GPU_functions.h"
 #include REAL_GL_MODE
 
@@ -54,14 +55,14 @@
 
 #ifndef GLES
 
-static void check_glGetObjectParameterivARB(GLuint shader, GLuint pname, GLint 
*params)
+static void GLAPIENTRY check_glGetObjectParameterivARB(GLuint shader, GLuint 
pname, GLint *params)
 {
        GPU_CHECK_INVALID_PNAME(GL_SHADER_TYPE);
 
        glGetObjectParameterivARB(shader, pname, params);
 }
 
-static void check_glGetProgramivARB(GLuint shader, GLuint pname, GLint *params)
+static void GLAPIENTRY check_glGetProgramivARB(GLuint shader, GLuint pname, 
GLint *params)
 {
        GPU_CHECK_INVALID_PNAME(GL_ACTIVE_ATTRIBUTES);
        GPU_CHECK_INVALID_PNAME(GL_ACTIVE_ATTRIBUTE_MAX_LENGTH);
@@ -100,7 +101,7 @@
        gpuUniformMatrix4fv = glUniformMatrix4fvARB;
 
        gpuGetAttribLocation  = glGetAttribLocationARB;
-       gpuBindAttribLocation = glBindAttribLocationARB;
+       gpuBindAttribLocation = (void (GLAPIENTRY*)(GLuint,GLuint,const 
GLchar*))glBindAttribLocationARB;
        gpuGetUniformLocation = glGetUniformLocationARB;
 
        gpuUseProgram    = glUseProgramObjectARB;

Modified: branches/soc-2012-swiss_cheese/source/blender/gpu/intern/gpu_matrix.c
===================================================================
--- branches/soc-2012-swiss_cheese/source/blender/gpu/intern/gpu_matrix.c       
2012-07-15 03:11:07 UTC (rev 48933)
+++ branches/soc-2012-swiss_cheese/source/blender/gpu/intern/gpu_matrix.c       
2012-07-15 06:14:35 UTC (rev 48934)
@@ -1,3 +1,5 @@
+#include "gpu_immediate.h"
+
 #include <assert.h>
 
 #include "MEM_guardedalloc.h"
@@ -17,16 +19,19 @@
 #include <GL/glew.h>
 #endif
 
-#define GLU_STACK_DEBUG
-int glslneedupdate = 1;
+#if WITH_GPU_SAFETY
+#define GPU_STACK_DEBUG
+#endif
 
-typedef float GPU_matrix[4][4];
+GLint glslneedupdate = 1;
 
+typedef GLfloat GPU_matrix[4][4];
+
 typedef struct GPU_matrix_stack
 {
-       int size;
-       int pos;
-       int changed;
+       GLint size;
+       GLint pos;
+       GLint changed;
        GPU_matrix * dynstack;
 
 
@@ -51,24 +56,26 @@
 
 
 /* Check if we have a good matrix */
-#if 0
-static void checkmat(float *m)
+#if WITH_GPU_SAFETY
+static void checkmat(GLfloat *m)
 {
-       int i;
-       for(i=0;i<16;i++){
-               if(isinf(m[i]))
-               {assert(0);};};
-
-
+       GLint i;
+       for(i=0;i<16;i++) {
+#if _MSC_VER
+               BLI_assert(_finite(m[i]));
+#else
+               BLI_assert(!isinf(m[i]));
+#endif
+       }
 }
 
-#define CHECKMAT checkmat((float*)CURMATRIX);
+#define CHECKMAT checkmat((GLfloat*)CURMATRIX);
 #else
 #define CHECKMAT
 #endif
 
 
-static void ms_init(GPU_matrix_stack * ms, int initsize)
+static void ms_init(GPU_matrix_stack * ms, GLint initsize)
 {
        if(initsize == 0)
                initsize = 32;
@@ -88,8 +95,8 @@
 }
 
 
-static int glstackpos[3] = {0};
-static int glstackmode;
+static GLint glstackpos[3] = {0};
+static GLint glstackmode;
 
 void GPU_ms_init(void)
 {
@@ -126,17 +133,17 @@
        glGetIntegerv(GL_TEXTURE_STACK_DEPTH, glstackpos+2);
        glGetIntegerv(GL_MATRIX_MODE, &glstackmode);
 
-       glGetFloatv(GL_MODELVIEW_MATRIX, (float*)tm);
-       gpuMatrixMode(GPU_MODELVIEW);
-       gpuLoadMatrix((float*)tm);
+       glGetFloatv(GL_MODELVIEW_MATRIX, (GLfloat*)tm);
+       gpuMatrixMode(GL_MODELVIEW);
+       gpuLoadMatrix((GLfloat*)tm);
 
-       glGetFloatv(GL_PROJECTION_MATRIX, (float*)tm);
-       gpuMatrixMode(GPU_PROJECTION);
-       gpuLoadMatrix((float*)tm);
+       glGetFloatv(GL_PROJECTION_MATRIX, (GLfloat*)tm);
+       gpuMatrixMode(GL_PROJECTION);
+       gpuLoadMatrix((GLfloat*)tm);
 
-       glGetFloatv(GL_TEXTURE_MATRIX, (float*)tm);
-       gpuMatrixMode(GPU_TEXTURE);
-       gpuLoadMatrix((float*)tm);
+       glGetFloatv(GL_TEXTURE_MATRIX, (GLfloat*)tm);
+       gpuMatrixMode(GL_TEXTURE);
+       gpuLoadMatrix((GLfloat*)tm);
 
 
 
@@ -152,13 +159,13 @@
        switch(glstackmode)
        {
                case GL_MODELVIEW:
-                       gpuMatrixMode(GPU_MODELVIEW);
+                       gpuMatrixMode(GL_MODELVIEW);
                        break;
                case GL_TEXTURE:
-                       gpuMatrixMode(GPU_TEXTURE);
+                       gpuMatrixMode(GL_TEXTURE);
                        break;
                case GL_PROJECTION:
-                       gpuMatrixMode(GPU_PROJECTION);
+                       gpuMatrixMode(GL_PROJECTION);
                        break;
 
        }
@@ -173,7 +180,7 @@
 {
 
 #ifndef GLES
-       int curval;
+       GLint curval;
 
 
        glMatrixMode(GL_TEXTURE);
@@ -207,19 +214,19 @@
        {
                ms_modelview.changed = 0;
                glMatrixMode(GL_MODELVIEW);
-               glLoadMatrixf((float*)ms_modelview.dynstack[ms_modelview.pos]);
+               
glLoadMatrixf((GLfloat*)ms_modelview.dynstack[ms_modelview.pos]);
        }
        if(ms_projection.changed)
        {
                ms_projection.changed = 0;
                glMatrixMode(GL_PROJECTION);
-               
glLoadMatrixf((float*)ms_projection.dynstack[ms_projection.pos]);
+               
glLoadMatrixf((GLfloat*)ms_projection.dynstack[ms_projection.pos]);
        }
        if(ms_texture.changed)
        {
                ms_texture.changed = 0;
                glMatrixMode(GL_TEXTURE);
-               glLoadMatrixf((float*)ms_texture.dynstack[ms_texture.pos]);
+               glLoadMatrixf((GLfloat*)ms_texture.dynstack[ms_texture.pos]);
        }
 
 #else
@@ -229,7 +236,7 @@
        if(ms_modelview.changed || glslneedupdate)
        {
        
-               float t[3][3] = {1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0};
+               GLfloat t[3][3] = {1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0};
                copy_m3_m4(t, ms_modelview.dynstack[ms_modelview.pos]); 
                if(curglslesi->viewmatloc!=-1)
                        glUniformMatrix4fv(curglslesi->viewmatloc, 1, 0, 
ms_modelview.dynstack[ms_modelview.pos]);
@@ -270,7 +277,7 @@
        
        }
 

@@ Diff output truncated at 10240 characters. @@
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to