e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync/* Copyright (c) 2001, Stanford University
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * All rights reserved
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync *
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * See the file LICENSE.txt for information on redistributing this software.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#include "chromium.h"
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#include "cr_error.h"
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#include "cr_mem.h"
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#include "server_dispatch.h"
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#include "server.h"
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncvoid * SERVER_DISPATCH_APIENTRY
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsynccrServerDispatchMapBufferARB( GLenum target, GLenum access )
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync{
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync return NULL;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync}
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncGLboolean SERVER_DISPATCH_APIENTRY
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsynccrServerDispatchUnmapBufferARB( GLenum target )
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync{
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync return GL_FALSE;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync}
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncvoid SERVER_DISPATCH_APIENTRY
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsynccrServerDispatchGenBuffersARB(GLsizei n, GLuint *buffers)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync{
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLuint *local_buffers = (GLuint *) crAlloc( n * sizeof(*local_buffers) );
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync (void) buffers;
925b21ef13312d51bd7746073d52acd167d2f448vboxsync
925b21ef13312d51bd7746073d52acd167d2f448vboxsync crStateGenBuffersARB(n, local_buffers);
925b21ef13312d51bd7746073d52acd167d2f448vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync crServerReturnValue( local_buffers, n * sizeof(*local_buffers) );
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync crFree( local_buffers );
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync}
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
c18725c5feb3fb06870ff1b6fd3d424d3033bd11vboxsyncvoid SERVER_DISPATCH_APIENTRY crServerDispatchDeleteBuffersARB( GLsizei n, const GLuint * buffer )
c18725c5feb3fb06870ff1b6fd3d424d3033bd11vboxsync{
c18725c5feb3fb06870ff1b6fd3d424d3033bd11vboxsync crStateDeleteBuffersARB( n, buffer );
c18725c5feb3fb06870ff1b6fd3d424d3033bd11vboxsync}
c18725c5feb3fb06870ff1b6fd3d424d3033bd11vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncvoid SERVER_DISPATCH_APIENTRY
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsynccrServerDispatchGetBufferPointervARB(GLenum target, GLenum pname, GLvoid **params)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync{
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync crError( "glGetBufferPointervARB isn't *ever* allowed to be on the wire!" );
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync (void) target;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync (void) pname;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync (void) params;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync}
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncvoid SERVER_DISPATCH_APIENTRY
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsynccrServerDispatchGetBufferSubDataARB(GLenum target, GLintptrARB offset,
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLsizeiptrARB size, void * data)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync{
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync void *b;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync b = crAlloc(size);
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync if (b) {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync cr_server.head_spu->dispatch_table.GetBufferSubDataARB( target, offset, size, b );
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync crServerReturnValue( b, size );
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync crFree( b );
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync }
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync else {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync crError("Out of memory in crServerDispatchGetBufferSubDataARB");
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync }
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync}
c62d2520ac91e12cf4665c936f490dd2064152d3vboxsync
c62d2520ac91e12cf4665c936f490dd2064152d3vboxsyncvoid SERVER_DISPATCH_APIENTRY
c62d2520ac91e12cf4665c936f490dd2064152d3vboxsynccrServerDispatchBindBufferARB(GLenum target, GLuint buffer)
c62d2520ac91e12cf4665c936f490dd2064152d3vboxsync{
c62d2520ac91e12cf4665c936f490dd2064152d3vboxsync crStateBindBufferARB(target, buffer);
c62d2520ac91e12cf4665c936f490dd2064152d3vboxsync cr_server.head_spu->dispatch_table.BindBufferARB(target, crStateGetBufferHWID(buffer));
c62d2520ac91e12cf4665c936f490dd2064152d3vboxsync}
c62d2520ac91e12cf4665c936f490dd2064152d3vboxsync
c62d2520ac91e12cf4665c936f490dd2064152d3vboxsyncGLboolean SERVER_DISPATCH_APIENTRY
c62d2520ac91e12cf4665c936f490dd2064152d3vboxsynccrServerDispatchIsBufferARB(GLuint buffer)
c62d2520ac91e12cf4665c936f490dd2064152d3vboxsync{
fb999cbaa7a2872d9cd7375901ff3ccfc050ffb3vboxsync /* since GenBuffersARB issued to host ogl only on bind + some other ops, the host drivers may not know about them
fb999cbaa7a2872d9cd7375901ff3ccfc050ffb3vboxsync * so use state data*/
fb999cbaa7a2872d9cd7375901ff3ccfc050ffb3vboxsync GLboolean retval = crStateIsBufferARB(buffer);
c62d2520ac91e12cf4665c936f490dd2064152d3vboxsync crServerReturnValue( &retval, sizeof(retval) );
c62d2520ac91e12cf4665c936f490dd2064152d3vboxsync return retval; /* WILL PROBABLY BE IGNORED */
c62d2520ac91e12cf4665c936f490dd2064152d3vboxsync}