[maemo-commits] [maemo-commits] r10506 - in projects/haf/trunk/sapwood: . src
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Fri Mar 9 18:20:36 EET 2007
- Previous message: [maemo-commits] r10505 - projects/haf/tags/hildon-home-webshortcut/1:1.9.0-1
- Next message: [maemo-commits] r10507 - projects/haf/hafbuildbot
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: tko Date: 2007-03-09 18:20:35 +0200 (Fri, 09 Mar 2007) New Revision: 10506 Added: projects/haf/trunk/sapwood/HACKING Removed: projects/haf/trunk/sapwood/NEWS.pixbuf projects/haf/trunk/sapwood/src/ChangeLog projects/haf/trunk/sapwood/src/README.pixbuf projects/haf/trunk/sapwood/src/README.server Modified: projects/haf/trunk/sapwood/AUTHORS projects/haf/trunk/sapwood/ChangeLog Log: Clean up and remove obsolete documentation. Document the internals. 2007-03-09 Tommi Komulainen <tommi.komulainen at nokia.com> * AUTHORS * NEWS.pixbuf * src/ChangeLog * src/README.pixbuf * src/README.server: clean up and remove obsolete documentation * HACKING: add documentation about the internals Modified: projects/haf/trunk/sapwood/AUTHORS =================================================================== --- projects/haf/trunk/sapwood/AUTHORS 2007-03-09 16:19:02 UTC (rev 10505) +++ projects/haf/trunk/sapwood/AUTHORS 2007-03-09 16:20:35 UTC (rev 10506) @@ -1,3 +1,8 @@ +sapwood +------- +Tommi Komulainen <tommi.komulainen at nokia.com> + +pixmap/pixbuf +------------- The Rasterman <raster at redhat.com> Owen Taylor <otaylor at redhat.com> -Tommi Komulainen <tommi.komulainen at nokia.com> Modified: projects/haf/trunk/sapwood/ChangeLog =================================================================== --- projects/haf/trunk/sapwood/ChangeLog 2007-03-09 16:19:02 UTC (rev 10505) +++ projects/haf/trunk/sapwood/ChangeLog 2007-03-09 16:20:35 UTC (rev 10506) @@ -1,3 +1,12 @@ +2007-03-09 Tommi Komulainen <tommi.komulainen at nokia.com> + + * AUTHORS + * NEWS.pixbuf + * src/ChangeLog + * src/README.pixbuf + * src/README.server: clean up and remove obsolete documentation + * HACKING: add documentation about the internals + 2007-03-08 Tommi Komulainen <tommi.komulainen at nokia.com> * README: replace with more detailed and relevant information Added: projects/haf/trunk/sapwood/HACKING =================================================================== --- projects/haf/trunk/sapwood/HACKING 2007-03-09 16:19:02 UTC (rev 10505) +++ projects/haf/trunk/sapwood/HACKING 2007-03-09 16:20:35 UTC (rev 10506) @@ -0,0 +1,347 @@ +Subversion +========== + svn co https://stage.maemo.org/svn/maemo/projects/haf/trunk/sapwood + cd sapwood + ./autogen.sh + make + [ become root ] + make install + + +Bugs +==== +Please report bugs to maemo.org bugzilla: +https://maemo.org/bugzilla/enter_bug.cgi?product=haf&component=sapwood + + +Patches +======= +Please send patches to maemo.org bugzilla: +https://maemo.org/bugzilla/enter_bug.cgi?product=haf&component=sapwood + +To make patch review process as smooth as possible, please follow the +following guidelines. It'll help avoid unnecessary roundtrips. + +* Follow the existing (GNU) coding style. +* Prepare patches with equivalent of 'diff -up' preferrably against the + latest trunk, for example: + + svn diff -x -up + + http://www.xenomai.org/index.php/Teaching_-p_to_svn_diff + +* Prepare a ChangeLog entry for every change. Include all modified files, + functions, variables, structs, etc. in the ChangeLog entry. +* Attach the patch in bugzilla and include the ChangeLog entry as attachment + comment. + + +Files +===== + +sapwood-main.c +-------------- +theme engine module entry points + +sapwood-rc-style.h +sapwood-rc-style.c +------------------ +GtkRcStyle method implementations, gtkrc parser + +sapwood-style.h +sapwood-draw.c +-------------- +GtkStyle declarations and method implementations + +theme-pixbuf.h +-------------- +structs and enumerations, ThemePixbuf declarations + +sapwood-render.c +---------------- +ThemePixbuf implementation + +sapwood-pixmap.h +sapwood-pixmap.c +---------------- +client side protocol implementation and pixmap handling + +sapwood-proto.h +sapwood-proto.c +--------------- +socket path + +sapwood-server.c +---------------- +pixmap server implementation + + +Basic flow +========== +Below is a typical control flow for the theme engine calls displayed as a sort +of stack trace. [Square brackets] indicate a jump to different library or +source file, indentation indicates the stack depth, the symbols are function +names. + + +libsapwood.so sapwood-server +----------------------------------------------------------------------------------------------------- +[gtk] gtk_paint_box +[sapwood-draw.c] draw_box + draw_simple_image + match_theme_image +[sapwood-render.c] theme_pixbuf_render + theme_pixbuf_get_geometry + | theme_pixbuf_get_pixmap + | pixmap_cache_value_new (GCache) +[sapwood-pixmap.c] | sapwood_pixmap_get_for_file + | pixbuf_proto_request ------> client_sock_callback + | process_buffer + | pixbuf_open_response_new (GCache) + | gdk_pixbuf_new_from_file + | extract_pixmaps + | extract_pixmap_single + | gdk_pixmap_new + | <------ write + | sapwood_pixmap_get_geometry + sapwood_pixmap_render_rects +[gdk] gdk_draw_rectangle + + + +Data structures +=============== +Below is a rough mapping between gtkrc declarations and theme engine data +structures. See theme-pixbuf.h for details. + +gtkrc data structures +-------------------------------------------------------------------------------- +engine "sapwood" { SapwoodRcStyle { + image { ... } img_list : GList* /* list of ThemeImages */ + + image { ThemeImage { + match_data : ThemeMatchData { + function = BOX function : guint16 /* mandatory */ + state = NORMAL state : GtkStateType + detail = "buttondefault" detail : char* + shadow = NONE shadow : GtkShadowType + gap_side = TOP gap_side : GtkPositionType + arrow_direction = UP arrow_direction : GtkArrowType + orientation VERTICAL orientation : GtkOrientation + position = UP, LEFT, DOWN position : ThemePositionFlags + + /* bitmask, which of the above are set */ + flags : ThemeMatchFlags + } + + shaped = FALSE background_shaped : boolean + + background : ThemePixbuf { + file = "image.png" dirname, basename : char* + border = { 2, 2, 0, 0 } border_{left,right,top,bottom} : guint8 + stretch = TRUE stretch : boolean + + /* pointer to 3x3 image grid */ + pixmap : SapwoodPixmap* + + /* reference count */ + refcnt : guint + } + overlay : ThemePixbuf { + overlay_file + overlay_border [as above] + overlay_stretch + } + gap_start : ThemePixbuf { + gap_start_file + gap_start_border [as above] + gap_start_stretch + } + gap : ThemePixbuf { + gap_file + gap_border [as above] + gap_stretch + } + gap_end : ThemePixbuf { + gap_end_file + gap_end_border [as above] + gap_end_stretch + } + + /* reference count */ + refcount : guint + } } +} } +-------------------------------------------------------------------------------- + + +TOKEN_* +------- +Parser tokens. Be mindful of changing the values of the tokens as changes will +invalidate existing 'gtkrc.cache' files causing strange effects. + + +ThemePixbuf ( gtkrc: file = "..." border = { ... } stretch = ... ) +----------- +Reference counted reference to a single image file. There are around 500 +images used in maemo themes, quarks and bitfields are used to reduce memory +consumption. Always holds the image filenames, the images themselves are +loaded on demand. + + +ThemeMatchData ( gtkrc: function = ... state = ... ) +-------------- +Set of rules used for finding the right image to match the painting commands. + + +ThemeImage ( gtkrc: image { ... } ) +---------- +Reference counted, holds references to background, overlay and gap images. + + +SapwoodPixmap +------------- +Struct holding the pixmap information from the server, including the 3x3 grid +of images (see README) and their corresponding bitmasks. The structs are +cached with GCache so each client gets only single reference from the server. + + +Rationales +========== +The goals for sapwood is to support bitmap based theming with acceptable +performance and memory consumption. The pixbuf engine sapwood is based on +supports bitmap based theming as well, but has performance problems and +is wasting memory. + + +Performance +----------- +To improve performance all images are converted to display format (565 RGB) +once and X core commands are used when painting. The assumption is that X +server is suitable optimized for these operations. Use of pixmaps loses the +ability to do gradients or 8bit alpha, but improves performance. (Using X +Render extension with 24/32 bit RGB(A) images should be straightforward and +enable 8bit alpha, scaling, and possibly gradients, with some loss of +performance.) + + +Memory +------ +To reduce memory consumption all images are loaded in memory only once and +reference counted between clients. A central server process (sapwood-server) +is owning the pixmaps and is responsible for handling the reference counting. + +Client/server +~~~~~~~~~~~~~ +A separate server process was chosen for simplicity. While it adds one more +process, it is conceptually much more simple than any distributed reference +counting mechanism. + +For simplicity reasons also, the server is not automatically started (similar +to GConf daemon) as it would introduce new error conditions and complicate +startup sequence with possible race conditions. + +The communication between client and server is (abstract) UNIX sockets, for +simplicity and reliability. D-Bus would be overkill, X client messages, +property changes, and selection owners are limited and/or complicated to use +properly. X based mechanisms and POSIX message queues do not appear to have +'client disconnected' notification which is important for releasing the +references when the client exits, possibly uncleanly. Abstract UNIX sockets +do not need to be manually removed from the file system. + +The server listens to UNIX socket in "$TMPDIR/sapwood-$DISPLAY" +(g_get_tmp_dir() and gdk_display_get_name()) The protocol between client and +server is as follows, see sapwood-proto.h + +PixbufOpenRequest: + C -> S: + guint8 op; /* == PIXBUF_OP_OPEN (1) */ + guint8 _pad1; + guint16 length; /* == sizeof(PixbufOpenRequest) + strlen(filename) + 1 */ + + guint8 border_left; /* border values from gtkrc */ + guint8 border_right; + guint8 border_top; + guint8 border_bottom; + guchar filename[0]; /* null terminated, absolute filename */ + + S -> C: + guint32 id; /* id for closing the pixbuf */ + guint16 width; /* image dimensions */ + guint16 height; + guint32 pixmap[3][3]; /* XIDs for pixmaps and masks for each part */ + guint32 pixmask[3][3]; /* 0 if not applicable (full opacity) */ + + on error: + char dummy; /* == '-' */ + +PixbufCloseRequest: + C -> S: + guint8 op; /* == PIXBUF_OP_CLOSE (2) */ + guint8 _pad1; + guint16 length; /* == sizeof(PixbufCloseRequest) */ + + guint32 id; /* the id as returned for PixbufOpenRequest */ + + No reply. + + +Caching +~~~~~~~ +For reference counting some caching mechanism is neeed, and GCache seemed to +fit the bill and save the trouble of doing it manually. In hindsight GCache +has slightly strange semantics and may be obscuring the implementation +somewhat. + +GDK + XSHM +~~~~~~~~~~ +sapwood-server (when started with the maemo specific startup script) disables +XSHM use in gdk, which saves around 100kB RAM. As the pixmap data is +transferred only once from the sapwood-server to the X server, this has little +impact on performance. + +This is dependent on a minor modification to gdk: + +diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c +index fd48807..3f56025 100644 +--- a/gdk/x11/gdkdisplay-x11.c ++++ b/gdk/x11/gdkdisplay-x11.c +@@ -149,7 +149,7 @@ gdk_display_open (const gchar *display_name) + display = g_object_new (GDK_TYPE_DISPLAY_X11, NULL); + display_x11 = GDK_DISPLAY_X11 (display); + +- display_x11->use_xshm = TRUE; ++ display_x11->use_xshm = g_getenv ("GDK_DISABLE_XSHM") == NULL; + display_x11->xdisplay = xdisplay; + + #ifdef HAVE_X11R6 + + +background_shaped +----------------- +When we know the theme does not use shaped bitmaps for menus or windows, we +can avoid preparing and setting the window shape mask completely. This is a +minor improvement at the expense of bad painting artefacts when the images do +not have alpha channel but gtkrc has shaped=TRUE. The need for explicit flag +could be removed by checking whether the SapwoodPixmap has masks. + + +Limitations +=========== +* No support for multiple displays. Currently the assumption of single display is + spread in many places on the client side. In order to support multiple + displays GdkDisplay needs to passed around the caching scheme all the way to + the UNIX socket path handling. +* Widgets using different visual/colormaps will receive BadMatch when painted. + Due to the way X works and the pixmaps are handled, fixing this does not + seem wortwhile. + https://maemo.org/bugzilla/show_bug.cgi?id=179 +* Caching is based on absolute filenames. If a file is updated on disk it is + not reloaded until after all references to it (in sapwood-server) are + removed. + + +Future work +=========== +* Support 8bit alpha. Should be straightforward to implement, though means + touching virtually all pixmap handling parts. Deleted: projects/haf/trunk/sapwood/NEWS.pixbuf =================================================================== --- projects/haf/trunk/sapwood/NEWS.pixbuf 2007-03-09 16:19:02 UTC (rev 10505) +++ projects/haf/trunk/sapwood/NEWS.pixbuf 2007-03-09 16:20:35 UTC (rev 10506) @@ -1,8 +0,0 @@ -Overview of Changes in 2.2.0 (since 1.9.0) -========================================== -* Add a .pc file [Seth Nickell] -* Various crash fixes [Luca Barbato, Hongli Lai, - Shivaram Upadhyayula, Peter Zelezny) -* Build fixes [Havoc Pennington] -* Metal theme drawing improvements [Owen Taylor] -* Improve installation docs [Owen, Piotr Sawuk] Deleted: projects/haf/trunk/sapwood/src/ChangeLog =================================================================== --- projects/haf/trunk/sapwood/src/ChangeLog 2007-03-09 16:19:02 UTC (rev 10505) +++ projects/haf/trunk/sapwood/src/ChangeLog 2007-03-09 16:20:35 UTC (rev 10506) @@ -1,252 +0,0 @@ -Fri Sep 6 20:32:45 2002 Owen Taylor <otaylor at redhat.com> - - * pixbuf-draw.c: Account for the possibility of detail == NULL - (#89561, Hongli Lai, Luca Barbato) - -Sun Apr 21 14:10:04 2002 Owen Taylor <otaylor at redhat.com> - - * pixbuf-rc-style.c pixbuf.h pixbuf-draw.c: Add a fake STEPPER - function that is used for drawing scrollbar steppers, - so that themes that want to draw the button and arrow - separately can override the default handling. - - * pixbuf-draw.c: Remove draw_polygon() since it was - just a cut-and-paste of the default one. Remove - some unused code. - -2002-03-07 James Henstridge <james at daa.com.au> - - * Makefile.am (libpixmap_la_LIBADD): link pixbuf engine against - the gtk+ libraries, so that it can be used with programs that - dlopen gtk+ without the RTLD_GLOBAL flag (such as scripting - languages and mozilla). - -Thu Feb 7 00:21:21 2002 Owen Taylor <otaylor at redhat.com> - - * pixbuf-render.c (pixbuf_render): Add gradient - rendering -- if the source width/height is zero, - render a gradient from the surrounding values. - -Mon Jan 28 15:34:43 2002 Owen Taylor <otaylor at redhat.com> - - * pixbuf-render.c (compute_hint): Fix hint computation - again. - -Mon Jan 28 12:17:07 2002 Owen Taylor <otaylor at redhat.com> - - * pixbuf-render.c (compute_hint): Fix problems in computing - MISSING hint. - -Sun Jan 27 23:58:13 2002 Owen Taylor <otaylor at redhat.com> - - * pixbuf-render.c (compute_hint): Optimize the case - where a component is entirely transparent by skipping - drawing it. - - * pixbuf-rc-style.c (theme_parse_image): Catch case - where background or overlay border/stretch are specified - without a background image. - - * pixbuf-render.c (theme_pixbuf_destroy): Actually free - the structure and filename. - -=================== Move back into gtk-engines ==================== - -Sat Jan 19 02:45:17 2002 Owen Taylor <otaylor at redhat.com> - - * src/pixbuf-render.c (theme_pixbuf_compute_hints): Catch - invalid borders, and warn. - -Sat Jan 19 00:32:14 2002 Owen Taylor <otaylor at redhat.com> - - * examples/*: Add an extrodinarily ugly example. - - * src/pixbuf-draw.c (draw_simple_image): Never shape - the window, even if we are allowed to. Shaping is - ugly -- if the widget isn't NO_WINDOW (most are), - you'll just have to draw it rectangular. - - * src/pixbuf-render.c (pixbuf_render): Always use - gdk_pixbuf_render_alpha() with FULL_ALPHA() as the - type. - - * pixbuf.h src/pixbuf-render.c (theme_pixbuf_compute_hints): To - speed up scaling, cache whether pixbufs have constant rows - or constant columns. - - * src/pixbuf-render.c (pixbuf_render): Speed up scaling - by using the hints from compute_hints(). - -Fri Jan 18 20:49:48 2002 Owen Taylor <otaylor at redhat.com> - - * configure.in: Use pkg-config to get the binray version - of GTK+ that we use for an install path. - -Fri Jan 18 18:14:11 2002 Owen Taylor <otaylor at redhat.com> - - * src/pixbuf-draw.c (draw_focus): Fix for changes to draw_focus. - -2001-09-21 Hans Breuer <hans at breuer.org> - - * src/pixbuf-rc-style-c : GtkRcStyle::parse has a GtkSettings - parameter now. Pass it through theme_parse_file () to use it - gtk_rc_find_pixmap_in_path () - - * src/pixbuf-draw.c : the font field from GtkStyle is private - now, use accessor gtk_style_get_font () - - * makefile.msc : compile on win32, use it if you have a _real_ - fast computer or want to see gtk in slow motion :-) - -Thu May 3 05:36:06 2001 Owen Taylor <otaylor at redhat.com> - - * pixbuf.h: Fix trailing comma on enumeration. (#54071) - -2001-03-05 Michael Natterer <mitch at gimp.org> - - * src/pixbuf-draw.c: made the "parent_class" pointer static. - - (Owen, I just commented out the draw methods which don't exist any - more to make it compile). - -2001-02-20 Sven Neumann <sven at convergence.de> - - * src/pixbuf-draw.c (draw_vline): use draw_vline method of - parent_class, not draw_hline - -Wed Nov 15 21:56:28 2000 Owen Taylor <otaylor at redhat.com> - - * src/pixbuf-*: A few updates for GTypePlugin. - -Tue Jul 18 12:13:19 2000 Owen Taylor <otaylor at redhat.com> - - Updates to work with GTK+-2.0 theme engine architecture. - It won't even sort of work with GTK+-1.2 any more. - - * configure.in src/Makefile.am: Look for GTK+-2.0, - install engine into GTK+-2.0 location. - - * src/pixbuf-style.h src/pixbuf-rc-style.[ch]: New - files for GtkRcStyle and GtkStyle subclasses. Parsing, - etc, moves to pixbuf-rc-style.[ch] - - * src/pixbuf-draw.c: Chain up to parent implementation - when images aren't found for a certain element. - -Sun Jul 9 18:15:58 2000 Owen Taylor <otaylor at redhat.com> - - * configure.in (ACLOCAL): Add -Wall for gcc. - - * src/pixbuf-render.c (pixbuf_render): Fix problem - using gdk_rectangle_intersect() from GTK+-1.2. - - * src/pixbuf-render.c src/pixbuf-draw.c: Remove - direct access to pixbuf internals. - -Mon Mar 6 11:44:58 2000 Owen Taylor <otaylor at redhat.com> - - * docs/gap-geometry.fig: Moved into docs/ subdir - - * Makefile.am configure.in autogen.sh src/Makefile.am: - automakify - - * src/pixbuf.h src/pixbuf-render.c src/pixbuf-draw.c - src/pixbuf-main.c: Move sources into subdir and - rename. - -Mon Mar 6 11:02:07 2000 Owen Taylor <otaylor at redhat.com> - - * pixmap_theme_pixbuf.c: Handle drawing transparency without a - mask correctly. - - * pixmap_theme_main.c pixmap_theme_draw.c: Remove duplicate - includes. - -Sun Feb 6 21:34:30 2000 Owen Taylor <otaylor at redhat.com> - - * Started ChangeLog for pixbuf engine, check sources - into CVS. - -========== ChangeLog for pixmap engine =================== - -1999-11-22 Martin Baulig <martin at home-of-linux.org> - - * pixmap_theme_main.c (theme_duplicate_style): Really copy the - `src_data->img_list', not just the pointer that points to it. - -Tue Oct 5 15:13:29 1999 Owen Taylor <otaylor at redhat.com> - - * pixmap_theme_draw.c (apply_theme_image): Don't set - background pixmap on pixmaps. - -1999-02-14 Raja R Harinath <harinath at cs.umn.edu> - - * Theme/gtk/Makefile.am.in (Makefile.am): Handle the case when - files are deleted. - -Thu Feb 11 21:16:53 1999 Owen Taylor <otaylor at redhat.com> - - * pixmap_theme_main.c (theme_data_unref): Free the - theme data structure as well as the contents. - -1999-02-03 Raja R Harinath <harinath at cs.umn.edu> - - * Theme/gtk/Makefile.am.in: New file. Theme/gtk/Makefile.am is - generated from this file when new *.png files are added. - -1999-01-23 Miguel de Icaza <miguel at nuclecu.unam.mx> - - * pixmap_theme_main.c (theme_init): Turn on pixmap cache. - -Mon Jan 18 13:37:23 1999 Owen Taylor <otaylor at redhat.com> - - * Theme/gtk/gtkrc: Give buttons a gray background - color so they look a little less funny when initially - drawing. - -Wed Jan 13 18:58:25 1999 Owen Taylor <otaylor at redhat.com> - - * pixmap_theme_draw.c: Fixed pervasive mis-bracketing - that was causing drawing if the drawn region and - clipping region did NOT intersect, and a couple - of errors in computing source and destination - regions. - -1998-11-09 Federico Mena Quintero <federico at nuclecu.unam.mx> - - * pixmap_theme_draw.c: #include <math.h> - -1998-11-07 Raja R Harinath <harinath at cs.umn.edu> - - * Theme/gtk/Makefile.am (theme_DATA): - Update to new directory contents. - * configure.in: Remove. - -Fri Nov 6 17:26:12 1998 Owen Taylor <otaylor at redhat.com> - - * pixmap_theme_main.c: Removed some debugging - printf's. - - * Theme/gtk/notebook1.c Theme/gtk/menubar.png: new - bigger pixmaps to reduce pixelation. - - * Theme/gtk/gtkrc: Reorganized to use several styles - instead of one huge style. Change clist backgrounds - to be prettier. - -Thu Nov 5 10:23:46 1998 Owen Taylor <otaylor at redhat.com> - - * pixmap_theme_draw.c (draw_shadow_gap): Fixed hard-coded - gap_side of '0'. - -Mon Nov 2 14:46:02 1998 Owen Taylor <otaylor at redhat.com> - - * pixmap_theme_draw.c (apply_theme_image_shadow_gap): Removed - several hundred lines of duplicated code with a bit of - reoriganization. - -Wed Oct 28 16:18:04 1998 Owen Taylor <otaylor at redhat.com> - - * pixmap_theme_main.c (theme_symbols): Removed lots - and lots of white space. - Deleted: projects/haf/trunk/sapwood/src/README.pixbuf =================================================================== --- projects/haf/trunk/sapwood/src/README.pixbuf 2007-03-09 16:19:02 UTC (rev 10505) +++ projects/haf/trunk/sapwood/src/README.pixbuf 2007-03-09 16:20:35 UTC (rev 10506) @@ -1,17 +0,0 @@ -The code in this directory is a GTK+ theme engine based on the earlier -pixmap theme engine. - -The config files are meant to be compatible, but instead of rendering -using Imlib, it renders using GdkPixbuf. This makes the memory -management much more understandable, and also allows us to use -GdkPixbuf's high quality scaling. - -Most of the code was reworked/rewritten in the process to make it more -understandable and maintainable. - -There are lots of bugs here, a considersable number of bugs. But it's -cleaned up a great deal from the older pixmap engine. Please don't -make it uglier again. - -Owen Taylor <otaylor at redhat.com> -6 February 2000 \ No newline at end of file Deleted: projects/haf/trunk/sapwood/src/README.server =================================================================== --- projects/haf/trunk/sapwood/src/README.server 2007-03-09 16:19:02 UTC (rev 10505) +++ projects/haf/trunk/sapwood/src/README.server 2007-03-09 16:20:35 UTC (rev 10506) @@ -1,22 +0,0 @@ -Protocol -======== - -Server listens to unix socket in "$TMPDIR/sapwood-$DISPLAY" -(g_get_tmp_dir() and gdk_display_get_name ()) - -C -> S: - guint8 border_left; - guint8 border_right; - guint8 border_top; - guint8 border_bottom; - guchar filename[0]; /* null terminated, absolute filename */ - -S -> C: - guint16 width; - guint16 height; - guint32 pixmap[3][3]; /* XIDs for pixmaps and masks for each part */ - guint32 pixmask[3][3]; /* 0 if not applicable (full opacity) */ - - on error: - char dummy; /* == '-' */ -
- Previous message: [maemo-commits] r10505 - projects/haf/tags/hildon-home-webshortcut/1:1.9.0-1
- Next message: [maemo-commits] r10507 - projects/haf/hafbuildbot
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]