edf8e89542ce33f2db3ec9f7eac23f8d12f531f0
2002-02-06 Tor Lillqvist <tml@iki.fi> A batch of changes mainly with improvements to 256-color mode. Add possibility for the user to override size of palette used with either the GDK_WIN32_MAX_COLORS environment variable, or a -max-colors command line option. Plug some memory leaks. * gdk/gdkrgb.c: More debugging output added here and there, some very verbose. I tried hard to also come up with a color cube and a GdkRgbConvFunc that would use all the 16 static VGA colors if the visual is such, but no. Will have to make do with the 2x2x2 color cube in that case. (gdk_rgb_cmap_fail): Drop the message argument, instead use explicit GDK_NOTE calls before calling this function. (gdk_rgb_do_colormaps): Use G_N_ELEMENTS(). (gdk_rgb_init): Use the 2x2x2 color cube only for depths 3 and 4. Check return value from gdk_rgb_do_colormaps(), call g_error() if fails. (gdk_rgb_convert_4_pack): New GdkRgbConvFunc, for 4 bits-per-pixel static color visuals. (gdk_rgb_select_conv): Use correct bpp for 4 < depth < 8. Choose gdk_rgb_convert_8() also for depth < 8. Choose gdk_rgb_convert_4_pack() when bpp == depth == 4. Call g_error() if no suitable conv function was found. * gdk/win32/gdkcolor-win32.c: Minor debugging output changes. Remove #if 0 code. (create_colormap): If the visual indicates the static 16 VGA colors only, use only those in the palette (and not the four colors in the middle of the default palette). * gdk/win32/gdkcursor-win32.c (gdk_cursor_new_from_pixmap): Debugging output improvements. * gdk/win32/gdkdrawable-win32.c (gdk_win32_blit): New function, bulk of code from the old gdk_win32_draw_drawable(), with one extra parameter use_fg_bg to indicate whether to use the fg and bg pixel values (indexes) from the GC when blitting from bitmaps, or 0 and 1. The values from the GC are used only when being called from gdk_image_put(). (Compare to XCopyArea(), XGetImage() and XPutImage().) Plug memory leak: always delete the outside_rgn HRGN. (gdk_win32_draw_drawable): Just call gdk_win32_blit(). (blit_from_pixmap, blit_inside_window, blit_from_window): New functions, containing code sections moved out from (what is now) gdk_win32_blit(). (blit_from_pixmap): Gets passed the use_fg_bg parameter of gdk_win32_blit(). Call gdk_win32_clear_hdc_cache_for_hwnd() for the source bitmap to make sure it isn't selected into a DC in the DC cache. Combine the branches for 1-bit and 8-bit bitmaps: Set the source DIB section's color table appropriately before calling BitBlt(), restore afterwards. * gdk/win32/gdkgc-win32.c: Only cosmetics and debugging output changes. * gdk/win32/gdkglobals-win32.c: New global variable: gdk_max_colors. * gdk/win32/gdkimage-win32.c (gdk_image_get): Call gdk_win32_blit() with use_fg_bg FALSE. (gdk_image_get_pixel, gdk_image_put_pixel): Handle depth == 4 case (two packed pixels per byte). * gdk/win32/gdkmain-win32.c: New command-line option -max-colors. * gdk/win32/gdkpixmap-win32.c (setup_pixmap_image): Handle also depths 4, 5, 6 and 7, with depth 4 meaning two pixels per byte, and 5, 6 and 7 meaning one pixel per byte, but restricting pixel values to said number of bits. (gdk_win32_pixmap_new, showpixmap): Ditto. * gdk/win32/gdkprivate-win32.h: Declate gdk_win32_blit() and gdk_max_colors. * gdk/win32/gdkselection-win32.c (gdk_text_property_to_text_list): Fix lint. * gdk/win32/gdkvisual-win32.c (gdk_visual_init): Look for a GDK_WIN32_MAX_COLORS environment variable, and check the gdk_max_colors variable possibly set by the command-line option. They can be used to override the number of colormap entries for 256-color "pseudocolor" mode. Set depth of visual accordingly. If restricted to 16-color, say it's "static color". Call gdk_rgb_min_colors() with an appropriate value for the restricted colormaps. * gdk/win32/gdkwindow-win32.c (gdk_window_shape_combine_mask): Plug memory leak: Delete temporary HRGN after use.
General Information =================== This is GTK+ version 1.3.0. GTK+, which stands for the Gimp ToolKit, is a library for creating graphical user interfaces for the X Window System. It is designed to be small, efficient, and flexible. GTK+ is written in C with a very object-oriented approach. The official ftp site is: ftp://ftp.gtk.org/pub/gtk The official web site is: http://www.gtk.org/ A mailing list is located at: gtk-list@redhat.com To subscribe: mail -s subscribe gtk-list-request@redhat.com < /dev/null (Send mail to gtk-list-request@redhat.com with the subject "subscribe") Installation ============ This is the gtk-1-3-win32-production branch, intended only for Windows. See README.win32. How to report bugs ================== Bugs should be reported to the GNOME bug tracking system. (http://bugs.gnome.org). To report a problem about GTK+, send mail to submit@bugs.gnome.org. The subject of the mail should describe your problem. In the body of the mail, you should first include a "pseudo-header" that gives the package and version number. This should be separated by a blank line from the actual headers. Package: gtk+ Version: 1.3.0 [ Please substitute 1.3.0 with the version of GTK+ that you have installed ] Then describe the bug. Include: * Information about your system. For instance: - What operating system and version - What version of X - For Linux, what version of the C library And anything else you think is relevant. * How to reproduce the bug. If you can reproduce it with the testgtk program that is built in the gtk/ subdirectory, that will be most convenient. Otherwise, please include a short test program that exhibits the behavior. As a last resort, you can also provide a pointer to a larger piece of software that can be downloaded. (Bugs that can be reproduced within the GIMP are almost as good as bugs that can be reproduced in testgtk. If you are reporting a bug found with the GIMP, please include the version number of the GIMP you are using) * If the bug was a crash, the exact text that was printed out when the crash occured. * Further information such as stack traces may be useful, but is not necessary. If you do send a stack trace, and the error is an X error, it will be more useful if the stacktrace is produced running the test program with the --sync command line option. An example of a bug report: ==== To: submit@bugs.gnome.org From: yourname@your.address.org Subject: handlebox test in testgtk is misnamed. Package: gtk+ Version: 1.3.0 When I run gtk/testgtk, the button "handle box" is misnamed. There are multiple handle boxes in the demo, so it should be "handle boxes", to be like "buttons" or "check buttons". === Patches ======= Patches can be uploaded to the incoming/ directory on ftp.gtk.org. Please follow the instructions there, and include your name and email address in the README file. If the patch fixes a bug, it is usually a good idea to include all the information described in "How to Report Bugs".
Description
Languages
C
90.8%
CSS
7.3%
Meson
0.5%
SCSS
0.4%
GLSL
0.3%
Other
0.5%