mutter/doc/reference/cogl-2.0-experimental/cogl-2.0-experimental-docs.xml.in
Neil Roberts b6b9ac0b85 Add a cogl-version header
This adds a version header which contains macros to define which
version of Cogl the application is being compiled against. This helps
applications that want to support multiple incompatible versions of
Cogl at compile time.

The macros are called COGL_VERSION_{MAJOR,MINOR,MICRO}. This does not
match Clutter which names them CLUTTER_{MAJOR,MINOR,MICRO}_VERSION but
I think the former is nicer and it at least matches Cairo and Pango.

The values of the macro are defined to COGL_VERSION_*_INTERNAL which
is generated by the configure script into cogl-defines.h.

There is also a macro for the entire version as a string called
COGL_VERSION_STRING.

The internal utility macros for encoding a 3 part version number into
a single integer have been moved into the new header so they can be
used publicly as a convenient way to check if the version is within a
particular range. There is also a COGL_VERSION_CHECK macro for the
very common case that a feature will be used since a particular
version of Cogl. There is a macro called COGL_VERSION which contains
the pre-encoded version of Cogl being compiled against for
convenience.

Unlike in Clutter this patch does not add any runtime version
identification mechanism.

A test case is also added which just contains static asserts to sanity
check the macros.

Reviewed-by: Robert Bragg <robert@linux.intel.com>

(cherry picked from commit 3480cf140dc355fa87ab3fbcf0aeeb0124798a8f)
2012-08-06 14:27:40 +01:00

212 lines
6.8 KiB
XML

<?xml version="1.0"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
<!ENTITY version "@VERSION@">
]>
<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
<bookinfo>
<title>Cogl 2.0 Reference Manual</title>
<releaseinfo>for Cogl 2.0;</releaseinfo>
<copyright>
<year>2008</year>
<holder>OpenedHand LTD</holder>
</copyright>
<copyright>
<year>2009</year>
<year>2010</year>
<year>2011</year>
<year>2012</year>
<holder>Intel Corporation</holder>
</copyright>
<legalnotice>
<para>
Permission is granted to copy, distribute and/or modify this
document under the terms of the <citetitle>GNU Free
Documentation License</citetitle>, Version 1.1 or any later
version published by the Free Software Foundation with no
Invariant Sections, no Front-Cover Texts, and no Back-Cover
Texts. You may obtain a copy of the <citetitle>GNU Free
Documentation License</citetitle> from the Free Software
Foundation by visiting <ulink type="http"
url="http://www.fsf.org">their Web site</ulink> or by writing
to:
<address>
The Free Software Foundation, Inc.,
<street>59 Temple Place</street> - Suite 330,
<city>Boston</city>, <state>MA</state> <postcode>02111-1307</postcode>,
<country>USA</country>
</address>
</para>
</legalnotice>
</bookinfo>
<chapter>
<title>Cogl - a modern 3D graphics API</title>
<section id="cogl-intro">
<title>About Cogl</title>
<para>Cogl is a modern 3D graphics API with associated utility
APIs designed to expose the features of 3D graphics hardware
using a more object oriented design than OpenGL. The library has
primarily been driven by the practical needs of Clutter but it
is not tied to any one toolkit or even constrained to developing
UI toolkits.</para>
</section>
<xi:include href="xml/cogl-object.xml"/>
<xi:include href="xml/cogl-context.xml"/>
<xi:include href="xml/cogl-poll.xml"/>
<section id="cogl-pipeline-apis">
<title>Setting Up A GPU Pipeline</title>
<xi:include href="blend-strings.xml"/>
<xi:include href="xml/cogl-pipeline.xml"/>
<xi:include href="xml/cogl-snippet.xml"/>
</section>
<section id="cogl-buffer-apis">
<title>Allocating GPU Memory</title>
<xi:include href="xml/cogl-buffer.xml"/>
<xi:include href="xml/cogl-attribute-buffer.xml"/>
<xi:include href="xml/cogl-index-buffer.xml"/>
</section>
<section id="cogl-buffer-layout-apis">
<title>Describing the layout of GPU Memory</title>
<xi:include href="xml/cogl-attribute.xml"/>
<xi:include href="xml/cogl-indices.xml"/>
</section>
<section id="cogl-primitive-apis">
<title>Geometry</title>
<xi:include href="xml/cogl-primitive.xml"/>
<xi:include href="xml/cogl-paths.xml"/>
<xi:include href="xml/cogl-rectangle.xml"/>
</section>
<section id="cogl-textures">
<title>Textures</title>
<xi:include href="xml/cogl-texture.xml"/>
</section>
<section id="cogl-meta-textures">
<title>Meta Textures</title>
<xi:include href="xml/cogl-meta-texture.xml"/>
<xi:include href="xml/cogl-sub-texture.xml"/>
<xi:include href="xml/cogl-texture-2d-sliced.xml"/>
<xi:include href="xml/cogl-texture-pixmap-x11.xml"/>
</section>
<section id="cogl-primitive-textures">
<title>Primitive Textures</title>
<xi:include href="xml/cogl-primitive-texture.xml"/>
<xi:include href="xml/cogl-texture-2d.xml"/>
<xi:include href="xml/cogl-texture-3d.xml"/>
<xi:include href="xml/cogl-texture-rectangle.xml"/>
</section>
<xi:include href="xml/cogl-clipping.xml"/>
<section id="cogl-framebuffer-apis">
<title>Framebuffers</title>
<xi:include href="xml/cogl-framebuffer.xml"/>
<xi:include href="xml/cogl-offscreen.xml"/>
</section>
<section id="cogl-utilities">
<title>Utilities</title>
<xi:include href="xml/cogl-color.xml"/>
<xi:include href="xml/cogl-matrix.xml"/>
<xi:include href="xml/cogl-vector.xml"/>
<xi:include href="xml/cogl-quaternion.xml"/>
<xi:include href="xml/cogl-types.xml"/>
<xi:include href="xml/cogl-version.xml"/>
</section>
<section id="cogl-integration">
<title>Binding and Integrating</title>
<xi:include href="xml/cogl-sdl.xml"/>
<xi:include href="xml/cogl-gtype.xml"/>
</section>
</chapter>
<chapter id="coglglossary">
<title>Glossaries</title>
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
</chapter>
<index>
<title>Index of all symbols</title>
<xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
</index>
<index role="deprecated">
<title>Index of deprecated symbols</title>
<xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
</index>
<index role="0.8">
<title>Index of new symbols in 0.8</title>
<xi:include href="xml/api-index-0.8.xml"><xi:fallback /></xi:include>
</index>
<index role="1.0">
<title>Index of new symbols in 1.0</title>
<xi:include href="xml/api-index-1.0.xml"><xi:fallback /></xi:include>
</index>
<index role="1.2">
<title>Index of new symbols in 1.2</title>
<xi:include href="xml/api-index-1.2.xml"><xi:fallback /></xi:include>
</index>
<index role="1.4">
<title>Index of new symbols in 1.4</title>
<xi:include href="xml/api-index-1.4.xml"><xi:fallback /></xi:include>
</index>
<appendix id="license">
<title>License</title>
<para>
This library is free software; you can redistribute it and/or
modify it under the terms of the <citetitle>GNU Library General
Public License</citetitle> as published by the Free Software
Foundation; either version 2 of the License, or (at your option)
any later version.
</para>
<para>
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
<citetitle>GNU Library General Public License</citetitle> for
more details.
</para>
<para>
You may obtain a copy of the <citetitle>GNU Library General
Public License</citetitle> from the Free Software Foundation by
visiting <ulink type="http" url="http://www.fsf.org">their Web
site</ulink> or by writing to:
<address>
Free Software Foundation, Inc.
<street>59 Temple Place</street> - Suite 330
<city>Boston</city>, <state>MA</state> <postcode>02111-1307</postcode>
<country>USA</country>
</address>
</para>
</appendix>
</book>