Main Page CompizSharp

From NDesk

(Difference between revisions)
Jump to: navigation, search
Revision as of 04:52, 21 August 2006 (edit)
Alp (Talk | contribs)

← Previous diff
Revision as of 04:54, 21 August 2006 (edit) (undo)
Alp (Talk | contribs)

Next diff →
Line 44: Line 44:
The managed part of the binding exists in src/. It can be built by entering that directory and running make. The managed part of the binding exists in src/. It can be built by entering that directory and running make.
 +
 +The example plugins are in plugins/ and can be compiled after src/ has been built.
=== Physics model === === Physics model ===

Revision as of 04:54, 21 August 2006

Contents

compiz-sharp: OpenGL desktop compositing framework for .NET

compiz-sharp was written as part of the Google Summer of Code 2006 for the Mono project.

compiz-sharp provides a means of driving OpenGL compositing in the X Window System (see Xgl) using the Mono framework. Effects can be provided concurrently by individual effect plugins with their logic written purely in a CLS-compliant language supported by Mono, such as C#. The infrastructure itself is implemented with a combination of C "glue" code and C#.

Sample effect plugins are included to demonstrate a subset of functionality avaiable to plugin authors.

The project achieves its goals by extending compiz non-invasively as a regular compiz plugin which hosts the Mono runtime. To allow this, compiz was extended by its maintainers to allow for plugin loader plugins to.

David Reveman's description of compiz:

compiz - OpenGL window and compositing manager

  Compiz is an OpenGL compositing manager that uses
  GLX_EXT_texture_from_pixmap for binding redirected top-level windows
  to texture objects. It has a flexible plug-in system and it is
  designed to run well on most graphics hardware.

The API exposed by the binding cover the subset of entry points needed to create functional effect plugins, and is close to providing complete coverage of all relevant public API. The managed (C#) API may follows the naming standards and style of the CLR and existing Mono libraries, making it easy for developers to get started.

Managed plugins can implement effects by changing the behaviour of existing plugins or by using Mono's Tao OpenGL library. This library has recently been updated with a new build system will help make it widely available in Linux distributions and more accessible to developers.

Building

The build system currently has two stages.

The glue part of the binding is implemented as a compiz plugin and can be built with ./configure and make etc.

The managed part of the binding exists in src/. It can be built by entering that directory and running make.

The example plugins are in plugins/ and can be compiled after src/ has been built.

Physics model

During development, compiz-sharp got its own physics model. This is based on Akamaru, which is a generalised version of the model used in compiz, with a different numerical integration technique. Similar algorithms were previously implemented by Luminocity and the sproing prototype in cairo-demo.

Download

The source code is maintained in git. You can browse the compiz-sharp repository or git-clone git://git.ndesk.org/pub/scm/compiz-sharp