VirtualBox

Changeset 29930 in vbox for trunk


Ignore:
Timestamp:
May 31, 2010 11:47:29 PM (15 years ago)
Author:
vboxsync
Message:

crOpenGL: properly cleanup host opengl parts (#2954, #6443)

Location:
trunk/src/VBox
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/GuestHost/OpenGL/include/cr_glstate.h

    r29205 r29930  
    172172
    173173DECLEXPORT(void) crStateInit(void);
     174DECLEXPORT(void) crStateDestroy(void);
    174175DECLEXPORT(CRContext *) crStateCreateContext(const CRLimitsState *limits, GLint visBits, CRContext *share);
    175176DECLEXPORT(CRContext *) crStateCreateContextEx(const CRLimitsState *limits, GLint visBits, CRContext *share, GLint presetID);
  • trunk/src/VBox/GuestHost/OpenGL/include/state/cr_client.h

    r22284 r29930  
    127127
    128128DECLEXPORT(void) crStateClientInitBits(CRClientBits *c);
     129DECLEXPORT(void) crStateClientDestroyBits(CRClientBits *c);
    129130DECLEXPORT(void) crStateClientInit(CRClientState *c);
    130131DECLEXPORT(void) crStateClientDestroy(CRClientState *c);
  • trunk/src/VBox/GuestHost/OpenGL/include/state/cr_lighting.h

    r15532 r29930  
    7575
    7676DECLEXPORT(void) crStateLightingInitBits (CRLightingBits *l);
     77DECLEXPORT(void) crStateLightingDestroyBits (CRLightingBits *l);
    7778DECLEXPORT(void) crStateLightingInit (CRContext *ctx);
    7879DECLEXPORT(void) crStateLightingDestroy (CRContext *ctx);
  • trunk/src/VBox/GuestHost/OpenGL/state_tracker/state_client.c

    r26407 r29930  
    4848    for ( i = 0; i < CR_MAX_VERTEX_ATTRIBS; i++ )
    4949        c->a[i] = (CRbitvalue *) crCalloc(GLCLIENT_BIT_ALLOC*sizeof(CRbitvalue));
     50#endif
     51}
     52
     53void crStateClientDestroyBits (CRClientBits *c)
     54{
     55    int i;
     56
     57    crFree(c->v);
     58    crFree(c->n);
     59    crFree(c->c);
     60    crFree(c->s);
     61    crFree(c->i);
     62
     63    for ( i = 0; i < CR_MAX_TEXTURE_UNITS; i++ )
     64        crFree(c->t[i]);
     65
     66    crFree(c->e);
     67    crFree(c->f);
     68
     69#ifdef CR_NV_vertex_program
     70    for ( i = 0; i < CR_MAX_VERTEX_ATTRIBS; i++ )
     71        crFree(c->a[i]);
    5072#endif
    5173}
  • trunk/src/VBox/GuestHost/OpenGL/state_tracker/state_init.c

    r25575 r29930  
    249249}
    250250
    251 
     251void crStateDestroy(void)
     252{
     253    if (__currentBits)
     254    {
     255        crStateClientDestroyBits(&(__currentBits->client));
     256        crStateLightingDestroyBits(&(__currentBits->lighting));
     257        crFree(__currentBits);
     258        __currentBits = NULL;
     259    }
     260
     261#ifdef CHROMIUM_THREADSAFE
     262    crFreeTSD(&__contextTSD);
     263#endif
     264}
    252265
    253266/*
  • trunk/src/VBox/GuestHost/OpenGL/state_tracker/state_lighting.c

    r15532 r29930  
    1414{
    1515        l->light = (CRLightBits *) crCalloc (sizeof(*(l->light)) * CR_MAX_LIGHTS );
     16}
     17
     18void crStateLightingDestroyBits (CRLightingBits *l)
     19{
     20        crFree(l->light);
    1621}
    1722
  • trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_main.c

    r29886 r29930  
    120120    cr_server.head_spu = NULL;
    121121#endif
     122
     123    crStateDestroy();
     124
     125    crNetTearDown();
    122126}
    123127
  • trunk/src/VBox/HostServices/SharedOpenGL/render/renderspu_init.c

    r26139 r29930  
    416416    crUnloadOpenGL();
    417417
     418#ifdef CHROMIUM_THREADSAFE
     419    crFreeTSD(&_RenderTSD);
     420#endif
     421
    418422    return 1;
    419423}
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