VirtualBox

Changeset 20616 in vbox for trunk/src


Ignore:
Timestamp:
Jun 16, 2009 9:52:32 AM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
48677
Message:

crOpenGL: enable viewport hack for googleearth in d3d9 mode

Location:
trunk/src/VBox/Additions/common/crOpenGL
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/common/crOpenGL/load.c

    r20084 r20616  
    4040#endif
    4141
     42#ifdef WINDOWS
     43static char* gsViewportHackApps[] = {"googleearth.exe", NULL};
     44#endif
     45
    4246static int stub_initialized = 0;
    4347
     
    145149{
    146150    stubCheckWindowState();
    147     /* call the original SPU glViewport function */ 
    148     origViewport(x, y, w, h);
    149 
    150     /*
     151    /* call the original SPU glViewport function */
     152    if (!stub.viewportHack)
     153    {
     154        origViewport(x, y, w, h);
     155    }
     156    else
    151157    {
    152158        int winX, winY;
     
    157163        origViewport(0, 0, winW, winH);
    158164    }
    159     */
    160165}
    161166
     
    174179static void SPU_APIENTRY trapScissor(GLint x, GLint y, GLsizei w, GLsizei h)
    175180{
    176     origScissor(x, y, w, h);
    177 
    178     /*
    179     {
    180         int winX, winY;
    181         unsigned int winW, winH;
    182         WindowInfo *pWindow;
    183         pWindow = stub.currentContext->currentDrawable;
    184         stubGetWindowGeometry(pWindow, &winX, &winY, &winW, &winH);
    185         origScissor(0, 0, winW, winH);
    186     }
    187     */
     181    int winX, winY;
     182    unsigned int winW, winH;
     183    WindowInfo *pWindow;
     184    pWindow = stub.currentContext->currentDrawable;
     185    stubGetWindowGeometry(pWindow, &winX, &winY, &winW, &winH);
     186    origScissor(0, 0, winW, winH);
    188187}
    189188
     
    206205        stub.spuDispatch.Clear = trapClear;
    207206        stub.spuDispatch.Viewport = trapViewport;
    208         /*stub.spuDispatch.Scissor = trapScissor;*/
     207        if (stub.viewportHack)
     208            stub.spuDispatch.Scissor = trapScissor;
    209209        /*stub.spuDispatch.SwapBuffers = trapSwapBuffers;
    210210        stub.spuDispatch.DrawBuffer = trapDrawBuffer;*/
     
    517517    crNetSetKey(key,sizeof(key));
    518518    stub.force_pbuffers = 0;
     519    stub.viewportHack = 0;
     520
     521#ifdef WINDOWS
     522    {
     523        char name[1000];
     524        int i;
     525
     526        crGetProcName(name, 1000);
     527        for (i=0; gsViewportHackApps[i]; ++i)
     528        {
     529            if (!stricmp(name, gsViewportHackApps[i]))
     530            {
     531                stub.viewportHack = 1;
     532                break;
     533            }
     534        }
     535    }
     536#endif
    519537}
    520538
  • trunk/src/VBox/Additions/common/crOpenGL/stub.h

    r16748 r20616  
    183183    char *spu_dir;
    184184    int force_pbuffers;
     185    int viewportHack;
    185186
    186187    /* thread safety stuff */
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