Pass:mesh supports baseVertex;

This commit is contained in:
bjorn 2022-08-17 18:09:04 -07:00
parent 081afc3140
commit 3e8b1681df
3 changed files with 6 additions and 4 deletions

View File

@ -830,7 +830,8 @@ static int l_lovrPassMesh(lua_State* L) {
uint32_t start = luax_optu32(L, index++, 1) - 1;
uint32_t count = luax_optu32(L, index++, ~0u);
uint32_t instances = luax_optu32(L, index, 1);
lovrPassMesh(pass, vertices, indices, transform, start, count, instances);
uint32_t base = luax_optu32(L, index++, 0);
lovrPassMesh(pass, vertices, indices, transform, start, count, instances, base);
}
return 0;
}

View File

@ -5102,7 +5102,7 @@ void lovrPassDrawModel(Pass* pass, Model* model, float* transform, uint32_t node
lovrPassPop(pass, STACK_TRANSFORM);
}
void lovrPassMesh(Pass* pass, Buffer* vertices, Buffer* indices, float* transform, uint32_t start, uint32_t count, uint32_t instances) {
void lovrPassMesh(Pass* pass, Buffer* vertices, Buffer* indices, float* transform, uint32_t start, uint32_t count, uint32_t instances, uint32_t base) {
if (count == ~0u) {
if (indices || vertices) {
count = (indices ? indices : vertices)->info.length - start;
@ -5124,7 +5124,8 @@ void lovrPassMesh(Pass* pass, Buffer* vertices, Buffer* indices, float* transfor
.transform = transform,
.start = start,
.count = count,
.instances = instances
.instances = instances,
.base = base
});
}

View File

@ -645,7 +645,7 @@ void lovrPassSkybox(Pass* pass, Texture* texture);
void lovrPassFill(Pass* pass, Texture* texture);
void lovrPassMonkey(Pass* pass, float* transform);
void lovrPassDrawModel(Pass* pass, Model* model, float* transform, uint32_t node, bool recurse, uint32_t instances);
void lovrPassMesh(Pass* pass, Buffer* vertices, Buffer* indices, float* transform, uint32_t start, uint32_t count, uint32_t instances);
void lovrPassMesh(Pass* pass, Buffer* vertices, Buffer* indices, float* transform, uint32_t start, uint32_t count, uint32_t instances, uint32_t base);
void lovrPassMeshIndirect(Pass* pass, Buffer* vertices, Buffer* indices, Buffer* indirect, uint32_t count, uint32_t offset, uint32_t stride);
void lovrPassCompute(Pass* pass, uint32_t x, uint32_t y, uint32_t z, Buffer* indirect, uint32_t offset);