[quake2] console font size - anybody?

Nicolai Haehnle prefect_ at gmx.net
Thu Jan 13 08:48:27 EST 2005


On Wednesday 12 January 2005 17:57, Thomas J Fogal wrote:
>  <200501121621.32294.prefect_ at gmx.net>Nicolai Haehnle writes:
> 
> > On Wednesday 12 January 2005 14:24, Brendan Burns wrote:
> > > Manfred,
> > > (just so you don't get no responses again...)  I don't actually 
know=20
> > > the answer to
> > > this question, but I can look into it when I get a chance.  (or you=20
> > > could look
> > > into it if you wanted to...)  My suspicion is that they are using a=20
> > > bitmapped
> > > font which means that changing the scale will be somewhat challenging
> > > (you'll need to scale all of the images...) but I'm not sure.
> > 
> > With OpenGL, scaling the bitmaps should be trivial. It'll look ugly for 
odd
> > scale factors, but the console font isn't exactly beautiful anyway.
> 
> nod, keep in mind that scaling is slow though.

You're wrong. (Unless you're using a software implementation of OpenGL, 
which might have a special case for non-scaling - but that's highly 
unlikely).

It's true that the number of fragments that need to be processed increases 
linearly with the area of a polygon. But when you scale the size of the 
quads that are used to render the console, you automatically *reduce* the 
number of quads. The total area of the console remains exactly the same, 
and therefore the number of fragments and pixel data bandwidth remains the 
same.
In fact, you're even reducing the number of vertex transformations (because 
there are fewer quads to render), so if anything, it should be *faster*!

> I took a quick look but did not try hacking any code. This might be
> doable by wrapping all 'DrawChar' and/or 're.DrawChar' calls in:
> 
> glPushMatrix();
>  glScalef(1.0,1.0,-x);
>  re.DrawChar(...);
> glPopMatrix();

Since we need to scale x and y, not z (remember, this is ortho-mode), the 
call has to be glScalef(factor, factor, 1.0); or similar.
Also, changing the matrix for every character drawn is insane. Push and 
scale *before* all console rendering, then pop after all console rendering 
is finished.

> in client/console.c. Or perhaps the mod might be appropriate in
> M_DrawCharacter from client/menu.c.
> 
> Lighting in particular is one thing that causes a major slowdown with
> scaling. It would probably be a good idea to disable and reenable
> lighting within that push/pop, above.

Sorry, but you really don't seem to have a clue what you're talking about. 
HUD and GUI-related things don't use lighting anyway. And even if they 
*did* use lighting, the slowdown argument would still be wrong.

cu,
Nicolai
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://icculus.org/pipermail/quake2/attachments/20050113/37337854/attachment.pgp>


More information about the quake2 mailing list