KRMesh::renderSubmesh non-indexed format meshes now converted to Vulkan draw calls
This commit is contained in:
@@ -475,7 +475,6 @@ void KRMesh::renderSubmesh(VkCommandBuffer& commandBuffer, int iSubmesh, KRNode:
|
|||||||
int vertex_draw_count = cVertexes;
|
int vertex_draw_count = cVertexes;
|
||||||
if(vertex_draw_count > index_count - index_group_offset) vertex_draw_count = index_count - index_group_offset;
|
if(vertex_draw_count > index_count - index_group_offset) vertex_draw_count = index_count - index_group_offset;
|
||||||
|
|
||||||
//glDrawElements(GL_TRIANGLES, vertex_draw_count, GL_UNSIGNED_SHORT, BUFFER_OFFSET(index_group_offset * 2));
|
|
||||||
vkCmdDrawIndexed(commandBuffer, vertex_draw_count, 1, index_group_offset, 0, 0);
|
vkCmdDrawIndexed(commandBuffer, vertex_draw_count, 1, index_group_offset, 0, 0);
|
||||||
m_pContext->getMeshManager()->log_draw_call(renderPass, object_name, material_name, vertex_draw_count);
|
m_pContext->getMeshManager()->log_draw_call(renderPass, object_name, material_name, vertex_draw_count);
|
||||||
cVertexes -= vertex_draw_count;
|
cVertexes -= vertex_draw_count;
|
||||||
@@ -498,20 +497,14 @@ void KRMesh::renderSubmesh(VkCommandBuffer& commandBuffer, int iSubmesh, KRNode:
|
|||||||
if(iVertex + cVertexes >= MAX_VBO_SIZE) {
|
if(iVertex + cVertexes >= MAX_VBO_SIZE) {
|
||||||
assert(iVertex + (MAX_VBO_SIZE - iVertex) <= cBufferVertexes);
|
assert(iVertex + (MAX_VBO_SIZE - iVertex) <= cBufferVertexes);
|
||||||
switch (getModelFormat()) {
|
switch (getModelFormat()) {
|
||||||
case KRENGINE_MODEL_FORMAT_TRIANGLES:
|
case KRENGINE_MODEL_FORMAT_TRIANGLES:
|
||||||
GLDEBUG(glDrawArrays(GL_TRIANGLES, iVertex, (MAX_VBO_SIZE - iVertex)));
|
case KRENGINE_MODEL_FORMAT_STRIP:
|
||||||
break;
|
vkCmdDraw(commandBuffer, (MAX_VBO_SIZE - iVertex), 1, iVertex, 0);
|
||||||
case KRENGINE_MODEL_FORMAT_STRIP:
|
break;
|
||||||
GLDEBUG(glDrawArrays(GL_TRIANGLE_STRIP, iVertex, (MAX_VBO_SIZE - iVertex)));
|
case KRENGINE_MODEL_FORMAT_INDEXED_TRIANGLES:
|
||||||
break;
|
case KRENGINE_MODEL_FORMAT_INDEXED_STRIP:
|
||||||
case KRENGINE_MODEL_FORMAT_INDEXED_TRIANGLES:
|
vkCmdDrawIndexed(commandBuffer, (MAX_VBO_SIZE - iVertex), 1, iVertex, 0, 0);
|
||||||
GLDEBUG(glDrawArrays(GL_TRIANGLES, iVertex, (MAX_VBO_SIZE - iVertex)));
|
break;
|
||||||
break;
|
|
||||||
case KRENGINE_MODEL_FORMAT_INDEXED_STRIP:
|
|
||||||
GLDEBUG(glDrawArrays(GL_TRIANGLE_STRIP, iVertex, (MAX_VBO_SIZE - iVertex)));
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
m_pContext->getMeshManager()->log_draw_call(renderPass, object_name, material_name, (MAX_VBO_SIZE - iVertex));
|
m_pContext->getMeshManager()->log_draw_call(renderPass, object_name, material_name, (MAX_VBO_SIZE - iVertex));
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user