Home | Info | Community | Development | myReactOS | Contact Us
[static]
Definition at line 46 of file t_vb_cull.c.
{ TNLcontext *tnl = TNL_CONTEXT(ctx); struct vertex_buffer *VB = &tnl->vb; const GLfloat a = ctx->Transform.CullObjPos[0]; const GLfloat b = ctx->Transform.CullObjPos[1]; const GLfloat c = ctx->Transform.CullObjPos[2]; GLfloat *norm = (GLfloat *)VB->AttribPtr[_TNL_ATTRIB_NORMAL]->data; GLuint stride = VB->AttribPtr[_TNL_ATTRIB_NORMAL]->stride; GLuint count = VB->Count; GLuint i; if (ctx->VertexProgram._Current || !ctx->Transform.CullVertexFlag) return GL_TRUE; VB->ClipOrMask &= ~CLIP_CULL_BIT; VB->ClipAndMask |= CLIP_CULL_BIT; for (i = 0 ; i < count ; i++) { GLfloat dp = (norm[0] * a + norm[1] * b + norm[2] * c); if (dp < 0) { VB->ClipMask[i] |= CLIP_CULL_BIT; VB->ClipOrMask |= CLIP_CULL_BIT; } else { VB->ClipMask[i] &= ~CLIP_CULL_BIT; VB->ClipAndMask &= ~CLIP_CULL_BIT; } STRIDE_F(norm, stride); } return !(VB->ClipAndMask & CLIP_CULL_BIT); }