Fix array drawing mode not rendering properly in non-fast mode.
Also move vertex transform to be done inline in non-fast path, instead of all entirely at the end
This commit is contained in:
parent
75b992f52e
commit
d978e3187c
13
GL/draw.c
13
GL/draw.c
@ -585,12 +585,13 @@ static void _readPositionData(ReadDiffuseFunc func, const GLuint first, const GL
|
||||
const GLsizei vstride = ATTRIB_POINTERS.vertex.stride;
|
||||
const GLubyte* vptr = ((GLubyte*) ATTRIB_POINTERS.vertex.ptr + (first * vstride));
|
||||
|
||||
float pos[3];
|
||||
float pos[3], w = 1.0f;
|
||||
|
||||
ITERATE(count) {
|
||||
PREFETCH(vptr + vstride);
|
||||
func(vptr, (GLubyte*) pos);
|
||||
it->flags = GPU_CMD_VERTEX;
|
||||
TransformVertex(pos, &w, it->xyz, &it->w);
|
||||
|
||||
vptr += vstride;
|
||||
++it;
|
||||
@ -678,6 +679,7 @@ static void generateElements(
|
||||
Vertex* output = _glSubmissionTargetStart(target);
|
||||
VertexExtra* ve = aligned_vector_at(target->extras, 0);
|
||||
|
||||
float pos[3], w = 1.0f;
|
||||
uint32_t i = first;
|
||||
uint32_t idx = 0;
|
||||
|
||||
@ -705,7 +707,8 @@ static void generateElements(
|
||||
st = (GLubyte*) ATTRIB_POINTERS.st.ptr + (idx * ststride);
|
||||
nxyz = (GLubyte*) ATTRIB_POINTERS.normal.ptr + (idx * nstride);
|
||||
|
||||
pos_func(xyz, (GLubyte*) output->xyz);
|
||||
pos_func(xyz, (GLubyte*) pos);
|
||||
TransformVertex((const float*) pos, &w, output->xyz, &output->w);
|
||||
uv_func(uv, (GLubyte*) output->uv);
|
||||
diffuse_func(bgra, output->bgra);
|
||||
st_func(st, (GLubyte*) ve->st);
|
||||
@ -1178,12 +1181,6 @@ GL_FORCE_INLINE void submitVertices(GLenum mode, GLsizei first, GLuint count, GL
|
||||
/* If we're FAST_PATH_ENABLED, then this will do the transform for us */
|
||||
generate(target, mode, first, count, (GLubyte*) indices, type);
|
||||
|
||||
/* No fast path, then we have to do another iteration :( */
|
||||
if(!FAST_PATH_ENABLED) {
|
||||
/* Multiply by modelview */
|
||||
transform(target);
|
||||
}
|
||||
|
||||
if(_glIsLightingEnabled()){
|
||||
light(target);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user