VirtualBox

Changeset 43182 in vbox


Ignore:
Timestamp:
Sep 4, 2012 7:21:41 PM (13 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
80568
Message:

crOpenGL: 1. VRDP+3D fixes, 2. Generic bugfixes, 3. Intel GPU-related fixes

Location:
trunk/src/VBox/HostServices/SharedOpenGL
Files:
5 edited

Legend:

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

    r41380 r43182  
    5555            return -1;
    5656        }
     57        cr_server.MainContextInfo.pContext = crStateCreateContext(&cr_server.limits, visualBits, NULL);
     58        CRASSERT(cr_server.MainContextInfo.pContext);
    5759        cr_server.firstCallCreateContext = GL_FALSE;
    5860        fFirst = GL_TRUE;
     
    265267        }
    266268        pNode = pNode->next;
     269    }
     270
     271    if (cr_server.currentCtxInfo == crCtxInfo)
     272    {
     273        cr_server.currentCtxInfo = &cr_server.MainContextInfo;
    267274    }
    268275}
  • trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_main.c

    r41949 r43182  
    310310     */
    311311    cr_server.contextTable = crAllocHashtable();
    312     cr_server.MainContextInfo.pContext = crStateCreateContext( &cr_server.limits,
    313                                                    CR_RGB_BIT | CR_DEPTH_BIT, NULL );
    314312    cr_server.curClient->currentCtxInfo = &cr_server.MainContextInfo;
    315313
     
    388386     */
    389387    cr_server.contextTable = crAllocHashtable();
    390     cr_server.MainContextInfo.pContext = crStateCreateContext( &cr_server.limits,
    391                                                    CR_RGB_BIT | CR_DEPTH_BIT, NULL );
    392388//    cr_server.pContextCreateInfoTable = crAllocHashtable();
    393389    cr_server.pWindowCreateInfoTable = crAllocHashtable();
     
    13951391
    13961392    if (mural->screenId != *sIndex)
    1397         return;
    1398 
    1399     if (!mural->width || !mural->height)
    14001393        return;
    14011394
  • trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_muralfbo.c

    r41404 r43182  
    101101    int overlappingScreenCount, primaryS, i;
    102102
     103    if (!mural->width || !mural->height)
     104        return;
     105
    103106    if (cr_server.screenCount<2 && !cr_server.bForceOffscreenRendering)
    104107    {
     
    252255        }
    253256
    254         crStateGetCurrent()->buffer.width = 0;
    255         crStateGetCurrent()->buffer.height = 0;
     257        if (cr_server.curClient && cr_server.curClient->currentMural == mural)
     258        {
     259            crStateGetCurrent()->buffer.width = 0;
     260            crStateGetCurrent()->buffer.height = 0;
     261        }
    256262    }
    257263    else
     
    271277        }
    272278
    273         crStateGetCurrent()->buffer.width = mural->width;
    274         crStateGetCurrent()->buffer.height = mural->height;
     279        if (cr_server.curClient && cr_server.curClient->currentMural == mural)
     280        {
     281            crStateGetCurrent()->buffer.width = mural->width;
     282            crStateGetCurrent()->buffer.height = mural->height;
     283        }
    275284    }
    276285
  • trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_window.c

    r42517 r43182  
    103103
    104104        crServerSetupOutputRedirect(mural);
    105 
    106         crStateGetCurrent()->buffer.width = mural->width;
    107         crStateGetCurrent()->buffer.height = mural->height;
    108105    }
    109106
     
    170167    {
    171168        cr_server.currentWindow = -1;
    172         crServerRedirMuralFBO(mural, GL_FALSE);
    173         crServerDeleteMuralFBO(mural);
    174     }
     169    }
     170
     171    crServerRedirMuralFBO(mural, GL_FALSE);
     172    crServerDeleteMuralFBO(mural);
    175173
    176174    crDebug("CRServer: Destroying window %d (spu window %d)", window, mural->spuWindow);
     
    262260    mural->height = height;
    263261
    264     crStateGetCurrent()->buffer.width = mural->width;
    265     crStateGetCurrent()->buffer.height = mural->height;
    266 
    267     if (!width || !height)
    268     {
    269         crServerDispatchWindowVisibleRegion(window, 0, NULL);
    270         return;
     262    if (cr_server.curClient && cr_server.curClient->currentMural == mural)
     263    {
     264        crStateGetCurrent()->buffer.width = mural->width;
     265        crStateGetCurrent()->buffer.height = mural->height;
    271266    }
    272267
     
    302297    mural->gY = y;
    303298
    304     if (!mural->width || !mural->height)
    305         return;
    306 
    307299    crServerCheckMuralGeometry(mural);
    308300}
  • trunk/src/VBox/HostServices/SharedOpenGL/render/renderspu.h

    r41929 r43182  
    9090    HWND hWnd;
    9191    HDC device_context;
     92    HRGN hRgn;
    9293#elif defined(DARWIN)
    9394# ifndef VBOX_WITH_COCOA_QT
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