Opened 20 months ago
Last modified 20 months ago
#18368 new enhancement
app_server: add semi-transparent window support — at Version 1
Reported by: | X512 | Owned by: | axeld |
---|---|---|---|
Priority: | normal | Milestone: | Unscheduled |
Component: | Servers/app_server | Version: | R1/Development |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Platform: | All |
Description (last modified by )
Today many 3rd-party applications use semi-transparent windows for decorations, shadows or visual effects that currently looks bad in Haiku. For sone software it may be unrealistic and/or undesired to turn off using semi/transparent parts. Many people prefer themes with semi-transparent parts that are currently impossible to implement.
Proposed implementation strategy:
- Introduce
Surface
objects forHWInterface
that can store raster buffer and be composited with alpha channel blending. Surfaces have Z-order relations and displayed on top of screen framebuffer. In future hardware compositing acceleration can be considered.
- Allocate and attach
Surface
to a window that has semi-transparent parts and redirect rendering to that surface instead of screen framebuffer.
- Modify
Desktop
visible region calculation so window with attachedSurface
will be not subtracted from windows with lower Z-order. Windows with upper Z-order and no attachedSurface
will be subtracted from window visible region. Window visible region will be also set toSurface
object.
Note:
See TracTickets
for help on using tickets.