@@ -428,7 +428,7 @@ MOJOSHADER_sdlProgram *MOJOSHADER_sdlLinkProgram(
428
428
return NULL ;
429
429
}
430
430
431
- createInfo .code = v_transpiled_source ;
431
+ createInfo .code = ( uint8_t * ) v_transpiled_source ;
432
432
createInfo .codeSize = v_transpiled_len ;
433
433
createInfo .type = SDL_GPU_SHADERTYPE_VERTEX ;
434
434
@@ -437,24 +437,30 @@ MOJOSHADER_sdlProgram *MOJOSHADER_sdlLinkProgram(
437
437
& createInfo
438
438
);
439
439
440
- ctx -> free_fn ((char * ) v_transpiled_source , ctx -> malloc_data );
440
+ if (v_transpiled_source != v_shader_source )
441
+ {
442
+ ctx -> free_fn ((char * ) v_transpiled_source , ctx -> malloc_data );
443
+ }
441
444
442
445
if (result -> vertexModule == NULL )
443
446
{
444
447
ctx -> free_fn (result , ctx -> malloc_data );
445
448
return NULL ;
446
449
}
447
450
448
- createInfo .code = p_transpiled_source ;
451
+ createInfo .code = ( uint8_t * ) p_transpiled_source ;
449
452
createInfo .codeSize = p_transpiled_len ;
450
- createInfo .codeSize = SDL_GPU_SHADERTYPE_FRAGMENT ;
453
+ createInfo .type = SDL_GPU_SHADERTYPE_FRAGMENT ;
451
454
452
455
result -> pixelModule = SDL_GpuCreateShaderModule (
453
456
ctx -> device ,
454
457
& createInfo
455
458
);
456
459
457
- ctx -> free_fn ((char * ) p_transpiled_source , ctx -> malloc_data );
460
+ if (p_transpiled_source != p_shader_source )
461
+ {
462
+ ctx -> free_fn ((char * ) p_transpiled_source , ctx -> malloc_data );
463
+ }
458
464
459
465
if (result -> pixelModule == NULL )
460
466
{
0 commit comments