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

Reply via email to