瀏覽代碼

REVIEWED: UnloadShader() issue

Avoid unloading default shader, raylib will take care of it
raysan5 5 年之前
父節點
當前提交
cbdb9bfe42
共有 1 個文件被更改,包括 3 次插入3 次删除
  1. 3 3
      src/rlgl.h

+ 3 - 3
src/rlgl.h

@@ -3161,13 +3161,13 @@ Shader LoadShaderCode(const char *vsCode, const char *fsCode)
 // Unload shader from GPU memory (VRAM)
 // Unload shader from GPU memory (VRAM)
 void UnloadShader(Shader shader)
 void UnloadShader(Shader shader)
 {
 {
-    if (shader.id > 0)
+    if ((shader.id != RLGL.State.defaultShader.id) && (shader.id > 0))
     {
     {
         rlDeleteShader(shader.id);
         rlDeleteShader(shader.id);
+        RL_FREE(shader.locs);
+        
         TRACELOG(LOG_INFO, "SHADER: [ID %i] Unloaded shader program data from VRAM (GPU)", shader.id);
         TRACELOG(LOG_INFO, "SHADER: [ID %i] Unloaded shader program data from VRAM (GPU)", shader.id);
     }
     }
-
-    RL_FREE(shader.locs);
 }
 }
 
 
 // Begin custom shader mode
 // Begin custom shader mode