Josh Vanderhoof wrote:
> 
> Adam Wiggins <[EMAIL PROTECTED]> writes:
> 
> >   I'm going to be tackling some (minor) Mesa development in order to
> flesh
> > out some features that I need for my app, specifically in the FX driver.
> > I went ahead and grabbed the latest version from CVS, but unfortunately
> > egcs 1.1.2 gets internal compiler errors on fog_tmp.h (no big deal,
> > I commented the function out) and shade_tmp.h (big deal! commenting the
> > functions out makes polygons appear with random colors!).
> 
> I had the same problem with egcs.  The problem goes away if you use a
> union instead of *(int*)&f to read floats directly as ints in
> FLOAT_COLOR_TO_UBYTE_COLOR (in src/mmath.h) -
> 
> #define FLOAT_COLOR_TO_UBYTE_COLOR(b, f)                        \
>         do {                                                    \
>            union { GLfloat r; GLuint i; } tmp;                  \
>            tmp.r = f;                                           \
>            b = ((tmp.i >= IEEE_ONE)                             \
>                ? ((GLint)tmp.i < 0) ? (GLubyte)0 : (GLubyte)255 \
>                : (tmp.r = tmp.r*(255.0F/256.0F) + 32768.0F,     \
>                   (GLubyte)tmp.i));                             \
>         } while (0)
> 
> The egcs manual mentions that this is the only safe way to do this if
> -fstrict-aliasing is enabled, so this change is probably a good idea
> anyway.  (The compiler still shouldn't fail like that though.)


Josh, are you going to commit this change?
Adam, you should test this as well.

-Brian

----------------------------------------------------------------------
Brian Paul        Avid Technology / Softimage      [EMAIL PROTECTED]


_______________________________________________
Mesa-dev maillist  -  [EMAIL PROTECTED]
http://lists.mesa3d.org/mailman/listinfo/mesa-dev

Reply via email to