Tag / Compiz

  • April 1, 2016 - Mike Blumenkrantz and Derek Foreman

    CSS: Revolutionizing the Appearance of the WWW

    One of the most notable and enduring Linux desktop paradigms has been desktop effects: the coupling of various desktop environments with graphical niceties, also known as “eye candy.” With the advent of the XComposite extension in the mid 2000s, mainstream eye candy was taken to new levels through a small project called Compiz which used the texture from pixmap extension to apply hardware-accelerated effects to windows on the fly. From Compiz came the effect that is known throughout the Linux world as “wobbly windows” or, for many developers, “that feature we aren’t implementing.” By applying OpenGL vertex transforms to the textures created using the previously-mentioned extension, windows would appear to deform when moved and resized. This has persisted in being the benchmark for all graphical desktop effects for a decade, and numbers may not go high enough to enumerate all the users who have asked for this effect in Enlightenment […]

    Read More
  • January 8, 2016 - Mike Blumenkrantz

    Desktop Compositing: How Much Overdraw Is Too Much?

    In my previous post on compositing, I covered the overall methodology with which I implemented Compiz plugin support in the Enlightenment compositor. Now I’m going to go into some detail about the rendering portion. The first thing that should be reiterated is Compiz only performs damage calculations for the entire screen and does not track them per-window. This is, to say the least, problematic. There’s no way to easily predict where a window will draw at any given time either: there are window effects that cause clients to zoom in/out to/from the mouse cursor, and others that cause the client to bounce around outside of its frame region. The compositor must be prepared to draw things for each window at any geometry on the screen at any time, regardless of common sense clipping. Rendering Outside the Box The first attempt I made at getting things to work was to just […]

    Read More
  • December 11, 2015 - Mike Blumenkrantz

    Manual Compositing with Compiz and Enlightenment

    This is the first article in a two part series on compositing with Compiz and Enlightenment. I recently implemented  a proof of concept for Compiz effect modules in the Enlightenment compositor. In this article, I will explore the methodology behind the implementation and cover some of the AWESOME hacks that made it possible. Replacing Default Compositor Behaviors with Compiz To start, let’s examine how Compiz operates. There is an OpenGL extension that allows an X11 pixmap to be bound to a texture. Compiz operates based on the principle that the compositor can render this texture in any way, at any time, and the underlying X11 input window will be moved quietly to wherever the rendered content ends up. This creates the illusion that the entire window (input and output) is moving in an irregular manner, when in reality, the window’s output is moving around and the window’s input region is […]

    Read More