[Fluxus] Master crashes on running of (build-cube)

gabor papp gabor.lists at mndl.hu
Sun Apr 26 23:37:58 PDT 2009


> In trying out your code, I found that just typing the following into
> the REPL was enough to cause the crash:
> (define p (build-sphere 10 10))
> This and others would cause a similar crash:
> (define p (draw-cube))
yes, because they both create a polyprimitive, which gets rendered and
crash fluxus.

> libfluxus/src/PolyPrimitive.cpp:176, seems to be the common
> denominator in all the crashes, though depending on the command the
> stack bellow it might be slightly different.
strange. the program should not run PolyPrimitive.cpp:176 if you run the
the last script dave sent. it should run line 175 instead of 176.

(clear)
(define p (build-sphere 10 10))

(with-primitive p
        (poly-convert-to-indexed))

> I was wondering if the fact that I get this output while configuring
> the build might make a difference.
> Checking for C function dInitODE2()... no
this is not a problem. it just tries to detect an ode function which
only exists in ode 0.10 and above.

could you try disabling multitexturing from code and recompile?

put m_MultitexturingEnabled=false; in the last line of the
TexturePainter::TexturePainter() function in the file
libfluxus/src/TexturePainter.cpp.

maybe we should have a command line switch to disable multitexturing and
glsl as we removed the compile switches.

i checked the client states on my computer, but they same fine. maybe it
would be worth to check this on yours also. i put this before line 174
in PolyPrimitive.cpp right before the location of the crash.

    GLboolean b;
    glGetBooleanv(GL_VERTEX_ARRAY, &b);
    cerr << "vertex array: " << (int)b << endl;
    glGetBooleanv(GL_COLOR_ARRAY, &b);
    cerr << "colour array: " << (int)b << endl;
    glGetBooleanv(GL_NORMAL_ARRAY, &b);
    cerr << "normal array: " << (int)b << endl;
    glGetBooleanv(GL_TEXTURE_COORD_ARRAY, &b);
    cerr << "texture coord array: " << (int)b << endl;
    cerr << "vert: " << m_VertData->size() << endl;
    cerr << "col: " << m_ColData->size() << endl;
    cerr << "text: " << m_TexData->size() << endl;
    cerr << "norm: " << m_NormData->size() << endl;

these calls check which arrays are enabled for glDrawArrays, then print
their size. when a (build-cube) is run, all arrays should be enabled
except the colour one, and all sizes should be 24.

best,
gabor





More information about the Fluxus mailing list