VirtualBox

Changeset 44026 in vbox for trunk/src/VBox/HostServices


Ignore:
Timestamp:
Dec 4, 2012 7:01:04 AM (12 years ago)
Author:
vboxsync
Message:

crOpenGL: fix saved state restore with VRDP+3D enabled

File:
1 edited

Legend:

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

    r43980 r44026  
    309309    GLenum status;
    310310    SPUDispatchTable *gl = &cr_server.head_spu->dispatch_table;
     311    CRContextInfo *pMuralContextInfo;
     312    int RestoreSpuWindow = -1;
     313    int RestoreSpuContext = -1;
    311314
    312315    CRASSERT(mural->aidFBOs[0]==0);
    313316    CRASSERT(mural->aidFBOs[1]==0);
     317
     318    pMuralContextInfo = cr_server.currentCtxInfo;
     319    if (!pMuralContextInfo)
     320    {
     321        /* happens on saved state load */
     322        CRASSERT(cr_server.MainContextInfo.SpuContext);
     323        pMuralContextInfo = &cr_server.MainContextInfo;
     324        cr_server.head_spu->dispatch_table.MakeCurrent(mural->spuWindow, 0, cr_server.MainContextInfo.SpuContext);
     325        RestoreSpuWindow = 0;
     326        RestoreSpuContext = 0;
     327    }
     328
     329    if (pMuralContextInfo->CreateInfo.visualBits != mural->CreateInfo.visualBits)
     330    {
     331        crWarning("mural visual bits do not match with current context visual bits!");
     332    }
    314333
    315334    mural->cBuffers = 2;
     
    394413    {
    395414        gl->BindBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, ctx->bufferobject.unpackBuffer->hwid);
     415    }
     416
     417    if (RestoreSpuWindow >= 0 && RestoreSpuContext >= 0)
     418    {
     419        cr_server.head_spu->dispatch_table.MakeCurrent(RestoreSpuWindow, 0, RestoreSpuContext);
    396420    }
    397421}
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