summaryrefslogtreecommitdiff
path: root/src/VBox/HostServices/SharedOpenGL/crserverlib/server_simpleget.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/VBox/HostServices/SharedOpenGL/crserverlib/server_simpleget.py')
-rw-r--r--src/VBox/HostServices/SharedOpenGL/crserverlib/server_simpleget.py31
1 files changed, 22 insertions, 9 deletions
diff --git a/src/VBox/HostServices/SharedOpenGL/crserverlib/server_simpleget.py b/src/VBox/HostServices/SharedOpenGL/crserverlib/server_simpleget.py
index 363ccb43..1698841f 100644
--- a/src/VBox/HostServices/SharedOpenGL/crserverlib/server_simpleget.py
+++ b/src/VBox/HostServices/SharedOpenGL/crserverlib/server_simpleget.py
@@ -74,31 +74,37 @@ for index in range(len(funcs)):
{
GLuint fboid;
CRASSERT(tablesize/sizeof(%s)==1);
- fboid = crStateFBOHWIDtoID((GLuint) *get_values);
- if (cr_server.curClient->currentMural->bUseFBO
- && crServerIsRedirectedToFBO()
- && fboid==cr_server.curClient->currentMural->idFBO)
+ fboid = (GLuint) *get_values;
+ if (crServerIsRedirectedToFBO()
+ && (fboid==cr_server.curClient->currentMural->aidFBOs[0]
+ || fboid==cr_server.curClient->currentMural->aidFBOs[1]))
{
fboid = 0;
}
+ else
+ {
+ fboid = crStateFBOHWIDtoID(fboid);
+ }
*get_values = (%s) fboid;
}
else if (GL_READ_BUFFER==pname)
{
- if (cr_server.curClient->currentMural->bUseFBO && crServerIsRedirectedToFBO()
- && cr_server.curClient->currentMural->idFBO
+ if (crServerIsRedirectedToFBO()
+ && CR_SERVER_FBO_FOR_IDX(cr_server.curClient->currentMural, cr_server.curClient->currentMural->iCurReadBuffer)
&& !crStateGetCurrent()->framebufferobject.readFB)
{
*get_values = (%s) crStateGetCurrent()->buffer.readBuffer;
+ Assert(crStateGetCurrent()->buffer.readBuffer == GL_BACK || crStateGetCurrent()->buffer.readBuffer == GL_FRONT);
}
}
else if (GL_DRAW_BUFFER==pname)
{
- if (cr_server.curClient->currentMural->bUseFBO && crServerIsRedirectedToFBO()
- && cr_server.curClient->currentMural->idFBO
+ if (crServerIsRedirectedToFBO()
+ && CR_SERVER_FBO_FOR_IDX(cr_server.curClient->currentMural, cr_server.curClient->currentMural->iCurDrawBuffer)
&& !crStateGetCurrent()->framebufferobject.drawFB)
{
*get_values = (%s) crStateGetCurrent()->buffer.drawBuffer;
+ Assert(crStateGetCurrent()->buffer.drawBuffer == GL_BACK || crStateGetCurrent()->buffer.drawBuffer == GL_FRONT);
}
}
else if (GL_RENDERBUFFER_BINDING_EXT==pname)
@@ -132,7 +138,14 @@ for index in range(len(funcs)):
*get_values = (%s)CR_MAX_TEXTURE_UNITS;
}
}
- """ % (types[index], types[index], types[index], types[index], types[index], types[index], types[index], types[index], types[index], types[index], types[index], types[index], types[index])
+ else if (GL_MAX_VERTEX_ATTRIBS_ARB==pname)
+ {
+ if (CR_MAX_VERTEX_ATTRIBS < (GLuint)*get_values)
+ {
+ *get_values = (%s)CR_MAX_VERTEX_ATTRIBS;
+ }
+ }
+ """ % (types[index], types[index], types[index], types[index], types[index], types[index], types[index], types[index], types[index], types[index], types[index], types[index], types[index], types[index])
print '\tcrServerReturnValue( get_values, tablesize );'
print '\tcrFree(get_values);'
print '}\n'