| 1270 | } |
| 1271 | |
| 1272 | void 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 | |
| 1295 | void GL46Engine::WaitForFinish() |
| 1296 | { |
nothing calls this directly
no test coverage detected