MCPcopy Create free account
hub / github.com/davideberly/GeometricTools / Execute

Method Execute

GTE/Graphics/GL46/GL46Engine.cpp:1272–1293  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1270}
1271
1272void GL46Engine::Execute(std::shared_ptr<ComputeProgram> const& program,
1273 uint32_t numXGroups, uint32_t numYGroups, uint32_t numZGroups)
1274{
1275 auto glslProgram = std::dynamic_pointer_cast<GLSLComputeProgram>(program);
1276 if (glslProgram && numXGroups > 0 && numYGroups > 0 && numZGroups > 0)
1277 {
1278 auto const& cshader = glslProgram->GetComputeShader();
1279 auto programHandle = glslProgram->GetProgramHandle();
1280 if (cshader && programHandle > 0)
1281 {
1282 glUseProgram(programHandle);
1283 Enable(cshader.get(), programHandle);
1284 glDispatchCompute(numXGroups, numYGroups, numZGroups);
1285 Disable(cshader.get(), programHandle);
1286 glUseProgram(0);
1287 }
1288 }
1289 else
1290 {
1291 LogError("Invalid input parameter.");
1292 }
1293}
1294
1295void GL46Engine::WaitForFinish()
1296{

Callers

nothing calls this directly

Calls 3

glUseProgramFunction · 0.85
glDispatchComputeFunction · 0.85
GetProgramHandleMethod · 0.45

Tested by

no test coverage detected