VirtualBox

Ignore:
Timestamp:
Sep 17, 2009 1:48:46 PM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
52452
Message:

crOpenGL: fix FBO/RBOs support, add snapshots compatibility

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_framebuffer.c

    r22155 r23094  
    8080    cr_server.head_spu->dispatch_table.FramebufferTexture3DEXT(target, attachment, textarget, texture, level, zoffset);
    8181}
     82
     83void SERVER_DISPATCH_APIENTRY crServerDispatchBindFramebufferEXT(GLenum target, GLuint framebuffer)
     84{
     85        crStateBindFramebufferEXT(target, framebuffer);
     86        cr_server.head_spu->dispatch_table.BindFramebufferEXT(target, crStateGetFramebufferHWID(framebuffer));
     87}
     88
     89void SERVER_DISPATCH_APIENTRY crServerDispatchBindRenderbufferEXT(GLenum target, GLuint renderbuffer)
     90{
     91        crStateBindRenderbufferEXT(target, renderbuffer);
     92        cr_server.head_spu->dispatch_table.BindRenderbufferEXT(target, crStateGetRenderbufferHWID(renderbuffer));
     93}
     94
     95void SERVER_DISPATCH_APIENTRY crServerDispatchDeleteFramebuffersEXT(GLsizei n, const GLuint * framebuffers)
     96{
     97        crStateDeleteFramebuffersEXT(n, framebuffers);
     98}
     99
     100void SERVER_DISPATCH_APIENTRY crServerDispatchDeleteRenderbuffersEXT(GLsizei n, const GLuint * renderbuffers)
     101{
     102        crStateDeleteRenderbuffersEXT(n, renderbuffers);
     103}
     104
     105void SERVER_DISPATCH_APIENTRY
     106crServerDispatchFramebufferRenderbufferEXT(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
     107{
     108        crStateFramebufferRenderbufferEXT(target, attachment, renderbuffertarget, renderbuffer);
     109        cr_server.head_spu->dispatch_table.FramebufferRenderbufferEXT(target, attachment, renderbuffertarget, crStateGetRenderbufferHWID(renderbuffer));
     110}
     111
     112void SERVER_DISPATCH_APIENTRY
     113crServerDispatchGetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment, GLenum pname, GLint * params)
     114{
     115        GLint local_params[1];
     116        (void) params;
     117        crStateGetFramebufferAttachmentParameterivEXT(target, attachment, pname, local_params);
     118
     119    if (GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT==pname)
     120    {
     121        GLint type;
     122        crStateGetFramebufferAttachmentParameterivEXT(target, attachment, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT, &type);
     123        if (GL_TEXTURE==type)
     124        {
     125            /*todo, add reverse of crServerTranslateTextureID*/
     126            if (!cr_server.sharedTextureObjects && local_params[0])
     127            {
     128                int client = cr_server.curClient->number;
     129                local_params[0] = local_params[0] - client * 100000;
     130            }
     131        }
     132    }
     133
     134        crServerReturnValue(&(local_params[0]), 1*sizeof(GLint));
     135}
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette