[Fwd: Re: Newbie Q: What to use ...]




--- Begin Message ---
Jan-Marek Glogowski wrote:

Hi

From my first impression I think you can simply use a GtkDrawingArea and
GdkPixmap(s).

Look at GDK Docs -> Drawing Primitives, if you want to move from X to GDK.
Thank you, I have done that.

I think what confused me into thinking that GDK was not suitable, was those graphics contexts and color maps. Somehow, I got into thinking I could not easily define my own colors, but use some predefined sets. Meanwhile I have realized that is wrong :)

1) Stick with Xlib primitives for displaying ants ? OK, but I can't see
which kind of widget that will allow
   me to use XLib drawing primitives on it, or how to somehow extract
an XWindow from a widget

GDK Docs -> X Window System Interaction
I will look once more. As far as I can see, it will generally give me handles for GDK components if I have some for X components. I wanted to go the other way - build a GTK UI, and then just "pick" out some underlying X components, and draw on those.

Anyway, it seems GDK is much more suitable, and I will avoid messing around at levels of my GUI where I have nothing to do. And easier too :)
'

As long as you don't have [moving] objects (like sprites), you want to
handle like GtkObjects (signals, ...), GnomeCanvas may be overkill.
As for the Gnome canvas: I think the GDK below is just fine for me.

3) Use GDK primitives ? But I need to be able to control the color of
the ants directly. Can I somehow
   set the drawing foreground color in RGB directly ? Seems to me that
GDK was made for drawing
   widgets, not much more.

Any drawing is done using GDK Graphics Contexts (GdkGC)

gdk_gc_set_foreground( GdkGC, GdkColor ), with

struct GdkColor {
 guint32 pixel;
 guint16 red;
 guint16 green;
 guint16 blue;
};

Simply create some GC with you required colors after widget realization,
if you just need some, and free them at unrealization.
Rrrrrrright.

Now my whole UI window will consist of
- a widget (Drawable) with the battlefield map, in whatever colors the ants request
- the usual bunch og GTK widgets

I have seen some general advice that one should use the same color map for all widgets in an UI. But I suppose that in this case it will be perfectly all right to install my special "ant" color map on only the battlefield widget ?

How do you want to handle window resize?
For the battlefield view: Verboten and meaningless anyway.
The game's logic does, however, resize the battlefield for each game in a tournament - I suppose if I carefully scrap and re-initialize the backing pixbuf in a configure event, everything should be handled automatically for me.'

The debugger view could be resizeable. The view is a magnified version of a small area of the battlefield - each pixel is boosted to 30x30 or so, and decorated with diagnostics information and widgets to control breakpoints, and display even more diagnostics info. That could be made resizeable. I suppose a resize could be translated into resizing the area magnified (luxury, elegance :) ), and that I can do that by just throwing out all data and rebuilding from scratch.

Do you want to support scrolling a larger image?
Not a must. Are there any viewport widgets that handle that automatically ? (Ok I really should look for myself).

Thanks a lot for the effort ! I solved part of it myself already, but confirmation is nice.

You can see the game at

www.myrekrig.dk

It's written by a Ph.D. student here some years ago, and as you can see (download, at software tab) the code is quite ugly. But the idea is brilliant !

The ant BayiMayi is my work.

Cheers,
Soren


--- End Message ---


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]