VirtualBox

Ignore:
Timestamp:
Jun 26, 2013 1:01:07 PM (12 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
86738
Message:

wddm/crOpenGL: more TexPresent fixes

File:
1 edited

Legend:

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

    r46783 r46801  
    187187    crFreeHashtable(cr_server.muralTable, deleteMuralInfoCallback);
    188188
     189    crServerDisplayTermAll();
     190    CrDemTerm(&cr_server.PresentTexturepMap);
     191    memset(cr_server.DisplaysInitMap, 0, sizeof (cr_server.DisplaysInitMap));
     192    memset(cr_server.aDispplays, 0, sizeof (cr_server.aDispplays));
     193
    189194    for (i = 0; i < cr_server.numClients; i++) {
    190195        if (cr_server.clients[i]) {
     
    333338    }
    334339
     340    env = crGetenv("CR_SERVER_CAPS");
     341    if (env && env[0] != '\0')
     342    {
     343        cr_server.u32Caps = crServerVBoxParseNumerics(env, 0);
     344        cr_server.u32Caps &= ~(CR_VBOX_CAP_TEX_PRESENT | CR_VBOX_CAP_NO_DWM_SUPPORT);
     345    }
     346    else
     347    {
     348        cr_server.u32Caps = 0;
     349#ifdef DEBUG_misha
     350        cr_server.u32Caps = CR_VBOX_CAP_TEX_PRESENT;
     351#endif
     352    }
     353
    335354    cr_server.firstCallCreateContext = GL_TRUE;
    336355    cr_server.firstCallMakeCurrent = GL_TRUE;
     
    362381    cr_server.dummyMuralTable = crAllocHashtable();
    363382
     383    CrDemInit(&cr_server.PresentTexturepMap);
     384    memset(cr_server.DisplaysInitMap, 0, sizeof (cr_server.DisplaysInitMap));
     385    memset(cr_server.aDispplays, 0, sizeof (cr_server.aDispplays));
     386
    364387    cr_server.fRootVrOn = GL_FALSE;
    365388    VBoxVrListInit(&cr_server.RootVr);
     
    425448        crInfo("Info: using multiple contexts!");
    426449        crDebug("Debug: using multiple contexts!");
     450    }
     451
     452    env = crGetenv("CR_SERVER_CAPS");
     453    if (env && env[0] != '\0')
     454    {
     455        cr_server.u32Caps = crServerVBoxParseNumerics(env, 0);
     456        cr_server.u32Caps &= ~(CR_VBOX_CAP_TEX_PRESENT | CR_VBOX_CAP_NO_DWM_SUPPORT);
     457    }
     458    else
     459    {
     460        cr_server.u32Caps = 0;
     461#ifdef DEBUG_misha
     462        cr_server.u32Caps = CR_VBOX_CAP_TEX_PRESENT;
     463#endif
    427464    }
    428465
     
    464501
    465502    cr_server.dummyMuralTable = crAllocHashtable();
     503
     504    CrDemInit(&cr_server.PresentTexturepMap);
     505    memset(cr_server.DisplaysInitMap, 0, sizeof (cr_server.DisplaysInitMap));
     506    memset(cr_server.aDispplays, 0, sizeof (cr_server.aDispplays));
    466507
    467508    cr_server.fRootVrOn = GL_FALSE;
     
    9701011            return NULL;
    9711012        }
    972         id = crServerMuralInit(pMural, "", visualBits, -1);
     1013        id = crServerMuralInit(pMural, "", visualBits, -1, GL_TRUE);
    9731014        if (id < 0)
    9741015        {
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