server_texture.c revision f350d4fb2d12fd22c0905fe9c7a121499da7b52d
a399af7c964fd519318bb906a1274e720943a4c1vboxsync * VBox crOpenGL: teximage functions.
a399af7c964fd519318bb906a1274e720943a4c1vboxsync * Copyright (C) 2010 Oracle Corporation
a399af7c964fd519318bb906a1274e720943a4c1vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
a399af7c964fd519318bb906a1274e720943a4c1vboxsync * available from http://www.virtualbox.org. This file is free software;
a399af7c964fd519318bb906a1274e720943a4c1vboxsync * you can redistribute it and/or modify it under the terms of the GNU
a399af7c964fd519318bb906a1274e720943a4c1vboxsync * General Public License (GPL) as published by the Free Software
a399af7c964fd519318bb906a1274e720943a4c1vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
a399af7c964fd519318bb906a1274e720943a4c1vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
a399af7c964fd519318bb906a1274e720943a4c1vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
a399af7c964fd519318bb906a1274e720943a4c1vboxsync# define CR_FIXPTR() (uintptr_t) realptr += (uintptr_t) cr_server.head_spu->dispatch_table.MapBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, GL_READ_ONLY_ARB)
a399af7c964fd519318bb906a1274e720943a4c1vboxsync if (crStateIsBufferBound(GL_PIXEL_UNPACK_BUFFER_ARB)) \
a399af7c964fd519318bb906a1274e720943a4c1vboxsync#if defined(CR_ARB_pixel_buffer_object) && !defined(CR_STATE_NO_TEXTURE_IMAGE_STORE)
a399af7c964fd519318bb906a1274e720943a4c1vboxsync if (crStateIsBufferBound(GL_PIXEL_UNPACK_BUFFER_ARB)) \
a399af7c964fd519318bb906a1274e720943a4c1vboxsync if (!cr_server.head_spu->dispatch_table.UnmapBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB)) \
a399af7c964fd519318bb906a1274e720943a4c1vboxsync#define CR_FUNC_SUBIMAGE(name, def, call, ptrname) \
a399af7c964fd519318bb906a1274e720943a4c1vboxsync (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imagesize, const GLvoid * data),
a399af7c964fd519318bb906a1274e720943a4c1vboxsync (target, level, xoffset, width, format, imagesize, realptr), data)
a399af7c964fd519318bb906a1274e720943a4c1vboxsync (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imagesize, const GLvoid * data),
a399af7c964fd519318bb906a1274e720943a4c1vboxsync (target, level, xoffset, yoffset, width, height, format, imagesize, realptr), data)
a399af7c964fd519318bb906a1274e720943a4c1vboxsync (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imagesize, const GLvoid * data),
a399af7c964fd519318bb906a1274e720943a4c1vboxsync (target, level, xoffset, yoffset, zoffset, width, height, depth, format, imagesize, realptr), data)
a399af7c964fd519318bb906a1274e720943a4c1vboxsync (GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imagesize, const GLvoid * data),
a399af7c964fd519318bb906a1274e720943a4c1vboxsync (target, level, internalFormat, width, border, imagesize, realptr), data)
a399af7c964fd519318bb906a1274e720943a4c1vboxsync (GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imagesize, const GLvoid * data),
a399af7c964fd519318bb906a1274e720943a4c1vboxsync (target, level, internalFormat, width, height, border, imagesize, realptr), data)
a399af7c964fd519318bb906a1274e720943a4c1vboxsync (GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imagesize, const GLvoid * data),
a399af7c964fd519318bb906a1274e720943a4c1vboxsync (target, level, internalFormat, width, height, depth, border, imagesize, realptr), data)
a399af7c964fd519318bb906a1274e720943a4c1vboxsync (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid * pixels),
a399af7c964fd519318bb906a1274e720943a4c1vboxsync (target, level, xoffset, width, format, type, realptr), pixels)
a399af7c964fd519318bb906a1274e720943a4c1vboxsync (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels),
a399af7c964fd519318bb906a1274e720943a4c1vboxsync (target, level, xoffset, yoffset, width, height, format, type, realptr), pixels)
a399af7c964fd519318bb906a1274e720943a4c1vboxsync (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid * pixels),
a399af7c964fd519318bb906a1274e720943a4c1vboxsync (target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, realptr), pixels)
a399af7c964fd519318bb906a1274e720943a4c1vboxsync (GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid * pixels),
a399af7c964fd519318bb906a1274e720943a4c1vboxsync (target, level, internalFormat, width, border, format, type, realptr), pixels)
a399af7c964fd519318bb906a1274e720943a4c1vboxsync (GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels),
a399af7c964fd519318bb906a1274e720943a4c1vboxsync (target, level, internalFormat, width, height, border, format, type, realptr), pixels)
a399af7c964fd519318bb906a1274e720943a4c1vboxsync (GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid * pixels),
a399af7c964fd519318bb906a1274e720943a4c1vboxsync (target, level, internalFormat, width, height, depth, border, format, type, realptr), pixels)
f350d4fb2d12fd22c0905fe9c7a121499da7b52dvboxsyncvoid SERVER_DISPATCH_APIENTRY crServerDispatchTexEnvf( GLenum target, GLenum pname, GLfloat param )
f350d4fb2d12fd22c0905fe9c7a121499da7b52dvboxsync if (GL_POINT_SPRITE != target && pname != GL_COORD_REPLACE)
f350d4fb2d12fd22c0905fe9c7a121499da7b52dvboxsync CR_GLERR_CHECK(cr_server.head_spu->dispatch_table.TexEnvf( target, pname, param ););
f350d4fb2d12fd22c0905fe9c7a121499da7b52dvboxsyncvoid SERVER_DISPATCH_APIENTRY crServerDispatchTexEnvfv( GLenum target, GLenum pname, const GLfloat * params )
f350d4fb2d12fd22c0905fe9c7a121499da7b52dvboxsync if (GL_POINT_SPRITE != target && pname != GL_COORD_REPLACE)
f350d4fb2d12fd22c0905fe9c7a121499da7b52dvboxsync CR_GLERR_CHECK(cr_server.head_spu->dispatch_table.TexEnvfv( target, pname, params ););
f350d4fb2d12fd22c0905fe9c7a121499da7b52dvboxsyncvoid SERVER_DISPATCH_APIENTRY crServerDispatchTexEnvi( GLenum target, GLenum pname, GLint param )
f350d4fb2d12fd22c0905fe9c7a121499da7b52dvboxsync if (GL_POINT_SPRITE != target && pname != GL_COORD_REPLACE)
f350d4fb2d12fd22c0905fe9c7a121499da7b52dvboxsync CR_GLERR_CHECK(cr_server.head_spu->dispatch_table.TexEnvi( target, pname, param ););
f350d4fb2d12fd22c0905fe9c7a121499da7b52dvboxsyncvoid SERVER_DISPATCH_APIENTRY crServerDispatchTexEnviv( GLenum target, GLenum pname, const GLint * params )
f350d4fb2d12fd22c0905fe9c7a121499da7b52dvboxsync if (GL_POINT_SPRITE != target && pname != GL_COORD_REPLACE)
f350d4fb2d12fd22c0905fe9c7a121499da7b52dvboxsync CR_GLERR_CHECK(cr_server.head_spu->dispatch_table.TexEnviv( target, pname, params ););
f350d4fb2d12fd22c0905fe9c7a121499da7b52dvboxsyncvoid SERVER_DISPATCH_APIENTRY crServerDispatchGetTexEnvfv( GLenum target, GLenum pname, GLfloat * params )
f350d4fb2d12fd22c0905fe9c7a121499da7b52dvboxsync if (GL_POINT_SPRITE != target && pname != GL_COORD_REPLACE)
f350d4fb2d12fd22c0905fe9c7a121499da7b52dvboxsync cr_server.head_spu->dispatch_table.GetTexEnvfv( target, pname, local_params );
f350d4fb2d12fd22c0905fe9c7a121499da7b52dvboxsync crServerReturnValue( &(local_params[0]), crStateHlpComponentsCount(pname)*sizeof (GLfloat) );
f350d4fb2d12fd22c0905fe9c7a121499da7b52dvboxsyncvoid SERVER_DISPATCH_APIENTRY crServerDispatchGetTexEnviv( GLenum target, GLenum pname, GLint * params )
f350d4fb2d12fd22c0905fe9c7a121499da7b52dvboxsync if (GL_POINT_SPRITE != target && pname != GL_COORD_REPLACE)
f350d4fb2d12fd22c0905fe9c7a121499da7b52dvboxsync cr_server.head_spu->dispatch_table.GetTexEnviv( target, pname, local_params );