if(!value.empty())
{
// must be fixed
- for(auto& binding : value[0]->bindTextures.textureBindings)
+ for(auto& binding : value[0]->data.bindTextures.textureBindings)
{
if(binding.texture)
{
auto bindIndexBufferCmds = commandBuffer->GetCommandsByType(0 | CommandType::BIND_INDEX_BUFFER);
if(!bindIndexBufferCmds.empty())
{
- auto& indexBufferBinding = bindIndexBufferCmds[0]->bindIndexBuffer;
+ auto& indexBufferBinding = bindIndexBufferCmds[0]->data.bindIndexBuffer;
if(indexBufferBinding.buffer)
{
auto buffer = Uncast<TestGraphicsBuffer>(indexBufferBinding.buffer);
auto bindVertexBufferCmds = commandBuffer->GetCommandsByType(0 | CommandType::BIND_VERTEX_BUFFERS);
if(!bindVertexBufferCmds.empty())
{
- for(auto& binding : bindVertexBufferCmds[0]->bindVertexBuffers.vertexBufferBindings)
+ for(auto& binding : bindVertexBufferCmds[0]->data.bindVertexBuffers.vertexBufferBindings)
{
auto graphicsBuffer = binding.buffer;
auto vertexBuffer = Uncast<TestGraphicsBuffer>(graphicsBuffer);
auto scissorTestList = commandBuffer->GetCommandsByType(0 | CommandType::SET_SCISSOR_TEST);
if(!scissorTestList.empty())
{
- if(scissorTestList[0]->scissorTest.enable)
+ if(scissorTestList[0]->data.scissorTest.enable)
{
mGl.Enable(GL_SCISSOR_TEST);
scissorEnabled = true;
auto scissorList = commandBuffer->GetCommandsByType(0 | CommandType::SET_SCISSOR);
if(!scissorList.empty() && scissorEnabled)
{
- auto& rect = scissorList[0]->scissor.region;
+ auto& rect = scissorList[0]->data.scissor.region;
mGl.Scissor(rect.x, rect.y, rect.width, rect.height);
}
auto viewportList = commandBuffer->GetCommandsByType(0 | CommandType::SET_VIEWPORT);
if(!viewportList.empty())
{
- mGl.Viewport(viewportList[0]->viewport.region.x, viewportList[0]->viewport.region.y, viewportList[0]->viewport.region.width, viewportList[0]->viewport.region.height);
+ mGl.Viewport(viewportList[0]->data.viewport.region.x, viewportList[0]->data.viewport.region.y, viewportList[0]->data.viewport.region.width, viewportList[0]->data.viewport.region.height);
}
// ignore viewport enable
auto bindPipelineCmds = commandBuffer->GetCommandsByType(0 | CommandType::BIND_PIPELINE);
if(!bindPipelineCmds.empty())
{
- auto pipeline = bindPipelineCmds[0]->bindPipeline.pipeline;
+ auto pipeline = bindPipelineCmds[0]->data.bindPipeline.pipeline;
auto& vi = pipeline->vertexInputState;
for(auto& attribute : vi.attributes)
{
auto bindUniformBuffersCmds = commandBuffer->GetCommandsByType(0 | CommandType::BIND_UNIFORM_BUFFER);
if(!bindUniformBuffersCmds.empty())
{
- auto buffer = bindUniformBuffersCmds[0]->bindUniformBuffers.standaloneUniformsBufferBinding;
+ auto buffer = bindUniformBuffersCmds[0]->data.bindUniformBuffers.standaloneUniformsBufferBinding;
// based on reflection, issue gl calls
buffer.buffer->BindAsUniformBuffer(static_cast<const TestGraphicsProgram*>(pipeline->programState.program));
if(!drawCmds.empty())
{
- if(drawCmds[0]->draw.type == DrawCallDescriptor::Type::DRAW_INDEXED)
+ if(drawCmds[0]->data.draw.type == DrawCallDescriptor::Type::DRAW_INDEXED)
{
mGl.DrawElements(GetTopology(topology),
- static_cast<GLsizei>(drawCmds[0]->draw.drawIndexed.indexCount),
+ static_cast<GLsizei>(drawCmds[0]->data.draw.drawIndexed.indexCount),
GL_UNSIGNED_SHORT,
- reinterpret_cast<void*>(drawCmds[0]->draw.drawIndexed.firstIndex));
+ reinterpret_cast<void*>(drawCmds[0]->data.draw.drawIndexed.firstIndex));
}
else
{
- mGl.DrawArrays(GetTopology(topology), 0, drawCmds[0]->draw.draw.vertexCount);
+ mGl.DrawArrays(GetTopology(topology), 0, drawCmds[0]->data.draw.draw.vertexCount);
}
}
// attribute clear