VirtualBox

Changeset 29433 in vbox


Ignore:
Timestamp:
May 12, 2010 5:15:14 PM (15 years ago)
Author:
vboxsync
Message:

crOpenGL: macos don't override client texture/fbo bindings

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostServices/SharedOpenGL/render/renderspu_cocoa_helper.m

    r29427 r29433  
    767767- (void)createFBO
    768768{
    769     GLuint fboid = m_FBOId;
     769    GLint oldTexId;
     770    GLint oldFBId;
    770771   
    771772    DEBUG_MSG(("createFBO %p\n", self));
    772773    [self deleteFBO];
    773774
    774 if (0&&!fboid)
    775     GL_SAVE_STATE;
    776 
     775    //GL_SAVE_STATE;
     776#if 0
     777    CHECK_GL_ERROR();
     778    glPushAttrib(GL_ACCUM_BUFFER_BIT);
     779    glPopAttrib();
     780    CHECK_GL_ERROR();
     781#endif
     782
     783    glGetIntegerv(GL_TEXTURE_BINDING_RECTANGLE_ARB, &oldTexId);
     784    glGetIntegerv(GL_FRAMEBUFFER_BINDING_EXT, &oldFBId);
     785   
    777786    /* If not previously setup generate IDs for FBO and its associated texture. */
    778787    if (!m_FBOId)
     
    803812    glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_FBOId);
    804813
    805     glEnable(GL_TEXTURE_RECTANGLE_ARB);
     814    /*glEnable(GL_TEXTURE_RECTANGLE_ARB);*/
    806815   
    807816    GLfloat imageAspectRatio = m_FBOTexSize.width / m_FBOTexSize.height;
     
    851860        DEBUG_MSG(("Framebuffer Object creation or update failed!\n"));
    852861
    853     glBindTexture(GL_TEXTURE_RECTANGLE_ARB, 0);
    854     glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
    855     glDisable(GL_TEXTURE_RECTANGLE_ARB);
     862    glBindTexture(GL_TEXTURE_RECTANGLE_ARB, oldTexId);
     863    glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, oldFBId ? oldFBId:0);
    856864
    857865    /* Is there a dock tile preview enabled in the GUI? If so setup a
     
    885893            DEBUG_MSG(("Framebuffer Thumb Object creation or update failed!\n"));
    886894
    887         glBindTexture(GL_TEXTURE_RECTANGLE_ARB, 0);
    888         glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
     895        glBindTexture(GL_TEXTURE_RECTANGLE_ARB, oldTexId);
     896        glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, oldFBId ? oldFBId:0);
    889897
    890898        m_DockTileView = [[DockOverlayView alloc] init];
     
    902910    m_paClipRects[3] = m_FBOTexSize.height;
    903911   
    904 if (0&&!fboid)
    905     GL_RESTORE_STATE;
     912    //GL_RESTORE_STATE;
    906913}
    907914
     
    931938        if (m_FBOTexId > 0)
    932939        {
    933             glEnable(GL_TEXTURE_RECTANGLE_ARB);
    934             glBindTexture(GL_TEXTURE_RECTANGLE_ARB, 0);
    935940            glDeleteTextures(1, &m_FBOTexId);
    936941            m_FBOTexId = 0;
Note: See TracChangeset for help on using the changeset viewer.

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