summaryrefslogtreecommitdiff
path: root/src/VBox/HostServices/SharedOpenGL/crserverlib/server_bufferobject.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/VBox/HostServices/SharedOpenGL/crserverlib/server_bufferobject.c')
-rw-r--r--src/VBox/HostServices/SharedOpenGL/crserverlib/server_bufferobject.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/VBox/HostServices/SharedOpenGL/crserverlib/server_bufferobject.c b/src/VBox/HostServices/SharedOpenGL/crserverlib/server_bufferobject.c
index 9210d83b..e3c0100c 100644
--- a/src/VBox/HostServices/SharedOpenGL/crserverlib/server_bufferobject.c
+++ b/src/VBox/HostServices/SharedOpenGL/crserverlib/server_bufferobject.c
@@ -27,11 +27,18 @@ crServerDispatchGenBuffersARB(GLsizei n, GLuint *buffers)
{
GLuint *local_buffers = (GLuint *) crAlloc( n * sizeof(*local_buffers) );
(void) buffers;
- cr_server.head_spu->dispatch_table.GenBuffersARB( n, local_buffers );
+
+ crStateGenBuffersARB(n, local_buffers);
+
crServerReturnValue( local_buffers, n * sizeof(*local_buffers) );
crFree( local_buffers );
}
+void SERVER_DISPATCH_APIENTRY crServerDispatchDeleteBuffersARB( GLsizei n, const GLuint * buffer )
+{
+ crStateDeleteBuffersARB( n, buffer );
+}
+
void SERVER_DISPATCH_APIENTRY
crServerDispatchGetBufferPointervARB(GLenum target, GLenum pname, GLvoid **params)
{
@@ -69,8 +76,9 @@ crServerDispatchBindBufferARB(GLenum target, GLuint buffer)
GLboolean SERVER_DISPATCH_APIENTRY
crServerDispatchIsBufferARB(GLuint buffer)
{
- GLboolean retval;
- retval = cr_server.head_spu->dispatch_table.IsBufferARB(crStateGetBufferHWID(buffer));
+ /* since GenBuffersARB issued to host ogl only on bind + some other ops, the host drivers may not know about them
+ * so use state data*/
+ GLboolean retval = crStateIsBufferARB(buffer);
crServerReturnValue( &retval, sizeof(retval) );
return retval; /* WILL PROBABLY BE IGNORED */
}