Main Page CompizSharp

From NDesk

(Difference between revisions)
Jump to: navigation, search
Revision as of 20:32, 19 August 2006 (edit)
Alp (Talk | contribs)

← Previous diff
Revision as of 20:42, 19 August 2006 (edit) (undo)
Alp (Talk | contribs)

Next diff →
Line 1: Line 1:
== compiz-sharp: OpenGL desktop compositing framework for .NET == == compiz-sharp: OpenGL desktop compositing framework for .NET ==
 +
 +The aim of this project is to provide a means of driving OpenGL
 +compositing in the X Window System using the Mono framework. The
 +project must achieve this in a way such that 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 not restricted to this requirement and may be
 +implemented with a combination of C "glue" code and C# in the style of
 +existing bindings. The project must yield one or more effect plugins
 +that demonstrates a sensible subset of functionality offered by GL
 +compositing managers. Common sense should be the guiding force rather
 +than a word-for-word adherence to the following plans, as this project
 +explores some new ground:
 +
 +The project should achieve its goals by extending [http://en.opensuse.org/Compiz compiz]
 +non-invasively, ideally as a a regular compiz module which hosts the
 +Mono runtime. In the case that this is infeasible or highly inelegant,
 +the project mentor may be consulted as to whether it would be a better
 +solution to extend compiz itself to allow more flexible extensions by
 +working with the author of compiz and contributing to that project
 +directly.
 +
 +David Reveman's description of compiz:
 +
 +compiz - OpenGL window and compositing manager
 +
 +<pre>
 + 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.
 +</pre>
 +
 +The API exposed by the project must cover the subset of entry points
 +needed to create functional effect plugins, and should provide
 +complete coverage of all relevant public API. The managed (C#) API may
 +deviate in terminology from that used in compiz in order to follow the
 +naming standards and style of the CLR and existing Mono libraries.
 +
 +The project should allow plugins to implement effects using Mono's Tao
 +OpenGL library. This library has not been widely distributed and is
 +not yet in a deliverable form, so some work towards making it
 +shippable might be made but productisation of dependent libraries will
 +generally be outwith the scope of the project.
 +
 +Code will be written foremost with maintainability, correctness and
 +stability in mind, followed by completeness and performance concerns.
 +Progress should be made such that there is demonstrable integration of
 +Mono with the compositing manager for the mid-program evaluation, and
 +a complete workable framework that meets the requirements set out in
 +this specification by the time of the final evaluation.
 +
 +[http://en.opensuse.org/Xgl Xgl]
=== Design === === Design ===

Revision as of 20:42, 19 August 2006

Contents

compiz-sharp: OpenGL desktop compositing framework for .NET

The aim of this project is to provide a means of driving OpenGL compositing in the X Window System using the Mono framework. The project must achieve this in a way such that 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 not restricted to this requirement and may be implemented with a combination of C "glue" code and C# in the style of existing bindings. The project must yield one or more effect plugins that demonstrates a sensible subset of functionality offered by GL compositing managers. Common sense should be the guiding force rather than a word-for-word adherence to the following plans, as this project explores some new ground:

The project should achieve its goals by extending compiz non-invasively, ideally as a a regular compiz module which hosts the Mono runtime. In the case that this is infeasible or highly inelegant, the project mentor may be consulted as to whether it would be a better solution to extend compiz itself to allow more flexible extensions by working with the author of compiz and contributing to that project directly.

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 project must cover the subset of entry points needed to create functional effect plugins, and should provide complete coverage of all relevant public API. The managed (C#) API may deviate in terminology from that used in compiz in order to follow the naming standards and style of the CLR and existing Mono libraries.

The project should allow plugins to implement effects using Mono's Tao OpenGL library. This library has not been widely distributed and is not yet in a deliverable form, so some work towards making it shippable might be made but productisation of dependent libraries will generally be outwith the scope of the project.

Code will be written foremost with maintainability, correctness and stability in mind, followed by completeness and performance concerns. Progress should be made such that there is demonstrable integration of Mono with the compositing manager for the mid-program evaluation, and a complete workable framework that meets the requirements set out in this specification by the time of the final evaluation.

Xgl

Design

TODO

Building

The build system currently has two stages.

Physics model

During development, compiz-sharp got its own physics model.

Download

TODO