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 X512)

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:

  1. Introduce Surface objects for HWInterface 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.
  1. Allocate and attach Surface to a window that has semi-transparent parts and redirect rendering to that surface instead of screen framebuffer.
  1. Modify Desktop visible region calculation so window with attached Surface will be not subtracted from windows with lower Z-order. Windows with upper Z-order and no attached Surface will be subtracted from window visible region. Window visible region will be also set to Surface object.

Change History (1)

comment:1 by X512, 20 months ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.