mirror of https://github.com/bjornbytes/lovr.git
Fix batching problem;
This commit is contained in:
parent
793dca03d1
commit
10305a4fed
|
@ -626,7 +626,6 @@ void lovrGraphicsFlush() {
|
||||||
Mesh* mesh = NULL;
|
Mesh* mesh = NULL;
|
||||||
DrawMode drawMode;
|
DrawMode drawMode;
|
||||||
bool instanced = batch->vertexCount == 0 && batch->drawCount >= 4;
|
bool instanced = batch->vertexCount == 0 && batch->drawCount >= 4;
|
||||||
bool flushGeometry = batch->vertexCount > 0;
|
|
||||||
int instances = instanced ? batch->drawCount : 1;
|
int instances = instanced ? batch->drawCount : 1;
|
||||||
uint32_t vertexCount = 0;
|
uint32_t vertexCount = 0;
|
||||||
uint32_t indexCount = 0;
|
uint32_t indexCount = 0;
|
||||||
|
@ -740,7 +739,6 @@ void lovrGraphicsFlush() {
|
||||||
batch->indexStart = cached->indexStart = state.cursors[STREAM_INDEX];
|
batch->indexStart = cached->indexStart = state.cursors[STREAM_INDEX];
|
||||||
batch->vertexCount = cached->vertexCount = vertexCount * n;
|
batch->vertexCount = cached->vertexCount = vertexCount * n;
|
||||||
batch->indexCount = cached->indexCount = indexCount * n;
|
batch->indexCount = cached->indexCount = indexCount * n;
|
||||||
flushGeometry = true;
|
|
||||||
|
|
||||||
uint8_t* ids = lovrGraphicsMapBuffer(STREAM_DRAW_ID, batch->vertexCount);
|
uint8_t* ids = lovrGraphicsMapBuffer(STREAM_DRAW_ID, batch->vertexCount);
|
||||||
for (int i = 0; i < n; i++) {
|
for (int i = 0; i < n; i++) {
|
||||||
|
@ -757,7 +755,7 @@ void lovrGraphicsFlush() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Flush vertex buffer
|
// Flush vertex buffer
|
||||||
if (flushGeometry && batch->vertexCount > 0) {
|
if (batch->vertexCount > 0) {
|
||||||
size_t stride = BUFFER_STRIDES[STREAM_VERTEX];
|
size_t stride = BUFFER_STRIDES[STREAM_VERTEX];
|
||||||
lovrBufferFlushRange(state.buffers[STREAM_VERTEX], batch->vertexStart * stride, batch->vertexCount * stride);
|
lovrBufferFlushRange(state.buffers[STREAM_VERTEX], batch->vertexStart * stride, batch->vertexCount * stride);
|
||||||
|
|
||||||
|
@ -767,7 +765,7 @@ void lovrGraphicsFlush() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Flush index buffer
|
// Flush index buffer
|
||||||
if (flushGeometry && batch->indexCount > 0) {
|
if (batch->indexCount > 0) {
|
||||||
size_t stride = BUFFER_STRIDES[STREAM_INDEX];
|
size_t stride = BUFFER_STRIDES[STREAM_INDEX];
|
||||||
lovrBufferFlushRange(state.buffers[STREAM_INDEX], batch->indexStart * stride, batch->indexCount * stride);
|
lovrBufferFlushRange(state.buffers[STREAM_INDEX], batch->indexStart * stride, batch->indexCount * stride);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue