VirtualBox

Ignore:
Timestamp:
Feb 18, 2013 5:02:47 PM (12 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
83844
Message:

crOpenGL: OSX backend rework; oddscreen rendering generalization

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostServices/SharedOpenGL/render/renderspu_init.c

    r40318 r44740  
    1010#include "cr_string.h"
    1111#include "cr_url.h"
     12#include "cr_environment.h"
    1213#include "renderspu.h"
    1314#include <stdio.h>
     
    139140    GLint defaultWin, defaultCtx;
    140141    WindowInfo *windowInfo;
     142    const char * pcpwSetting;
    141143
    142144    (void) child;
     
    200202    render_spu.contextTable = crAllocHashtable();
    201203    render_spu.windowTable = crAllocHashtable();
     204
     205    pcpwSetting = crGetenv("CR_RENDER_ENABLE_PRESENT_CONTEXT_PER_WINDOW");
     206    if (pcpwSetting)
     207    {
     208        if (pcpwSetting[0] == '0')
     209            pcpwSetting = NULL;
     210    }
     211    else
     212    {
     213        /* default is enable for OSX */
     214#if defined(DARWIN) && defined(VBOX_WITH_COCOA_QT)
     215        pcpwSetting = (char*)1;
     216#endif
     217
     218    }
     219
     220    if (pcpwSetting)
     221    {
     222        render_spu.blitterTable = crAllocHashtable();
     223        CRASSERT(render_spu.blitterTable);
     224    }
     225    else
     226        render_spu.blitterTable = NULL;
    202227
    203228    CRASSERT(render_spu.default_visual & CR_RGB_BIT);
     
    353378}
    354379
    355 
    356380static void renderSPUSelfDispatch(SPUDispatchTable *self)
    357381{
    358382    crSPUInitDispatchTable( &(render_spu.self) );
    359383    crSPUCopyDispatchTable( &(render_spu.self), self );
     384
     385    render_spu.blitterDispatch = &(render_spu.self);
    360386
    361387    render_spu.server = (CRServer *)(self->server);
     
    387413    renderspu_SystemDestroyWindow(window);
    388414    crFree(window);
     415}
     416
     417static void DeleteBlitterCallback( void *data )
     418{
     419    PCR_BLITTER pBlitter = (PCR_BLITTER) data;
     420    CrBltTerm(pBlitter);
     421    crFree(pBlitter);
    389422}
    390423
     
    397430    crFreeHashtable(render_spu.barrierHash, crFree);
    398431    render_spu.barrierHash = NULL;
     432
     433    if (render_spu.blitterTable)
     434        crFreeHashtable(render_spu.blitterTable, DeleteBlitterCallback);
    399435
    400436#ifdef RT_OS_DARWIN
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