I posted my design idea to javagaming.org and got this response:

Pepio said:

Overlays are often used for text, as you know.
for a console, the scheme is often a rectangular zone with text, and a
border all around.
Balancing memory consumption and texture loading/memory fragmentation is
often hard to choose. I see you are using a model to limit textures to send,
you could specially optimise for consoles by seperating the image in lines
of height of a text line, and copying them one by one when they get added to
the console, while changing the reference for textures of the upper ones.
This would limit the space used, and transfers for each time the console has
a new message. Of course, it could be better if the games use 8 pixels high
characters.
This would add some more polygons (one by line, and 4 for the borders), but
would certainly help.

My 2 cents

My response:

Actually that is a *really* good idea.  I think I will create a TextOverlay
which uses our Overlay code to break the "window" into pieces implemented as
smaller overlays.  I will maintain a list of overlays, one for each line of
text and have special functions for scrolling and changing one or more lines
at a time.  Then I will re-implement our chat box to use this.

The way our chat box now works: you hit enter to enter chat mode and the
chat history is scrolled up and a chat box opens up, then you type in the
box and when you hit enter the box closes and the text is added to the
history... each type of text can be colored according to its chat type...

so using your idea the TextOverlay can efficiently implement scroll up and
scroll down using texture swaps.  I will have to add an Overlay level
improvement called OverlaySwap, which can take two overlays of the same size
(in this case text lines) and swaps the textures of one to the other.  So to
scroll up I would start at the top and swap them down, rotating the top line
all the way to the bottom, then replace the image on the bottom one with the
new data.

I am not implementing this all at the Overlay level because I want to still
support non-power of two with my sub-overlays, so the text-line-overlays can
be, say 448 and it will use a 256x16, a 128x16 and a 64x16 to implement that
for each line.  So the OverlaySwap would actually switch the textures on all
the sub-overlays, but because they are bound in the 3d card, it will be
quite fast.

Dave

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to