Optimized skinInstanceCB.
This commit is contained in:
+1
-1
@@ -231,7 +231,7 @@ defaultInstanceCB(Geometry *geo, InstanceDataHeader *header, bool32 reinstance)
|
|||||||
// Allocate vertex buffer
|
// Allocate vertex buffer
|
||||||
//
|
//
|
||||||
header->vertexBuffer = rwNewT(uint8, header->totalNumVertex*stride, MEMDUR_EVENT | ID_GEOMETRY);
|
header->vertexBuffer = rwNewT(uint8, header->totalNumVertex*stride, MEMDUR_EVENT | ID_GEOMETRY);
|
||||||
assert(header->vbo == 0);
|
//assert(header->vbo == 0);
|
||||||
//glGenBuffers(1, &header->vbo);
|
//glGenBuffers(1, &header->vbo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+5
-4
@@ -120,8 +120,8 @@ skinInstanceCB(Geometry *geo, InstanceDataHeader *header, bool32 reinstance)
|
|||||||
// Allocate vertex buffer
|
// Allocate vertex buffer
|
||||||
//
|
//
|
||||||
header->vertexBuffer = rwNewT(uint8, header->totalNumVertex*stride, MEMDUR_EVENT | ID_GEOMETRY);
|
header->vertexBuffer = rwNewT(uint8, header->totalNumVertex*stride, MEMDUR_EVENT | ID_GEOMETRY);
|
||||||
assert(header->vbo == 0);
|
//assert(header->vbo == 0);
|
||||||
glGenBuffers(1, &header->vbo);
|
//glGenBuffers(1, &header->vbo);
|
||||||
}
|
}
|
||||||
|
|
||||||
Skin *skin = Skin::get(geo);
|
Skin *skin = Skin::get(geo);
|
||||||
@@ -131,7 +131,7 @@ skinInstanceCB(Geometry *geo, InstanceDataHeader *header, bool32 reinstance)
|
|||||||
// Fill vertex buffer
|
// Fill vertex buffer
|
||||||
//
|
//
|
||||||
|
|
||||||
uint8 *verts = header->vertexBuffer;
|
uint8 *verts = gVertexBuffer;
|
||||||
|
|
||||||
// Positions
|
// Positions
|
||||||
if(!reinstance || geo->lockedSinceInst&Geometry::LOCKVERTICES){
|
if(!reinstance || geo->lockedSinceInst&Geometry::LOCKVERTICES){
|
||||||
@@ -191,7 +191,8 @@ skinInstanceCB(Geometry *geo, InstanceDataHeader *header, bool32 reinstance)
|
|||||||
header->totalNumVertex, a->stride);
|
header->totalNumVertex, a->stride);
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy_neon(gVertexBuffer, header->vertexBuffer, header->totalNumVertex*attribs[0].stride);
|
vglVertexAttribPointerMapped(0, gVertexBuffer);
|
||||||
|
gVertexBuffer += (header->totalNumVertex*attribs[0].stride) / sizeof(float);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|||||||
Reference in New Issue
Block a user