(since yesterday's one had very confusing note, and now I found a fix for the window resizing problem) Last update to this file. Now I know that Steven's working on this, I won't spend my time in updating this, but I don't like to leave it with some serious defects... And since I like his tile resiziing code, I replaced original simplistic code with his. Most importantly, window resizing still has some problems with this. "size_allocate" should be the place to do that, but, strangely, minimum size given by the geometry hints isn't respected by the window manager, nor the size constraint code in the size allocation handler doesn't work... If anyone likes Windows/Mac-like interface of this file, please feel free to take it or modify as you like, for example: 1) As SF explained in the r.g.r.a discussion, restoration of backing store pixmaps helps client-server setups a lot. This can be another runtime option. You might go extreme to store _tiles_ in a pixmap under such configuration. 2) Those pixmap also allow us to implement double buffering. I suspect current [Z] version works faster than the original by buffering character-by-character drawing in Term_text_gtk and Term_pict_gtk. I replaced the former with a single call to gdk_draw_text() and there was a noticeable performance gain... Use a GdkRectangle to keep track of bounding rect of dirty area and copy that to a corresponding drawing area when appropriate - maybe in TERM_XTRA_FRESH, TERM_XTRA_EVENT and TERM_XTRA_DELAY, but I don't know for sure. 3) The tile rescaling module should have reference count and windows using the same font_wid & font_hgt should share the same scaled image. main-gtk-graf3.c - a replacement for main-gtk-graf.c (and its update) // pelpel (kazuo@sta.att.ne.jp) (original upload notice) main-gtk.c with graphics (8x8 and Adam Bolt) support ---------------------------------------------------- For Angband 2.9.3 main-gtk.c by Robert Ruehlmann (rr9@angband.org) Graphics code based on works by various contributors to X11, XAW, Windows and Mac ports GdkRGB wrapper and conversion of colour & tiles support by pelpel (kazuo@sta.att.ne.jp), who also rewrote menu routines and added a couple of callbacks to support resizing. All of my modifications are released under the Angband/GPL dual licence. Since I read RR's main-gtk.c and Gimp + Gtk+ source code, it couldn't be otherwise, and I like that. (On this file) Gtk/Gdk has two different layers of image drawing, the first and low level one - GdkImage and GdkColor are wrappers of XImage and XColor, and the other, GdkRGB, isolates programmes from them and tries to produce best possible results with available colour depth, while resorts to dithering on 8bpp X servers -- Yes, it works with 8bpp, even with Adam Bolt tiles and smooth rescaling. I tested that because this was the only type of X servers I could run on my old ix86 machines until quite recently. I believe many run Linux on older PCs, which is more than enough for Open Source Un*ces, so I hope this helps them to play Angband on our favourite OS. P.S. This file has nothing to do with another upload based on main-gtk.c