MCPcopy Create free account
hub / github.com/defold/defold / WebGPUCreateGraphicsProgram

Function WebGPUCreateGraphicsProgram

engine/graphics/src/webgpu/graphics_webgpu.cpp:2879–2901  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2877}
2878
2879static void WebGPUCreateGraphicsProgram(WebGPUContext* context, WebGPUProgram* program, WebGPUShaderModule* vertex_module, WebGPUShaderModule* fragment_module)
2880{
2881 TRACE_CALL;
2882 program->m_VertexModule = vertex_module;
2883 program->m_FragmentModule = fragment_module;
2884 {
2885 HashState64 program_hash;
2886 dmHashInit64(&program_hash, false);
2887
2888 for (uint32_t i=0; i < program->m_BaseProgram.m_ShaderMeta.m_Inputs.Size(); i++)
2889 {
2890 if (program->m_BaseProgram.m_ShaderMeta.m_Inputs[i].m_StageFlags & SHADER_STAGE_FLAG_VERTEX)
2891 {
2892 dmHashUpdateBuffer64(&program_hash, &program->m_BaseProgram.m_ShaderMeta.m_Inputs[i].m_Binding, sizeof(program->m_BaseProgram.m_ShaderMeta.m_Inputs[i].m_Binding));
2893 }
2894 }
2895
2896 dmHashUpdateBuffer64(&program_hash, &vertex_module->m_Hash, sizeof(vertex_module->m_Hash));
2897 dmHashUpdateBuffer64(&program_hash, &fragment_module->m_Hash, sizeof(fragment_module->m_Hash));
2898 program->m_Hash = dmHashFinal64(&program_hash);
2899 }
2900 WebGPUUpdateProgramLayouts(context, program);
2901}
2902
2903static HProgram WebGPUNewProgram(HContext _context, ShaderDesc* ddf, char* error_buffer, uint32_t error_buffer_size)
2904{

Callers 2

WebGPUNewProgramFunction · 0.85
WebGPUReloadProgramFunction · 0.85

Calls 5

dmHashInit64Function · 0.85
dmHashUpdateBuffer64Function · 0.85
dmHashFinal64Function · 0.85
SizeMethod · 0.45

Tested by

no test coverage detected