[Cogl] Release Cogl 1.9.4 (snapshot)
Robert Bragg
robert at sixbynine.org
Mon Jan 16 16:14:37 PST 2012
Good news, everyone!
A new Cogl snapshot (1.9.4) is now available:
LATEST NEWS
-------------------------------------------------------------------------------
These are the changes since Cogl 1.9.2:
» Visual Studio 2008/2010 project files have landed and are being actively
maintained by Chun-wei Fan <fanchunwei at src.gnome.org>
» A basic KMS (Kernel Mode Setting) backend was added so we can run fullscreen
Cogl applications without X11 on Linux.
» EGL platforms can now be selected at runtime. Although we've had the ability
select backends at runtime for a while, up until now all EGL platforms were
part of one monolithic backend and were mutually exclusive so a platform
had to be chosen at build time.
» cogl_matrix_orthographic() was added as a replacement for
cogl_matrix_ortho()
since the OpenGL style of arguments for cogl_matrix_ortho() wasn't
consistent
with the rest of the Cogl API.
» Experimental cogl_framebuffer_ apis were added for manipulating the
per-framebuffer modelview matrix stack. The aim is for these to replace
apis like cogl_rotate/translate/scale because those apis aren't explicitly
related to a CoglContext which we'd like to avoid so we can remove the
need for a global CoglContext.
» Experimental cogl_framebuffer apis were added for manipulating the
per-framebuffer clip stacks.
» The internal _cogl_framebuffer_flush_state() function was optimized to do
a better job of bailing out when no framebuffer state has changed, and
when state has changed the cost should now scale by the number of changes
made instead of scaling by the total range of framebuffer state that Cogl
tracks.
» Internally we finally removed _cogl_enable() which won't mean much to most
people but makes the maintainers happy. This happened as part of a rework
for how attribute state is flushed when drawing which fixed some problems
with supporting custom attributes and should improve the performance of
flushing attributes too.
» We added an experimental CoglSnippets api aiming to greatly simplify how
developers can incorporate snippets of GLSL code into the pipeline. This is
a feature that has been on the drawing board for a long time so we're
really happy that it's finally here.
*** We'd really love to see people start to play with the snippets API and
tell us how they get on. The plan is for this API to replace all need for
developers to use the CoglProgram and CoglShader apis which are rather poor
copies of the OpenGL APIs for using GLSL which don't map well to Cogl's
design. ***
» We've updated Cogl's client side Wayland support
» We've updated Cogl's compositor side Wayland support, including updating the
example cogland compositor.
» We added an SDL window system backend for Cogl, which provides a simple,
portable way to play with Cogl as a standalone graphics API with basic
support for input events available from SDL. See examples/cogl-sdl-hello
to see how that works.
» We added mainloop integration support to Cogl. Since we want to have the
ability to use poll() to block for events from some drivers we
have introduced
apis that all Cogl applications are required to use to integrate Cogl
into their mainloop. For applications using a glib mainloop we've provided
a GSource for convenience.
• List of bugs fixed since Cogl 1.9.2
https://bugzilla.gnome.org:
#650020 - Visual C++ 2008/2010 Project files to compile Cogl and Cogl-Pango
#665190 - The conformance test wrapper scripts don't return an exit code
#665604 - Cogl needs to bind the framebuffer before calling eglSwapBuffers
#665722 - Build Fixes for COGL master branch
#665723 - Conformance tests failed (snippets, pipeline_uniforms)
#667009 - Remove DRM vblank hack
Many thanks to:
Neil Roberts
Chun-wei Fan
Rob Bradford
Daniel Mustieles
Fran Diéguez
Aurimas Černius
Javier Jardón
Jorge González
Joshua Lock
Seong-ho, Cho
Tomeu Vizoso
Yinghua Wang
FETCHING THE RELEASE
-------------------------------------------------------------------------------
Tarballs can be downloaded from:
http://source.clutter-project.org/sources/cogl/1.9/
http://download.gnome.org/sources/cogl/1.9/
SHA256 Checksum:
286ab34ed3b06b2f8405dc5ff4c4db1c21a35543beade7de8383fe7667343d0d
cogl-1.9.4.tar.bz2
Additionally, a git clone of the source tree:
git clone git://git.gnome.org/cogl
will include a signed 1.9.4 tag which points to a commit named:
348e99c7118c196965baf7ff866324474bb5bce1
which can be verified with:
git verify-tag 1.9.4
and can be checked out with a command such as:
git checkout -b build 1.9.4
DESCRIPTION
-------------------------------------------------------------------------------
Cogl is a small open source library for using 3D graphics hardware for
rendering. The API departs from the flat state machine style of OpenGL and is
designed to make it easy to write orthogonal components that can render without
stepping on each others toes.
As well as aiming for a nice API, we think having a single library as opposed
to an API specification like OpenGL has a few advantages too; like being
able to paper over the inconsistencies/bugs of different OpenGL
implementations in a centralized place, not to mention the myriad of OpenGL
extensions. It also means we are in a better position to provide utility
APIs that help software developers since they only need to be implemented
once and there is no risk of inconsistency between implementations.
Having other backends, besides OpenGL, such as drm, Gallium or D3D are
options we are interested in for the future.
REQUIREMENTS
-------------------------------------------------------------------------------
Cogl currently only requires:
• GLib ≥ 2.28.0
• OpenGL ≥ 1.3 (or 1.2 + multitexturing), or OpenGL ES 2.0 (or 1.1)
• GLX, AGL, WGL or an EGL implementation
Cogl also has optional dependencies:
• GDK-Pixbuf ≥ 2.0
- for image loading
• Cairo ≥ 1.10
- for debugging texture atlasing (debug builds only)
The optional Cogl Pango library requires:
• Cairo ≥ 1.10
• PangoCairo ≥ 1.20
On X11, Cogl depends on the following extensions
• XComposite ≥ 0.4
• XDamage
• XExt
• XFixes ≥ 3
When running with OpenGL, Cogl requires at least version 1.3
or 1.2 with the multitexturing extension. However to build Cogl
you will need the latest GL headers which can be obtained from:
http://www.khronos.org
If you are building the API reference you will also need:
• GTK-Doc ≥ 1.13
If you are building the additional documentation you will also need:
• xsltproc
• jw (optional, for generating PDFs)
If you are building the Introspection data you will also need:
• GObject-Introspection ≥ 0.9.5
GObject-Introspection is available from:
git://git.gnome.org/gobject-introspection
If you want support for profiling Cogl you will also need:
• UProf ≥ 0.3
UProf is available from:
git://github.com/rib/UProf.git
DOCUMENTATION
-------------------------------------------------------------------------------
The 1.x API is documented here:
http://docs.clutter-project.org/docs/cogl/1.9
The experimental 2.0 API is documented here:
http://docs.clutter-project.org/docs/cogl-2.0-experimental/1.9
RELEASE NOTES
-------------------------------------------------------------------------------
- This is a development snapshot release so there are not API or ABI stability
guarantees at this point for new APIs since the last stable release.
- This Cogl release exports a 1.x API (For third-party Clutter
developers to write custom actors) and an experimental 2.0 API which
allows standalone application development.
- Internally Clutter depends on the Cogl 2.0 experimental API so we maintain
runtime compatibility between the 1.x API and experimental 2.0 APIs, which
means developers can mix-and-match their use of the APIs in the same
process. API selection is done per-file by including a line like: '#define
COGL_ENABLE_EXPERIMENTAL_2_0_API' before including cogl.h or clutter.h.
- We recommend using the 2.0 API if you don't mind updating your code once in
a while as this API evolves and stabilizes. We promise not to break the 2.0
API during a 1.x stable cycle and hope that will encourage people to
experiment with it and give critical feedback! For example after releasing
1.8, the 2.0 API will be stable for 1.8.1, 1.8.2, 1.8.3 etc, but may update
for 1.9/1.10.
- Because we export the 1.x and 2.0 APIs from one libcogl.so the library
versioning, and thus ABI, can only be considered as stable as our 2.0 API -
i.e. during a stable release 1.x cycle.
- Please report bugs using the Cogl Bugzilla product, at:
http://bugzilla.gnome.org/enter_bug.cgi?product=cogl
kind regards,
- Robert
More information about the Cogl
mailing list