Misplaced Pages

Pseudo-transparency

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Pseudo-transparency" – news · newspapers · books · scholar · JSTOR (February 2016) (Learn how and when to remove this message)

Pseudo-transparency is a term used for X Window System clients that simulate the appearance of translucency or transparency by manipulating the same pixmap that has been drawn on the root window, or by instructing the X Server that the Background Pixmap should be inherited from the window's parent.

Purpose

Traditionally, the X Window System has lagged behind other windowing systems in adding purely eye candy or aesthetic features, such as window translucency. This has encouraged developers to develop kludges to overcome this limitation.

This pseudo-transparency, so called as the background pixmap of the root window is visible (analogous to desktop wallpaper) rather than any obscured windows, allows users to make windows look less imposing (such as Terminal emulators, which usually comprise large chunks of text), and to integrate the appearance of windows with their desktop themes.

Implementation

There are three common methods for achieving pseudo-transparency using Xlib, each with its own advantages and drawbacks.

Parental-relative

The "parental-relative" method uses XSetWindowBackgroundPixmap() to inherit the parent window's background image. Unfortunately, using this method, the X server permits very few operations to be performed on the background pixmap (such as XOR), preventing clients from implementing any sort of advanced image filtering.

_XROOTPMAP_ID and ESETROOT_PMAP_ID properties

These properties are used to inform the window where it can find the pixmap used on the root window. Using this information, a client can paint a section of the image (corresponding to the size and position of the window) onto its background, achieving the effect of transparency. This method uses the most memory, but has the advantage of allowing clients to perform any operation, such as tinting or shading, on the image data.

XCopyArea

XCopyArea can achieve a more realistic transparency effect in that it can include obscured windows, but with the significant disadvantage that it is only usable with modal windows. This method simply uses the XCopyArea() function to take a partial screenshot for use as the window's background pixmap.

Future

Recent technologies such as DirectFB, Direct Rendering Infrastructure, and hardware compositing via OpenGL allow X client applications to utilize true alpha transparency.

References

  1. "Tutorial: Urxvt: transparency". CTKArch. 2014. Retrieved February 23, 2016.


Stub icon

This computer graphics–related article is a stub. You can help Misplaced Pages by expanding it.

Categories: