Releases text shader resources (deallocates PSO/bytecode, clears if active, safe after use complete).
Takes shader (shader handle from b2dLoadTextShader, integer).
Returns nothing.
Shaders
Parameters & Returns
Parameters
shaderInt
Returns
Void
Quick Summary
Releases text shader resources (deallocates PSO/bytecode, clears if active, safe after use complete).
Takes shader (shader handle from b2dLoadTextShader, integer).
Returns nothing.
Technical Exegesis...
Releases text shader resources (deallocates PSO/bytecode, clears if active, safe after use complete). Takes shader (shader handle from b2dLoadTextShader, integer). Returns nothing. Removes from g_2D_textShaders map (deallocates PSO + bytecode + parameter maps), clears if active (if g_2D_activeTextShader==shader, resets to 0 default rendering), safe after this call (should not use shader handle after freeing, undefined behavior).
Releases text shader resources (deallocates PSO/bytecode, clears if active, safe after use complete). Takes shader (shader handle from b2dLoadTextShader, integer). Returns nothing. Removes from g_2D_textShaders map (deallocates PSO + bytecode + parameter maps), clears if active (if g_2D_activeTextShader==shader, resets to 0 default rendering), safe after this call (should not use shader handle after freeing, undefined behavior). Use to cleanup loaded shaders (free when no longer needed), manage resources (prevent memory/GPU resource leaks), or dynamic loading (free old, load new shaders at runtime). When to free: shader no longer used (effect removed, level unloaded, dynamic shader system), cleanup on exit (free all shaders before program end), resource limits (free unused shaders to stay within GPU PSO/memory limits). Use cases: (1) Cleanup on exit (b2dFreeTextShader(outlineShader): b2dFreeTextShader(glowShader) release resources), (2) Dynamic system (b2dFreeTextShader(oldShader): newShader=b2dLoadTextShader("new.hlsl") swap shaders), (3) Level transition (For each shader in level: b2dFreeTextShader(shader) unload level shaders). Resources freed: PSO (ID3D12PipelineState, GPU pipeline object), bytecode (compiled shader binary, CPU memory), parameter maps (floatParams, intParams, CPU memory). Performance: cost low (map erase + destructor calls ~0.001ms, no GPU sync required), immediate (no GPU fence wait, resources freed on CPU side), safe (D3D12 handles GPU resource lifetime automatically). Validation: silently ignores if shader<=0 (negative or zero handle, no-op), silently ignores if not found (handle not in map, safe double-free), no error if active (automatically clears g_2D_activeTextShader if this shader was active). Related: b2dLoadTextShader loads shader (creates resource freed by this function), b2dSetTextShader sets active (should free shader after set to 0 or different shader if no longer needed), b2dGetTextShader queries active (check if shader still active before freeing).