VirtualBox

Changeset 38394 in vbox


Ignore:
Timestamp:
Aug 10, 2011 11:46:47 AM (14 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
73429
Message:

crOpenGL: add workaround for #5831

Location:
trunk/src/VBox/GuestHost/OpenGL/state_tracker
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/GuestHost/OpenGL/state_tracker/state_bufferobject.c

    r34107 r38394  
    998998        /*@todo, move to state_client.c*/
    999999        cp = &toCtx->client.array.v;
    1000         if (cp->buffer->id || locked)
     1000        if (cp->buffer && (cp->buffer->id || locked))
    10011001        {
    10021002            diff_api.BindBufferARB(GL_ARRAY_BUFFER_ARB, cp->buffer->hwid);
     
    10051005
    10061006        cp = &toCtx->client.array.c;
    1007         if (cp->buffer->id || locked)
     1007        if (cp->buffer && (cp->buffer->id || locked))
    10081008        {
    10091009            diff_api.BindBufferARB(GL_ARRAY_BUFFER_ARB, cp->buffer->hwid);
     
    10121012
    10131013        cp = &toCtx->client.array.f;
    1014         if (cp->buffer->id || locked)
     1014        if (cp->buffer && (cp->buffer->id || locked))
    10151015        {
    10161016            diff_api.BindBufferARB(GL_ARRAY_BUFFER_ARB, cp->buffer->hwid);
     
    10191019
    10201020        cp = &toCtx->client.array.s;
    1021         if (cp->buffer->id || locked)
     1021        if (cp->buffer && (cp->buffer->id || locked))
    10221022        {
    10231023            diff_api.BindBufferARB(GL_ARRAY_BUFFER_ARB, cp->buffer->hwid);
     
    10261026
    10271027        cp = &toCtx->client.array.e;
    1028         if (cp->buffer->id || locked)
     1028        if (cp->buffer && (cp->buffer->id || locked))
    10291029        {
    10301030            diff_api.BindBufferARB(GL_ARRAY_BUFFER_ARB, cp->buffer->hwid);
     
    10331033
    10341034        cp = &toCtx->client.array.i;
    1035         if (cp->buffer->id || locked)
     1035        if (cp->buffer && (cp->buffer->id || locked))
    10361036        {
    10371037            diff_api.BindBufferARB(GL_ARRAY_BUFFER_ARB, cp->buffer->hwid);
     
    10401040
    10411041        cp = &toCtx->client.array.n;
    1042         if (cp->buffer->id || locked)
     1042        if (cp->buffer && (cp->buffer->id || locked))
    10431043        {
    10441044            diff_api.BindBufferARB(GL_ARRAY_BUFFER_ARB, cp->buffer->hwid);
     
    10491049        {
    10501050            cp = &toCtx->client.array.t[i];
    1051             if (cp->buffer->id || locked)
     1051            if (cp->buffer && (cp->buffer->id || locked))
    10521052            {
    10531053                if (diff_api.ActiveTextureARB)
     
    10651065        {
    10661066            cp = &toCtx->client.array.a[i];
    1067             if (cp->buffer->id || locked)
     1067            if (cp->buffer && (cp->buffer->id || locked))
    10681068            {
    10691069                diff_api.BindBufferARB(GL_ARRAY_BUFFER_ARB, cp->buffer->hwid);
  • trunk/src/VBox/GuestHost/OpenGL/state_tracker/state_snapshot.c

    r37613 r38394  
    879879    cp->buffer = ui==0 ? pContext->bufferobject.nullBuffer : crHashtableSearch(pContext->shared->buffersTable, ui);
    880880
     881    if (!cp->buffer)
     882    {
     883        crWarning("crStateLoadClientPointer: ui=%d loaded as NULL buffer!", ui);
     884    }
     885
    881886#ifdef CR_EXT_compiled_vertex_array
    882887    if (cp->locked)
     
    19921997
    19931998                rc = SSMR3GetMem(pSSM, &pProgram->pUniforms[k].type, sizeof(GLenum));
     1999                AssertRCReturn(rc, rc);
    19942000                pProgram->pUniforms[k].name = crStateLoadString(pSSM);
    19952001
     
    20042010
    20052011                rc = SSMR3GetMem(pSSM, pProgram->pUniforms[k].data, datasize);
     2012                AssertRCReturn(rc, rc);
    20062013            }
    20072014        }
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