[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [58766] branches/soc-2013-viewport_fx: got mapped vbo working in ES and Core
Jason Wilkins
Jason.A.Wilkins at gmail.com
Wed Jul 31 15:56:46 CEST 2013
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. @@
More information about the Bf-blender-cvs
mailing list