windowmaker-wl/wrlib
Levi Neely b4484e05bc Fix Wayland startup: compositor window appears and event loop runs
Three root causes fixed:

1. RCreateContext crash: wScreenInit called RCreateContext(dpy=NULL).
   Fix: add RCreateContextWayland() to wrlib — creates a minimal 32-bit
   ARGB context without X11. Wayland path in screen.c now always taken
   when is_wayland (removed incorrect XWayland fallthrough).

2. Color parsing: parse_color and get_color_for_colormap were no-ops.
   Fix: implement real color parser in wl_backend supporting #RGB,
   #RRGGBB, #RRRRGGGGBBBB, rgb:RR/GG/BB, and common named colors.
   Texture creation (solid, gradient) now works in Wayland mode.

3. RConvertImage crash: wrlib tried XCreateImage with NULL display.
   Fix: RConvertImage/RConvertImageMask return success with pixmap=0
   when context->dpy is NULL. Callers don't use pixmaps in Wayland
   mode (rendering goes through vtable slots to pixman buffers).

4. Workspace crash: Wayland path skipped wWorkspaceNew(), so
   workspace_count=0 when menu tried to access workspace entries.
   Fix: add wWorkspaceNew + netwm_init to Wayland screen init path.

Result: compositor starts, event loop runs, window is visible.
WMAKER_USE_WAYLAND=1 wmaker now shows a compositor window.
2026-05-13 13:51:27 +02:00
..
po gitignore: stop tracking all generated build outputs 2026-03-31 13:36:58 +02:00
tests gitignore: stop tracking all generated build outputs 2026-03-31 13:36:58 +02:00
AUTHORS WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
COPYING WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
ChangeLog WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
INSTALL WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
Makefile.am WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
NEWS WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
README WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
TODO WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
alpha_combine.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
color.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
context.c Fix Wayland startup: compositor window appears and event loop runs 2026-05-13 13:51:27 +02:00
convert.c Fix Wayland startup: compositor window appears and event loop runs 2026-05-13 13:51:27 +02:00
convert.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
convolve.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
draw.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
flip.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
gradient.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
imgformat.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
load.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
load_gif.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
load_jpeg.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
load_magick.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
load_png.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
load_ppm.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
load_tiff.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
load_webp.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
load_xpm.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
load_xpm_normalized.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
misc.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
raster.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
rotate.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
rotate.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
save.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
save_jpeg.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
save_png.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
save_xpm.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
scale.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
scale.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
wr_i18n.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
wraster.h.in WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
xpixmap.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
xutil.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
xutil.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00

README

WindowMaker raster graphics library

This library is used to manipulate images and convert them to
a format that can be displayed through the X window system.
Read the wraster.h header for an idea of what is available


This Library is LGPL and
Copyright (c) Alfredo K. Kojima <kojima@inf.ufrgs.br>


The following environment variables control some parameters:

RIMAGE_CACHE <integer>

Is the maximum number of images to store in the internal cache.
Default is 8

RIMAGE_CACHE_SIZE <integer>

Is the size of the biggest image to store in the cache.
Default is 4k (64x64)



Porting
=======

It should be fairly easy to port it to other environments
(svgalib, libggi etc), probably only requiring wraster.h,
context.c and convert.c to be changed. Note that the X specific
code should be disabled in that case, including support for libXpm.