packspu_getshaders.c revision 66db0d070f5c72f6debc35db39c2406f32ea005d
2c49e8ee4e38348536fd7151b5d4e001d3d2fd8bvboxsync * VBox OpenGL GLSL related functions
e64031e20c39650a7bc902a3e1aba613b9415deevboxsync * Copyright (C) 2009 Oracle Corporation
8507f6a07ff05e3119f2fc2b23c2b6a227abf0afvboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
8507f6a07ff05e3119f2fc2b23c2b6a227abf0afvboxsync * available from http://www.virtualbox.org. This file is free software;
8507f6a07ff05e3119f2fc2b23c2b6a227abf0afvboxsync * you can redistribute it and/or modify it under the terms of the GNU
8507f6a07ff05e3119f2fc2b23c2b6a227abf0afvboxsync * General Public License (GPL) as published by the Free Software
8507f6a07ff05e3119f2fc2b23c2b6a227abf0afvboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
8507f6a07ff05e3119f2fc2b23c2b6a227abf0afvboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
8507f6a07ff05e3119f2fc2b23c2b6a227abf0afvboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync/*@todo combine with the one from server_getshaders.c*/
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsyncvoid PACKSPU_APIENTRY packspu_GetActiveAttrib(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, char * name)
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync pLocal = (crGetActive_t*) crAlloc(bufSize+sizeof(crGetActive_t));
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync if (!pLocal) return;
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync crPackGetActiveAttrib(program, index, bufSize, (GLsizei*)pLocal, NULL, NULL, NULL, &writeback);
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync crMemcpy(name, (char*)&pLocal[1], pLocal->length+1);
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsyncvoid PACKSPU_APIENTRY packspu_GetActiveUniform(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, char * name)
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync pLocal = (crGetActive_t*) crAlloc(bufSize+sizeof(crGetActive_t));
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync if (!pLocal) return;
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync crPackGetActiveUniform(program, index, bufSize, (GLsizei*)pLocal, NULL, NULL, NULL, &writeback);
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsyncvoid PACKSPU_APIENTRY packspu_GetAttachedShaders(GLuint program, GLsizei maxCount, GLsizei * count, GLuint * shaders)
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync if (!shaders) return;
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync pLocal = (GLsizei*) crAlloc(maxCount*sizeof(GLuint)+sizeof(GLsizei));
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync if (!pLocal) return;
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync crPackGetAttachedShaders(program, maxCount, pLocal, NULL, &writeback);
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync crMemcpy(shaders, &pLocal[1], *pLocal*sizeof(GLuint));
7e032664d31552364e83b411950d6e7c96b0b880vboxsyncvoid PACKSPU_APIENTRY packspu_GetAttachedObjectsARB(GLhandleARB containerObj, GLsizei maxCount, GLsizei * count, GLhandleARB * obj)
7e032664d31552364e83b411950d6e7c96b0b880vboxsync if (!obj) return;
7e032664d31552364e83b411950d6e7c96b0b880vboxsync pLocal = (GLsizei*) crAlloc(maxCount*sizeof(GLhandleARB)+sizeof(GLsizei));
7e032664d31552364e83b411950d6e7c96b0b880vboxsync if (!pLocal) return;
7e032664d31552364e83b411950d6e7c96b0b880vboxsync crPackGetAttachedObjectsARB(containerObj, maxCount, pLocal, NULL, &writeback);
7e032664d31552364e83b411950d6e7c96b0b880vboxsync crMemcpy(obj, &pLocal[1], *pLocal*sizeof(GLhandleARB));
7e032664d31552364e83b411950d6e7c96b0b880vboxsyncvoid PACKSPU_APIENTRY packspu_GetInfoLogARB(GLhandleARB obj, GLsizei maxLength, GLsizei * length, GLcharARB * infoLog)
7e032664d31552364e83b411950d6e7c96b0b880vboxsync if (!infoLog) return;
7e032664d31552364e83b411950d6e7c96b0b880vboxsync pLocal = (GLsizei*) crAlloc(maxLength+sizeof(GLsizei));
7e032664d31552364e83b411950d6e7c96b0b880vboxsync if (!pLocal) return;
7e032664d31552364e83b411950d6e7c96b0b880vboxsync crPackGetInfoLogARB(obj, maxLength, pLocal, NULL, &writeback);
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsyncvoid PACKSPU_APIENTRY packspu_GetProgramInfoLog(GLuint program, GLsizei bufSize, GLsizei * length, char * infoLog)
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync if (!infoLog) return;
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync pLocal = (GLsizei*) crAlloc(bufSize+sizeof(GLsizei));
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync if (!pLocal) return;
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync crPackGetProgramInfoLog(program, bufSize, pLocal, NULL, &writeback);
bf4db0318f6b76f524b27b87528918fd40aeaae6vboxsync crMemcpy(infoLog, &pLocal[1], (bufSize >= pLocal[0]) ? pLocal[0] : bufSize);
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsyncvoid PACKSPU_APIENTRY packspu_GetShaderInfoLog(GLuint shader, GLsizei bufSize, GLsizei * length, char * infoLog)
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync if (!infoLog) return;
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync pLocal = (GLsizei*) crAlloc(bufSize+sizeof(GLsizei));
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync if (!pLocal) return;
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync crPackGetShaderInfoLog(shader, bufSize, pLocal, NULL, &writeback);
bf4db0318f6b76f524b27b87528918fd40aeaae6vboxsync crMemcpy(infoLog, &pLocal[1], (bufSize >= pLocal[0]) ? pLocal[0] : bufSize);
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsyncvoid PACKSPU_APIENTRY packspu_GetShaderSource(GLuint shader, GLsizei bufSize, GLsizei * length, char * source)
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync if (!source) return;
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync pLocal = (GLsizei*) crAlloc(bufSize+sizeof(GLsizei));
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync if (!pLocal) return;
d68511fc6827e32ca38d7bbaed520c34b6c9f050vboxsync crPackGetShaderSource(shader, bufSize, pLocal, NULL, &writeback);