Some additional explanations may help to sort out this topic. Actually, there are two causes related to QuesoGLC 0.7.0 which may cause some unexpected behaviour with Warzone.
The first one I would not call it a bug : historically, Warzone disabled GL_TEXTURE_2D before calling QuesoGLC routines. It was pointless to do that, but it was harmless since QuesoGLC modified itself the state of GL_TEXTURE_2D to the good value in order to display textured characters. From release 0.7.0 and on, I decided that it was useless (actually redundant) that QuesoGLC enables GL_TEXTURE_2D itself since it is generally already enabled by the client (i.e. the application which uses QuesoGLC as a library). Most OpenGL apps use textures and therefore enable GL_TEXTURE_2D whether they use GLC or not. So, in order to be able to use QuesoGLC 0.7.0, Warzone had to remove the line of code which disabled GL_TEXTURE_2D before calling QuesoGLC routines. This modification has been included in Warzone by the patch that Giel talks about in his mail (patch #961 committed in rev 3868 of the SVN repository) . I would like to stress that this patch is *backward compatible* for obvious reasons. The second issue is a *real* bug (bugs #1890660 and #1852883 on QuesoGLC SourceForge site). On some Mac OS X platforms (bug #1852883) and on Linux PCs which have an Intel gfx card (bug #1890660), textured characters are displayed at random (some are missing). This bug is actually related to the use of vertex buffer objects (VBOs) when displaying textured characters. For every above mentioned platforms the bug disappears whenever the use of VBOs is disabled. The exact cause of the bug has not been discovered yet and this is the reason why it would be wise not to use QuesoGLC 0.7.0 with Warzone. As a conclusion, the second issue is not the only one which may justify to not to use QuesoGLC 0.7.0 along with Warzone. The first issue has been fixed in Warzone since r3868 and should IMHO not be taken into account. Regards, Bertrand. ----Message d'origine---- >Date: Sat, 08 Mar 2008 14:43:46 +0100 >De: Giel van Schijndel >A: Warzone Development list >Copie à: Paul Wise >Sujet: Re: [Warzone-dev] warzone2100, quesoglc dependency > <mailto:[EMAIL PROTECTED]> > <mailto:[EMAIL PROTECTED]> > >First an introduction: >Me and Paul Wise, one of the Debian maintainers for the warzone2100 >package, had the following conversation about using QuesoGLC 0.7.0 with >Warzone 2100. > >Now I'm not entirely sure whether the included patch will work correctly >on all OpenGL implementations, so therefore we decided to forward this >to the mailing list. > >I would appreciate it if one of you could look at this and tell whether >the given approach is a correct one, and if so whether it is so for >QuesoGLC 0.6.5 as well. > >So here's the full thread: > >On Sat, 08 Mar 2008 14:25:57 +0900, Paul Wise wrote: >> On Fri, 2008-03-07 at 21:52 +0100, Giel van Schijndel wrote: >>> I find out that you had been asking on IRC whether we want to make >>> QuesoGLC 0.7.0 our minimal dependency. As 0.7.0 causes some problems (in >>> particular on Mac OSX) we will require 0.6.5 and skip to 0.7.1 (or >>> whatever the next release will be) when it'll be released. This because >>> we would prefer not to import problems that required libraries are having. >>> >>> I hope this answers your question for now. >> >> Thanks for the information. Bradley Smith informed me that there is a >> simple patch for warzone that fixes the issues with 0.7.0, he applied >> this patch in the debian-games SVN and I was going to look at it and >> build and upload warzone and quesoglc today. The patch is this: >> >> [EMAIL PROTECTED]:~/devel/debian/games/warzone2100$ cat >> debian/patches/fix_quesoglc_0.7.patch >> diff -Naur ./lib/ivis_opengl/textdraw.c ./lib/ivis_opengl/textdraw.c >> --- ./lib/ivis_opengl/textdraw.c 2008-02-10 15:25:20.000000000 +0000 >> +++ ./lib/ivis_opengl/textdraw.c 2008-03-07 12:58:03.000000000 +0000 >> @@ -594,11 +594,7 @@ >> { >> GLint matrix_mode = 0; >> >> -#ifdef WZ_OS_MAC >> pie_SetTexturePage(0); >> -#else >> - pie_SetTexturePage(-1); >> -#endif >> >> glGetIntegerv(GL_MATRIX_MODE, &matrix_mode); >> glMatrixMode(GL_TEXTURE); >> > >Actually that patch will result in selecting texture page 0 instead of >unbinding whatever textures is currently bound (negative numbers will >cause the current texture page to be unbound). > >So while this may work on _some_ OpenGL implementations, it is not >guaranteed to work on all OpenGL implementations. > >-- >Giel >_______________________________________________ >Warzone-dev mailing list >[email protected] >https://mail.gna.org/listinfo/warzone-dev > > _______________________________________________ Warzone-dev mailing list [email protected] https://mail.gna.org/listinfo/warzone-dev
