| 2943 | } |
| 2944 | |
| 2945 | static void WebGPUDestroyProgram(WebGPUContext* context, WebGPUProgram* program) |
| 2946 | { |
| 2947 | TRACE_CALL; |
| 2948 | if(program->m_VertexModule) { |
| 2949 | WebGPUDestroyShader(program->m_VertexModule); |
| 2950 | delete program->m_VertexModule; |
| 2951 | program->m_VertexModule = NULL; |
| 2952 | } |
| 2953 | if(program->m_FragmentModule) { |
| 2954 | WebGPUDestroyShader(program->m_FragmentModule); |
| 2955 | delete program->m_FragmentModule; |
| 2956 | program->m_FragmentModule = NULL; |
| 2957 | } |
| 2958 | if(program->m_ComputeModule) { |
| 2959 | WebGPUDestroyShader(program->m_ComputeModule); |
| 2960 | delete program->m_ComputeModule; |
| 2961 | program->m_ComputeModule = NULL; |
| 2962 | } |
| 2963 | if (program->m_UniformData) |
| 2964 | { |
| 2965 | delete[] program->m_UniformData; |
| 2966 | program->m_UniformData = NULL; |
| 2967 | } |
| 2968 | for (size_t i = 0; i < MAX_SET_COUNT; ++i) |
| 2969 | { |
| 2970 | if (program->m_BindGroupLayouts[i]) |
| 2971 | { |
| 2972 | wgpuBindGroupLayoutRelease(program->m_BindGroupLayouts[i]); |
| 2973 | program->m_BindGroupLayouts[i] = NULL; |
| 2974 | } |
| 2975 | if (program->m_BindGroups[i]) |
| 2976 | { |
| 2977 | wgpuBindGroupRelease(program->m_BindGroups[i]); |
| 2978 | program->m_BindGroups[i] = NULL; |
| 2979 | } |
| 2980 | } |
| 2981 | if (program->m_PipelineLayout) |
| 2982 | { |
| 2983 | wgpuPipelineLayoutRelease(program->m_PipelineLayout); |
| 2984 | program->m_PipelineLayout = NULL; |
| 2985 | } |
| 2986 | } |
| 2987 | |
| 2988 | static void WebGPUDeleteProgram(HContext context, HProgram _program) |
| 2989 | { |
no test coverage detected