[maemo-commits] [maemo-commits] r11137 - in projects/haf/trunk/sapwood: . demos demos/images src
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Wed Apr 18 18:53:05 EEST 2007
- Previous message: [maemo-commits] r11136 - in projects/haf/trunk/sapwood: . demos demos/images
- Next message: [maemo-commits] r11138 - in projects/haf/trunk/dpkg: . debian
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: tko Date: 2007-04-18 18:53:03 +0300 (Wed, 18 Apr 2007) New Revision: 11137 Added: projects/haf/trunk/sapwood/demos/gradient.c projects/haf/trunk/sapwood/demos/gradient.gtkrc projects/haf/trunk/sapwood/demos/images/gradient.png Modified: projects/haf/trunk/sapwood/ChangeLog projects/haf/trunk/sapwood/demos/Makefile.am projects/haf/trunk/sapwood/src/sapwood-server.c Log: MB#1216 - paint the pixmap white before compositing images with alpha 2007-04-18 Tommi Komulainen <tommi.komulainen at nokia.com> * demos/Makefile.am * demos/gradient.c * demos/gradient.gtkrc * demos/images/gradient.png: Add testcase for gradient * src/sapwood-server.c (extract_pixmap_single): To avoid uninitialized pixels when loading images with alpha channel, paint the pixmap white first. MB#1216 Modified: projects/haf/trunk/sapwood/ChangeLog =================================================================== --- projects/haf/trunk/sapwood/ChangeLog 2007-04-18 15:36:23 UTC (rev 11136) +++ projects/haf/trunk/sapwood/ChangeLog 2007-04-18 15:53:03 UTC (rev 11137) @@ -1,4 +1,15 @@ 2007-04-18 Tommi Komulainen <tommi.komulainen at nokia.com> + + * demos/Makefile.am + * demos/gradient.c + * demos/gradient.gtkrc + * demos/images/gradient.png: Add testcase for gradient + + * src/sapwood-server.c (extract_pixmap_single): To avoid uninitialized + pixels when loading images with alpha channel, paint the pixmap white + first. MB#1216 + +2007-04-18 Tommi Komulainen <tommi.komulainen at nokia.com> * demos/Makefile.am * demos/images/hbbox.png: remove ugly solid black image Modified: projects/haf/trunk/sapwood/demos/Makefile.am =================================================================== --- projects/haf/trunk/sapwood/demos/Makefile.am 2007-04-18 15:36:23 UTC (rev 11136) +++ projects/haf/trunk/sapwood/demos/Makefile.am 2007-04-18 15:53:03 UTC (rev 11137) @@ -3,6 +3,7 @@ noinst_PROGRAMS = \ buttonbox \ + gradient \ treeview CLEANFILES = engines @@ -15,6 +16,9 @@ images/hbbox-tb.png \ images/hbbox-tlb.png \ images/hbbox-tlbr.png \ + gradient.c \ + gradient.gtkrc \ + images/gradient.png \ treeview.c \ treeview.gtkrc \ images/treeview-active.png \ Added: projects/haf/trunk/sapwood/demos/gradient.c =================================================================== --- projects/haf/trunk/sapwood/demos/gradient.c 2007-04-18 15:36:23 UTC (rev 11136) +++ projects/haf/trunk/sapwood/demos/gradient.c 2007-04-18 15:53:03 UTC (rev 11137) @@ -0,0 +1,50 @@ +/* + * This file is part of sapwood + * + * Copyright (C) 2007 Nokia Corporation. + * + * Contact: Tommi Komulainen <tommi.komulainen at nokia.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ +#include <gtk/gtk.h> + +int +main (int argc, char **argv) +{ + GtkWidget *window; + GtkWidget *align; + GtkWidget *button; + + gtk_rc_add_default_file ("gradient.gtkrc"); + gtk_init (&argc, &argv); + + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0); + button = gtk_button_new_with_label ("OK"); + + gtk_container_add (GTK_CONTAINER (window), align); + gtk_container_add (GTK_CONTAINER (align), button); + + gtk_widget_set_size_request (button, 100, 100); + + gtk_widget_show_all (window); + + g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL); + gtk_main (); + + return 0; +} Added: projects/haf/trunk/sapwood/demos/gradient.gtkrc =================================================================== --- projects/haf/trunk/sapwood/demos/gradient.gtkrc 2007-04-18 15:36:23 UTC (rev 11136) +++ projects/haf/trunk/sapwood/demos/gradient.gtkrc 2007-04-18 15:53:03 UTC (rev 11137) @@ -0,0 +1,13 @@ +# vim:set ft=gtkrc sw=2 sts=2 expandtab: +pixmap_path "images" + +style "button" { + engine "sapwood" { + image { + function = BOX + file = "gradient.png" + } + } +} + +class "GtkButton" style "button" Added: projects/haf/trunk/sapwood/demos/images/gradient.png =================================================================== --- projects/haf/trunk/sapwood/demos/images/gradient.png 2007-04-18 15:36:23 UTC (rev 11136) +++ projects/haf/trunk/sapwood/demos/images/gradient.png 2007-04-18 15:53:03 UTC (rev 11137) @@ -0,0 +1,20 @@ +PNG + + IHDR d d pâT bKGD ÊѸ pHYs tIME×&+¨Aº tEXtComment Created with GIMPW IDATxÚmrë¸Dìosùç«èÓP\r[Eâ£Ñ ÉèÿEÄWDü¾¾¾N>;ý¿ëÿ¼lÿkhÇiïóó¯ásò_ÏýÏãýûóüë¾ß;"òû=¾ÿ|åã÷ÿC{yéC~n÷ÊËõ§¶Èwn÷á^)ú]s;jB>,qÃ|tÉI0qh÷ym]þ¾ Q>¾Ã=oýå6éÓ`ñÔþפ kSH]<´<øí\DÂk7B@Bý4EyÔÛ$ÞÚæ¥)ñ')¦îKþ¦ÙrRj<5áÞH +ÌúÂ\Qs׿ e'ÍT½L{ì¬c2Â$ qwìs&¨À)IJgC at QbRNVâYû`âsãCÊtùèÀmÂóTNa¾NSF[ &0Ìörc²è@Õ®%æîoúÄ íþ(N Lö:¨ |?ÃG+LÓ&ÍkÆ%HSEÑè b¶»õú1gâò?ú^¾C|§kúÑ)o#X ¦üSþ))tØ+Ò*00>GI{ZXJD!2·oÊÜ*?"æ·´óÊ·$¼çíÞmԹǾFWëÕBÂHTíÂX2¨ÚO TÄ'6ðÔ¿!À>D¡%QË8Ñ9 pËfi`ý1v?ýH +ºH Ò<ês># ×á°Â@ÒdpÔ@ì.X2R¡ --Ì2׫¾¸;Â# I6Î¥'Ú`¤©IÌ`>ú ¹«ÉGjtÀ§@Íqô§®ÐYË ÿ@i:ù°^ 1u×ø*n,Îà°NýÅÏ,Ãß½à,~ªJâú(K¨]hõ¤M¼qK\ÍVAîiê6YÏ ®¸,bHҪų3I ð5(/S +º"à`« èAÊÁW)^NÚ4-ÀQp +LF m PÅ8f n§Ñ>y~8I Fà)©¿rªDRÄ9§A£yô2 :¹>AÙÿ;ö2ÕÎ¥8\ZÝYb1Á)ÈÉÉ'M¹£2PÜh^3Q +M*´Ú°Ä´\ð\i\Oó-WA.#p + ¶×sN,äÔèÒR$Ê9PnEM½æRÒhÜAx¡6ò9Ú'õÌsþ\úà2hJËGîTÛA·äh3é·ÏH½VüÏh¡Áá° ¤ÒЯ&XA úiÁÂák¬,ÙBB#»©r.Iê¦ß+3üWbï&²Ì +íVÓaìð_Tdɨ¢¦© ¢@¾ÓXdä©¢ø²Ã4úëû¸ÿ4¨¼8[¥ûû!b'ùôS¨hcBùßäI +ÒèSAQ +'bЬu+4ßïäéí,ʪÎ$|à© \K¡ð&¤ío3ÿý¸©Éß´Ìà&F¸±µpLÅ aïD¢Q2á= ÓÉ9P Óüãe½È](ñse¯SG= ²g¦FãØ¥ÌÞª²>c4²x=ZÏK Q9÷¾øçPåN§IyVRÛB*Øb"ú~Lù/ßí ¤Í}ÜöoÔL eõZÇLg-\"mGå0.°É(ºí<Zýû#¦(2¤é-óJ©w²i'Ì +^úXÐ$9»Â8 ¾ ÑeÖæØF¢eJY8Sh .Ç*O¢ô£¦Ôz Â[§"ؤAµÿ¬"`c³Ii9¸³<;@>/óþ%S·|ÊR US¼þïZBBo@¤J#d¤Q{~Ë +@Á Vù³XhÙWìTÐÔ85WÔÌ¤ÑÆ$µ X'iD£q¢cßU 2% ÈÄM òð¥vÝé»t/&¤8%¨ö)}uÝ +::;x:g×ÊB8Ì/ªVåsâÀijæ>'Æ.[PÐoö¼¿°;i ÙÛV +Kl{.îé°ÑÅ×{ ¢]GµIÌ8tļêÉ !ib"Ê)Rå7Em% +»ÂiI!x><¶'ûK´ð!îýÛêÞLjHM¸K (K×®Ëvi.¹è´îÈͼÝ4®÷kƧȫ^Zcô8=D ³°H,qt]ù)V¾ë46eäd\ ¨A*²:×Y[èÐizMP]é þ4#¢é¹|Ø + -hHc¼aäW{¶XÔLf ¡j1¨j ·ÔC Ú àUÛol°éêá¿ÐªËjȼºpÏÕ@Ð+ o«Äz í(³ Oõw8£·;[;±2) i{êZÐæI VN&DÔCb»9sÅH·2w´TÇ¡Úú+ô»°ÈNÄ»ÞÍ2nöu ¨·ö{geØHõPt÷Òÿ½7p¦G£¹ý-OA©8hê%u±l¥mÄ|ÈÒ ºþ8Éå:oSs +HBso÷Ê¢¦ÅYvÝ}#}RÊ0°4@wåQå97§ýf3õºMÒ«5?eÞp»OnÎ'$YÁru¾â67±@ºÍÈØN-\Ïk´ÖºQ] ÛÑf¬TÐ} ½JE2~;(\×/¤ÔÙPÓé¯&ÙnÿE`9$}¿][ ½)Ö{,êCnU쥲Å% lÁ£ÊYC´Äe²å&nçÜ5'÷Þ¢¬Q'NÛ¡çÉ1Qáø)*HHgïóZPÙ1ô« ¦70Ñdçá¤p§&ÈÔb¡©z]í³HËLæg6éÝ >JÌoPîÄé«@ÔrhçH$g»CÂuFxu¢ ¾AçA2U|W±Ïí;¹[ÿ§ Ö° ߣëÔý¨ !¹·üá?aÜ,ÊæÞÚRîÕòj¼½9]*~ê!@û $ÛëP4*uèrÞ¸9ú +¶´I|S. ù5A´Óo\'Þç¶{Ðm¢#c7eJCo}ÈÄÀª¼À4 >ÅÿyíÄ[5DNt«õ7ÅãVhãOHHÙôY-'Óááܨ}³Ê¸·úm7Ão6Ìwлï!¡Ê }Ôb£¦ +ïun©HsÎÞwNöÙVÞL09Ô>ý~9ä-(wRýù \AÃJÁÙ8N½M4¥´fõ¦¸¤ ³çfÿ(=òö¨½ ùjB(±Hsä|BµÕ¸Ý7HjHË]¨É¾Ü¶Ø¬ù£üñtr (^ÍY{8ië:õ\LÚõO§Wñ;1Û#Á©ð¥NH@åBåHEÛOõÁjÀ7ôS?Ñ:+ Itܦøö,vbö:h÷ØW+©·Ñ'N1aÏÙêfÆÀ! Á-²ËEa/䧸 IEND®B` \ No newline at end of file Modified: projects/haf/trunk/sapwood/src/sapwood-server.c =================================================================== --- projects/haf/trunk/sapwood/src/sapwood-server.c 2007-04-18 15:36:23 UTC (rev 11136) +++ projects/haf/trunk/sapwood/src/sapwood-server.c 2007-04-18 15:53:03 UTC (rev 11137) @@ -82,6 +82,11 @@ int width, int height, PixbufOpenResponse *rep) { + /* This function is almost a copy of gdk_pixbuf_render_pixmap_and_mask() with + * the exception that it draws only a part of the pixbuf (could be achieved + * with gdk_pixbuf_new_subpixbuf()) and initializes the destination pixmap + * with white background to avoid uninitialized pixels when using alpha. + */ GdkPixmap *pixmap; static GdkGC *tmp_gc = NULL; gboolean need_mask; @@ -89,8 +94,15 @@ pixmap = gdk_pixmap_new (NULL, width, height, server_depth); if (!tmp_gc) - tmp_gc = gdk_gc_new (pixmap); + { + const GdkColor white = {0, 0xffff, 0xffff, 0xffff}; + tmp_gc = gdk_gc_new (pixmap); + + gdk_gc_set_rgb_fg_color (tmp_gc, &white); + } + + gdk_draw_rectangle (pixmap, tmp_gc, TRUE, 0, 0, width, height); gdk_draw_pixbuf (pixmap, tmp_gc, pixbuf, x, y, 0, 0, width, height,
- Previous message: [maemo-commits] r11136 - in projects/haf/trunk/sapwood: . demos demos/images
- Next message: [maemo-commits] r11138 - in projects/haf/trunk/dpkg: . debian
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]