I downloaded the current CVS version and hacked it  so that it compiled
for win95+glide.
(most of the problems to be hacked were related to the GLAPIENTRY like
stuff)

I then noticed that that the program for my favorite polyhedron did not
run (3dfx/demos/teapot)

The reason was that in do_normal_transform (pipeline.c)
transform_normalize_normals (norm_tmp.h) was called with a
null VB->NormalLengthPtr added with a non zero VB->Start value.

the code in norm_tmp.h can handle a null pointer but
the VB->Start addition made it to fail.

I fixed the problem by changing the function call to be
(pipeline.c:439):

   (ctx->NormalTransform[tmp])(&ctx->ModelView,
                               ctx->vb_rescale_factor,
                               VB->NormalPtr,
                               VB->NormalLengthPtr ? VB->NormalLengthPtr + VB->Start : 
0,
                               VB->NormCullStart,
                               VB->store.Normal);
            

                        Eero

Reply via email to