Revision: 58766
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58766
Author:   jwilkins
Date:     2013-07-31 13:56:46 +0000 (Wed, 31 Jul 2013)
Log Message:
-----------
got mapped vbo working in ES and Core

Modified Paths:
--------------
    branches/soc-2013-viewport_fx/extern/glew-es/include/GL/glesew.h
    branches/soc-2013-viewport_fx/extern/glew-es/src/glew.c
    branches/soc-2013-viewport_fx/intern/ghost/intern/GHOST_WindowWin32.cpp
    branches/soc-2013-viewport_fx/source/blender/blenfont/intern/blf_glyph.c
    
branches/soc-2013-viewport_fx/source/blender/editors/space_view3d/drawarmature.c
    branches/soc-2013-viewport_fx/source/blender/gpu/GPU_object.h
    
branches/soc-2013-viewport_fx/source/blender/gpu/intern/gpu_extension_wrapper.c
    
branches/soc-2013-viewport_fx/source/blender/gpu/intern/gpu_extension_wrapper.h
    branches/soc-2013-viewport_fx/source/blender/gpu/intern/gpu_glew.h
    branches/soc-2013-viewport_fx/source/blender/gpu/intern/gpu_immediate.c
    branches/soc-2013-viewport_fx/source/blender/gpu/intern/gpu_immediate.h
    branches/soc-2013-viewport_fx/source/blender/gpu/intern/gpu_immediate_gl11.c
    branches/soc-2013-viewport_fx/source/blender/gpu/intern/gpu_immediate_glsl.c
    branches/soc-2013-viewport_fx/source/blender/gpu/intern/gpu_object_gles.c

Modified: branches/soc-2013-viewport_fx/extern/glew-es/include/GL/glesew.h
===================================================================
--- branches/soc-2013-viewport_fx/extern/glew-es/include/GL/glesew.h    
2013-07-31 13:48:12 UTC (rev 58765)
+++ branches/soc-2013-viewport_fx/extern/glew-es/include/GL/glesew.h    
2013-07-31 13:56:46 UTC (rev 58766)
@@ -1175,6 +1175,7 @@
 
 typedef void  (GLAPIENTRY * PFNGLBINDBUFFERPROC) (GLenum , GLuint ); // XXX 
jwilkins: missing function
 typedef void  (GLAPIENTRY * PFNGLBUFFERDATAPROC) (GLenum , GLsizeiptr, const 
GLvoid *, GLenum ); // XXX jwilkins: missing function
+typedef void  (GLAPIENTRY * PFNGLBUFFERSUBDATAPROC) (GLenum, GLintptr, 
GLsizeiptr, const GLvoid *); // XXX jwilkins: missing function
 typedef void  (GLAPIENTRY * PFNGLDELETEBUFFERSPROC) (GLsizei , const GLuint 
*); // XXX jwilkins: missing function
 typedef void  (GLAPIENTRY * PFNGLGENBUFFERSPROC) (GLsizei, GLuint *); // XXX 
jwilkins: missing function
 typedef void  (GLAPIENTRY * PFNGLTEXPARAMETERIPROC) (GLenum, GLenum, GLint); 
// XXX jwilkins: missing function
@@ -1271,6 +1272,7 @@
 
 #define glBindBuffer GLEW_GET_FUN(__glewBindBuffer) // XXX jwilkins: missing 
function
 #define glBufferData GLEW_GET_FUN(__glewBufferData) // XXX jwilkins: missing 
function
+#define glBufferSubData GLEW_GET_FUN(__glewBufferSubData) // XXX jwilkins: 
missing function
 #define glDeleteBuffers GLEW_GET_FUN(__glewDeleteBuffers) // XXX jwilkins: 
missing function
 #define glGenBuffers GLEW_GET_FUN(__glewGenBuffers) // XXX jwilkins: missing 
function
 #define glTexParameteri GLEW_GET_FUN(__glewTexParameteri) // XXX jwilkins: 
missing function
@@ -3902,6 +3904,7 @@
 #if !GL_ES_VERSION_CL_1_1 // XXX jwilkins
 GLEW_FUN_EXPORT PFNGLBINDBUFFERPROC __glewBindBuffer; // XXX jwilkins: missing 
function
 GLEW_FUN_EXPORT PFNGLBUFFERDATAPROC __glewBufferData; // XXX jwilkins: missing 
function
+GLEW_FUN_EXPORT PFNGLBUFFERSUBDATAPROC __glewBufferSubData; // XXX jwilkins: 
missing function
 GLEW_FUN_EXPORT PFNGLDELETEBUFFERSPROC __glewDeleteBuffers; // XXX jwilkins: 
missing function
 GLEW_FUN_EXPORT PFNGLGENBUFFERSPROC __glewGenBuffers; // XXX jwilkins: missing 
function
 GLEW_FUN_EXPORT PFNGLTEXPARAMETERIPROC __glewTexParameteri; // XXX jwilkins: 
missing function

Modified: branches/soc-2013-viewport_fx/extern/glew-es/src/glew.c
===================================================================
--- branches/soc-2013-viewport_fx/extern/glew-es/src/glew.c     2013-07-31 
13:48:12 UTC (rev 58765)
+++ branches/soc-2013-viewport_fx/extern/glew-es/src/glew.c     2013-07-31 
13:56:46 UTC (rev 58766)
@@ -3428,6 +3428,7 @@
 #if !GL_ES_VERSION_CL_1_1 // XXX jwilkins: missing function
 PFNGLBINDBUFFERPROC __glewBindBuffer = NULL; // XXX
 PFNGLBUFFERDATAPROC __glewBufferData = NULL; // XXX
+PFNGLBUFFERSUBDATAPROC __glewBufferSubData = NULL; // XXX
 PFNGLGENBUFFERSPROC __glewGenBuffers = NULL; // XXX
 PFNGLDELETEBUFFERSPROC __glewDeleteBuffers = NULL; // XXX
 PFNGLTEXPARAMETERIPROC __glewTexParameteri = NULL; // XXX
@@ -10759,6 +10760,7 @@
 
   r = ((glBindBuffer = (PFNGLBINDBUFFERPROC)glewGetProcAddress((const 
GLubyte*)"glBindBuffer")) == NULL) || r; // XXX jwilkins: missing function
   r = ((glBufferData = (PFNGLBUFFERDATAPROC)glewGetProcAddress((const 
GLubyte*)"glBufferData")) == NULL) || r; // XXX jwilkins: missing function
+  r = ((glBufferSubData = (PFNGLBUFFERSUBDATAPROC)glewGetProcAddress((const 
GLubyte*)"glBufferSubData")) == NULL) || r; // XXX jwilkins: missing function
   r = ((glDeleteBuffers = (PFNGLDELETEBUFFERSPROC)glewGetProcAddress((const 
GLubyte*)"glDeleteBuffers")) == NULL) || r; // XXX jwilkins: missing function
   r = ((glGenBuffers = (PFNGLGENBUFFERSPROC)glewGetProcAddress((const 
GLubyte*)"glGenBuffers")) == NULL) || r; // XXX jwilkins: missing function
   r = ((glTexParameteri = (PFNGLTEXPARAMETERIPROC)glewGetProcAddress((const 
GLubyte*)"glTexParameteri")) == NULL) || r; // XXX jwilkins: missing function

Modified: 
branches/soc-2013-viewport_fx/intern/ghost/intern/GHOST_WindowWin32.cpp
===================================================================
--- branches/soc-2013-viewport_fx/intern/ghost/intern/GHOST_WindowWin32.cpp     
2013-07-31 13:48:12 UTC (rev 58765)
+++ branches/soc-2013-viewport_fx/intern/ghost/intern/GHOST_WindowWin32.cpp     
2013-07-31 13:56:46 UTC (rev 58766)
@@ -593,8 +593,13 @@
 
 #elif defined(WITH_GL_SYSTEM_EMBEDDED)
 
-#if defined(WITH_GL_PROFILE_ES20)
+#if defined(WITH_GL_PROFILE_CORE)
+               // XXX jwilkins: not sure yet how to request a core context 
from EGL
+               GHOST_Context* context = new GHOST_ContextEGL(m_hWnd, m_hDC, 
EGL_OPENGL_API);
+#elif defined(WITH_GL_PROFILE_ES20)
                GHOST_Context* context = new GHOST_ContextEGL(m_hWnd, m_hDC, 
EGL_OPENGL_ES_API, 2);
+#elif defined(WITH_GL_PROFILE_COMPAT)
+               GHOST_Context* context = new GHOST_ContextEGL(m_hWnd, m_hDC, 
EGL_OPENGL_API);
 #else
 #error
 #endif

Modified: 
branches/soc-2013-viewport_fx/source/blender/blenfont/intern/blf_glyph.c
===================================================================
--- branches/soc-2013-viewport_fx/source/blender/blenfont/intern/blf_glyph.c    
2013-07-31 13:48:12 UTC (rev 58765)
+++ branches/soc-2013-viewport_fx/source/blender/blenfont/intern/blf_glyph.c    
2013-07-31 13:56:46 UTC (rev 58766)
@@ -199,7 +199,7 @@
 
 #if defined(WITH_GL_PROFILE_CORE)
        glTexImage2D(GL_TEXTURE_2D, 0, GL_R8, gc->p2_width, gc->p2_height, 0, 
GL_RED, GL_UNSIGNED_BYTE, buf);
-#elif defined(WITH_GL_PROFILE_COMPAT || WITH_GL_PROFILE_ES20)
+#elif defined(WITH_GL_PROFILE_COMPAT) || defined(WITH_GL_PROFILE_ES20)
        glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA, gc->p2_width, gc->p2_height, 
0, GL_ALPHA, GL_UNSIGNED_BYTE, buf);
 #endif
 

Modified: 
branches/soc-2013-viewport_fx/source/blender/editors/space_view3d/drawarmature.c
===================================================================
--- 
branches/soc-2013-viewport_fx/source/blender/editors/space_view3d/drawarmature.c
    2013-07-31 13:48:12 UTC (rev 58765)
+++ 
branches/soc-2013-viewport_fx/source/blender/editors/space_view3d/drawarmature.c
    2013-07-31 13:56:46 UTC (rev 58766)
@@ -424,7 +424,7 @@
 
                index = gpuNewIndex();
                gpuImmediateIndex(index);
-               gpuImmediateMaxIndexCount(index_count, GL_UNSIGNED_SHORT);
+               gpuImmediateMaxIndexCount(index_count, GL_UNSIGNED_INT); // XXX 
jwilkins: telling the type here is too early
 
                gpuSingleClientRangeElements_V3F(
                        GL_LINE_LOOP,
@@ -458,7 +458,7 @@
 
                index = gpuNewIndex();
                gpuImmediateIndex(index);
-               gpuImmediateMaxIndexCount(index_count, GL_UNSIGNED_SHORT);
+               gpuImmediateMaxIndexCount(index_count, GL_UNSIGNED_INT);// XXX 
jwilkins: telling the type here is too early
 
                gpuSingleClientRangeElements_N3F_V3F(
                        GL_TRIANGLES,

Modified: branches/soc-2013-viewport_fx/source/blender/gpu/GPU_object.h
===================================================================
--- branches/soc-2013-viewport_fx/source/blender/gpu/GPU_object.h       
2013-07-31 13:48:12 UTC (rev 58765)
+++ branches/soc-2013-viewport_fx/source/blender/gpu/GPU_object.h       
2013-07-31 13:56:46 UTC (rev 58766)
@@ -29,6 +29,10 @@
  *  \ingroup gpu
  */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 typedef struct GPU_object_func
 {
        void (*gpuVertexPointer)  (int size, int type, int stride, const void 
*pointer);
@@ -47,10 +51,6 @@
 
 
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
 extern GPU_object_func gpugameobj;
 
 void GPU_init_object_func(void);

Modified: 
branches/soc-2013-viewport_fx/source/blender/gpu/intern/gpu_extension_wrapper.c
===================================================================
--- 
branches/soc-2013-viewport_fx/source/blender/gpu/intern/gpu_extension_wrapper.c 
    2013-07-31 13:48:12 UTC (rev 58765)
+++ 
branches/soc-2013-viewport_fx/source/blender/gpu/intern/gpu_extension_wrapper.c 
    2013-07-31 13:56:46 UTC (rev 58766)
@@ -204,6 +204,7 @@
        if (GLEW_VERSION_1_5 || GLEW_ES_VERSION_2_0) {
                gpu_glBindBuffer    = glBindBuffer;
                gpu_glBufferData    = glBufferData;
+               gpu_glBufferSubData = glBufferSubData;
                gpu_glDeleteBuffers = glDeleteBuffers;
                gpu_glGenBuffers    = glGenBuffers;
 
@@ -214,6 +215,7 @@
        if (GLEW_ARB_vertex_buffer_object) {
                gpu_glBindBuffer    = glBindBufferARB;
                gpu_glBufferData    = glBufferDataARB;
+               gpu_glBufferSubData = glBufferSubDataARB;
                gpu_glDeleteBuffers = glDeleteBuffersARB;
                gpu_glGenBuffers    = glGenBuffersARB;
 
@@ -336,77 +338,79 @@
        }
 }
 
-static void* GLAPIENTRY GPU_buffer_start_update_client(GLenum target, 
GLsizeiptr size, GLvoid* data, GLenum usage)
+static void* GPU_buffer_start_update_dummy(GLenum UNUSED(target), void* data)
 {
+       GPU_ASSERT(data != NULL);
        return data;
 }
 
-static void* GLAPIENTRY GPU_buffer_start_update_buffer(GLenum target, 
GLsizeiptr size, GLvoid* data, GLenum usage)
+static void* GPU_buffer_start_update_copy(GLenum UNUSED(target), void* data)
 {
-GPU_CHECK_NO_ERROR();
-       gpu_glBufferData(target, 0, NULL, usage);
-GPU_CHECK_NO_ERROR();
+       GPU_ASSERT(data != NULL);
        return data;
 }
 
-static void* GLAPIENTRY GPU_buffer_start_update_map(GLenum target, GLsizeiptr 
size, GLvoid* data, GLenum usage)
+static void* GPU_buffer_start_update_map(GLenum target, void* UNUSED(data))
 {
-       void* mapped;
-GPU_CHECK_NO_ERROR();
-       gpu_glBufferData(target, size, NULL, usage);
-GPU_CHECK_NO_ERROR();
-       mapped = gpu_glMapBuffer(target, GL_WRITE_ONLY);
-GPU_CHECK_NO_ERROR();
-GPU_ASSERT(mapped != NULL);
-       return mapped;
+       void* mappedData;
+       GPU_ASSERT(UNUSED_data == NULL);
+       mappedData = gpu_glMapBuffer(target, GL_WRITE_ONLY);
+       GPU_CHECK_NO_ERROR();
+       return mappedData;
 }
 
-static const void* GLAPIENTRY GPU_buffer_finish_update_client(GLenum target, 
GLsizeiptr size, const GLvoid* data, GLenum usage)
+static void GPU_buffer_finish_update_dummy(GLenum UNUSED(target), GLsizeiptr 
UNUSED(dataSize), const GLvoid* UNUSED(data))
 {
-       return data;
+       GPU_ASSERT(UNUSED_data != NULL);
 }
 
-static const void* GLAPIENTRY GPU_buffer_finish_update_buffer(GLenum target, 
GLsizeiptr size, const GLvoid* data, GLenum usage)
+static void GPU_buffer_finish_update_copy(GLenum target, GLsizeiptr dataSize, 
const GLvoid* data)
 {
-GPU_CHECK_NO_ERROR();
-       gpu_glBufferData(target, size, data, usage);
-GPU_CHECK_NO_ERROR();
-       return NULL;
+       GPU_ASSERT(data != NULL);
+       gpu_glBufferSubData(target, 0, dataSize, data);
+       GPU_CHECK_NO_ERROR();
 }
 
-static const void* GLAPIENTRY GPU_buffer_finish_update_map(GLenum target, 
GLsizeiptr size, const GLvoid* data, GLenum usage)

@@ 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