VirtualBox

Ignore:
Timestamp:
Jun 27, 2012 4:06:23 PM (13 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
78793
Message:

crOpenGL: fix shader deletion

File:
1 edited

Legend:

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

    r33540 r41928  
    4141void SERVER_DISPATCH_APIENTRY crServerDispatchDeleteShader(GLuint shader)
    4242{
     43    GLuint shaderHW = crStateGetShaderHWID(shader);
    4344    crStateDeleteShader(shader);
    44     cr_server.head_spu->dispatch_table.DeleteShader(crStateGetShaderHWID(shader));
     45    if (shaderHW)
     46        cr_server.head_spu->dispatch_table.DeleteShader(shaderHW);
     47    else
     48        crWarning("crServerDispatchDeleteShader: hwid not found for shader(%d)", shader);
    4549}
    4650
     
    7175void SERVER_DISPATCH_APIENTRY crServerDispatchDeleteProgram(GLuint program)
    7276{
     77    GLuint hwId = crStateGetProgramHWID(program);
    7378    crStateDeleteProgram(program);
    74     cr_server.head_spu->dispatch_table.DeleteProgram(crStateGetProgramHWID(program));
     79    if (hwId)
     80        cr_server.head_spu->dispatch_table.DeleteProgram(hwId);
     81    else
     82        crWarning("crServerDispatchDeleteProgram: hwid not found for program(%d)", program);
    7583}
    7684
     
    94102    {
    95103        hwid = crStateGetShaderHWID(obj);
     104        CRASSERT(hwid);
    96105        crStateDeleteShader(obj);
    97106    }
     
    101110    }
    102111
    103     cr_server.head_spu->dispatch_table.DeleteObjectARB(hwid);
     112    if (hwid)
     113        cr_server.head_spu->dispatch_table.DeleteObjectARB(hwid);
    104114}
    105115
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