Damien Lespiau [Fri, 9 Jul 2010 14:59:14 +0000 (15:59 +0100)]
cogl: Add Stability tag to new experimental API
Functions guarded with COGL_ENABLE_EXPERIMENTAL API should be also maked
as being Unstable with the Stability gtk-doc tag.
Fixes: http://bugzilla.clutter-project.org/show_bug.cgi?id=2175
Emmanuele Bassi [Fri, 9 Jul 2010 13:59:32 +0000 (14:59 +0100)]
script: Let ClutterActor parse behaviours
Up until now, the "behaviours" member of an actor definition was parsed
by the ClutterScript parser itself - even though it's not strictly
necessary.
In an effort to minimize the ad hoc code in the Script parser, we should
let ClutterActor handle all the special cases that involve
actor-specific members.
Emmanuele Bassi [Fri, 9 Jul 2010 10:40:00 +0000 (11:40 +0100)]
Add new tests to the ignore files
Neil Roberts [Thu, 8 Jul 2010 17:37:01 +0000 (18:37 +0100)]
Use GL_MAX_TEXTURE_SIZE on GLES when checking supported tex size
Under big GL, _cogl_texture_driver_size_supported uses the proxy
texture to check whether the given texture size is supported. Proxy
textures aren't available under GLES so previously this would just
return TRUE to assume all texture sizes are supported. This patch
makes it use glGetIntegerv with GL_MAX_TEXTURE_SIZE to give a second
best guess.
This fixes the sliced texture backend so that it will use slices when
the texture is too big.
Neil Roberts [Thu, 8 Jul 2010 17:33:45 +0000 (18:33 +0100)]
Fix cogl_texture_get_data when an intermediate buffer is used
When an intermediate buffer is used for downloading texture data it
was using the wrong byte length for a row so the copy back to the
user's buffer would fail.
Neil Roberts [Thu, 8 Jul 2010 17:31:29 +0000 (18:31 +0100)]
Use GL_NEAREST filter in the draw-and-read get_data texture fallback
The fallback for when glGetTexImage is not available renders the
texture to the framebuffer to read the data using glReadPixels. This
patch just sets the COGL_MATERIAL_FILTER_NEAREST filter mode on the
material before rendering to avoid linear filtering which would alter
the texture data.
Neil Roberts [Thu, 8 Jul 2010 17:29:12 +0000 (18:29 +0100)]
Use cogl_read_pixels in the cogl texture draw-and-read fallback
The fallback for when glGetTexImage is not available draws parts of
the texture to the framebuffer and uses glReadPixels to extract the
data. However it was using cogl_rectangle to draw and then immediately
using raw glReadPixels to fetch the data. This won't cause a journal
flush so the rectangle won't necessarily have hit the framebuffer
yet. Instead it now uses cogl_read_pixels which does flush the
journal.
Neil Roberts [Thu, 8 Jul 2010 17:28:11 +0000 (18:28 +0100)]
cogl-material: Fix some problems with flushing texture overrides
There were a few problems flushing texture overrides so that sliced
textures would not work:
* In _cogl_material_set_layer_texture it ignored the 'overriden'
parameter and always set texture_overridden to FALSE.
* cogl_texture_get_gl_texture wasn't being called correctly in
override_layer_texture_cb. It returns a gboolean to indicate the
error status but this boolean was being assigned to gl_target.
* _cogl_material_layer_texture_equal did not take into account the
override.
* _cogl_material_layer_get_texture_info did not return the overridden
texture so it would always use the first texture slice.
Neil Roberts [Thu, 8 Jul 2010 14:15:22 +0000 (15:15 +0100)]
cogl-texture: Share the common code in the set_region virtual
There was a lot of common code that was copied to all of the backends
to convert the data to a suitable format and wrap it into a CoglBitmap
so that it can be passed to _cogl_texture_driver_upload_subregion_to_gl.
This patch moves the common code to cogl-texture.c so that the virtual
just takes a CoglBitmap that is already in the right format.
Neil Roberts [Thu, 8 Jul 2010 13:25:23 +0000 (14:25 +0100)]
Add a conformance test for cogl_texture_{get_data,set_region}
This verifies that calling cogl_texture_get_data returns the same data
uploaded to the texture. The bottom quarter of the texture is replaced
using cogl_texture_set_region. It tries creating the texture with
different sizes and flags in the hope that it will hit different
texture backends.
Neil Roberts [Thu, 8 Jul 2010 12:54:37 +0000 (13:54 +0100)]
cogl-texture: Share the common code in the get_data virtual
Previously cogl_texture_get_data would pretty much directly pass on to
the get_data texture virtual function. This ended up with a lot of
common code that was copied to all of the backends. For example, the
method is expected to return the required data size if the data
pointer is NULL and to calculate its own rowstride if the rowstride is
0. Also it needs to convert the downloaded data if GL can't support
that format directly.
This patch moves the common code to cogl-texture.c so the virtual is
always called with a format that can be downloaded directly by GL and
with a valid rowstride. If the download fails then the virtual can
return FALSE in which case cogl-texture will use the draw and read
fallback.
Robert Bragg [Thu, 8 Jul 2010 18:20:33 +0000 (19:20 +0100)]
tests: don't delay/skip frames due to glReadPixel concerns
This greatly speeds up running all the conformance tests by no longer
delaying many of the tests for a number of dummy frames to be painted.
We used to skip frames because we thought there was a problem with the
driver's glReadPixels implementation. Although we have seen driver
issues at times the real reason the delay was needed was because
resizing the stage usually happens asynchronously (because a non
synchronous X request is used by clutter_stage_set_size()). We now force
all X requests to be synchronized for the conformance tests so this is
no longer a problem and we can avoid these hacks.
Neil Roberts [Wed, 7 Apr 2010 10:06:20 +0000 (11:06 +0100)]
cogl-vertex-buffer: Default to GL_CLAMP_TO_EDGE for point sprites
For point sprites you are usually drawing the whole texture so you
most often want GL_CLAMP_TO_EDGE. This patch removes the override for
COGL_MATERIAL_WRAP_MODE_AUTOMATIC when point sprites are enabled for a
layer so that it will clamp to edge.
Neil Roberts [Mon, 22 Mar 2010 13:48:27 +0000 (13:48 +0000)]
Add an interactive test for cogl point sprites
The test draws some fireworks with trailing sparks that fade out.
http://bugzilla.openedhand.com/show_bug.cgi?id=2047
Neil Roberts [Mon, 22 Mar 2010 13:33:55 +0000 (13:33 +0000)]
cogl-material: Add support for point sprites
This adds a new API call to enable point sprite coordinate generation
for a material layer:
void
cogl_material_set_layer_point_sprite_coords_enabled (CoglHandle material,
int layer_index,
gboolean enable);
There is also a corresponding get function.
Enabling point sprite coords simply sets the GL_COORD_REPLACE of the
GL_POINT_SPRITE glTexEnv when flusing the material. There is no
separate application control for glEnable(GL_POINT_SPRITE). Instead it
is left permanently enabled under the assumption that it has no affect
unless GL_COORD_REPLACE is enabled for a texture unit.
http://bugzilla.openedhand.com/show_bug.cgi?id=2047
Neil Roberts [Mon, 22 Mar 2010 09:32:17 +0000 (09:32 +0000)]
cogl-material: Add a property for setting the point size
This adds cogl_material_{get,set}_point_size. If the point size is not
1.0f then glPointSize will be called when the material is flushed.
http://bugzilla.openedhand.com/show_bug.cgi?id=2047
Neil Roberts [Thu, 8 Jul 2010 14:28:37 +0000 (15:28 +0100)]
tests/accessibility: Fix the soname for libclutter
The required .so file was named using @CLUTTER_WINSYS@ but since
bf9d5f394997 the .so should be named with @CLUTTER_SONAME_INFIX@. This
was breaking the build on eglx.
Robert Bragg [Wed, 7 Jul 2010 19:43:54 +0000 (20:43 +0100)]
material: support dumping layer state graph to dot file
Recently I added a _cogl_debug_dump_materials_dot_file function for
debugging the sparse material state. This extends the state dumped to
include the graph of layer state also.
Robert Bragg [Wed, 7 Jul 2010 18:23:57 +0000 (19:23 +0100)]
material: set ->layer_index on new layers for unit0
We were mistakenly only initializing layer->layer_index for new layers
associated with texture units > 0. This had gone unnoticed because
normally layers associated with texture unit0 have a layer index of 0
too. Mutter was hitting this issue because it was initializing layer 1
before layer 0 for one of its materials so layer 1 was temporarily
associated with texture unit 0.
Øyvind Kolås [Wed, 7 Jul 2010 17:14:43 +0000 (18:14 +0100)]
state: add clutter_state_set_state and clutter_state_warp_to_state
Replaced clutter_state_change with a boolean argument for animating the
transition or not with two separate argument-less methods.
Emmanuele Bassi [Wed, 7 Jul 2010 15:30:31 +0000 (16:30 +0100)]
build: Distcheck fixes after the Cally merge
Emmanuele Bassi [Wed, 7 Jul 2010 15:06:30 +0000 (16:06 +0100)]
Merge branch 'cally-merge'
* cally-merge:
cally: Add introspection generation
cally: Improving cally doc
cally: Cleaning CallyText
cally: Refactoring "window:create" and "window:destroy" emission code
cally: Use proper backend information on CallyActor
cally: Check HAVE_CONFIG_H on cally-util.c
docs: Fix Cally documentation
cally: Clean up the headers
Add binaries of the Cally examples to the ignore file
docs: Add Cally API reference
Avoid to load cally module on a11y examples
Add accessibility tests
Initialize accessibility support on clutter_init
Rename some methods and includes to avoid -Wshadow warnings
Cally initialization code
Add Cally
Robert Bragg [Wed, 7 Jul 2010 14:58:02 +0000 (15:58 +0100)]
test-timeline: instantiate a stage so the master clock runs
This makes test-timeline get the default stage so there is at least one
stage instantiated. Without any stages the master clock will never run
which was causing this test to fail.
Emmanuele Bassi [Wed, 7 Jul 2010 14:57:43 +0000 (15:57 +0100)]
cally: Add introspection generation
Toolkits and applications not written in C might still need access to
the Cally API to write accessibility extensions based on it for their
own native elements.
Emmanuele Bassi [Wed, 7 Jul 2010 13:50:24 +0000 (14:50 +0100)]
Restore the report on the conformance test suite
The report generation was broken by the split of the various test units;
also, we were using GTest in a way that's not really sanctioned by
upstream.
This commit tries to re-use the targets from GLib's Makefile rules while
compensating for our own set up.
Emmanuele Bassi [Wed, 7 Jul 2010 13:49:28 +0000 (14:49 +0100)]
x11: Clean up NET_WM_STATE modifiers
Use a separate function to avoid code duplication.
Emmanuele Bassi [Tue, 6 Jul 2010 16:13:55 +0000 (17:13 +0100)]
x11: Do not swallow XSettings events
We might want pieces higher in the stack (like Mx) to handle XSettings
events as well, and swallowing them by removing them from the events
queue would make it impossible.
Alejandro Piñeiro [Tue, 6 Jul 2010 14:51:24 +0000 (16:51 +0200)]
cally: Improving cally doc
* Add documentation for all undocumented symbols
* Add an overview section
Alejandro Piñeiro [Tue, 6 Jul 2010 11:28:38 +0000 (13:28 +0200)]
cally: Cleaning CallyText
* Removing superfluous g_return_if_fail
* Removing unused ClutterText::text-changed callback
Alejandro Piñeiro [Tue, 6 Jul 2010 11:25:44 +0000 (13:25 +0200)]
cally: Refactoring "window:create" and "window:destroy" emission code
Previously "window:create" and "window:destroy" were emitted on
CallyUtil. Although it works, and CallyUtil already have callbacks to
stage_added/removed signals, I think that it is more tidy/clear to do
that on CallyRoot:
* CallyRoot already has code to manage ClutterStage addition/removal
* In fact, we can see CallyRoot as the object exposing the a11y
information from ClutterStageManager, so it fits better here.
* CallyUtil callbacks these signals are related to key event
listeners (key snooper simulation). One of the main CallyUtil
responsabilities is managing event (connecting, emitting), so I
would prefer to not start to add/mix more functionalities here.
Ideally it would be better to emit all CallyStage methods from
CallyStage, but it is clear that "create" and "destroy" are more easy
to emit from a external object
Alejandro Piñeiro [Tue, 6 Jul 2010 11:36:48 +0000 (13:36 +0200)]
cally: Use proper backend information on CallyActor
It uses HAVE_CLUTTER_GLX to check the current backend in use for
some accessibility related methods.
Fixes CB#2071
Alejandro Piñeiro [Wed, 7 Jul 2010 12:05:27 +0000 (14:05 +0200)]
cally: Check HAVE_CONFIG_H on cally-util.c
Robert Bragg [Wed, 7 Jul 2010 13:41:54 +0000 (14:41 +0100)]
framebuffer: Replace CoglHandle with CoglFramebuffer *
One more object converted to stop using CoglHandle re:
a8c8cbee513
Robert Bragg [Tue, 6 Jul 2010 19:18:26 +0000 (20:18 +0100)]
material: route fogging state through CoglMaterial
Previously cogl_set_fog would cause a flush of the Cogl journal and
would directly bang the GL state machine to setup fogging. As part of
the ongoing effort to track most state in CoglMaterial to support
renderlists this now adds an indirection so that cogl_set_fog now just
updates ctx->legacy_fog_state. The fogging state then gets enabled as a
legacy override similar to how the old depth testing API is handled.
Robert Bragg [Tue, 6 Jul 2010 15:47:09 +0000 (16:47 +0100)]
osx: explicitly request depth and stencil buffer bits
This is a blind patch because I don't know enough about the osx backend
and the osx backend probably doesn't even work these days anyway but
since people have filed bugs specifically on OSX that imply they don't
have a depth or stencil buffer this tries to fix that.
Maybe someone will eventually pick up the osx backend again and verify
if this helps.
http://bugzilla.clutter-project.org/show_bug.cgi?id=1394
Robert Bragg [Tue, 6 Jul 2010 00:21:43 +0000 (01:21 +0100)]
cogl-buffer: Move malloc fallback logic into CoglBuffer
Since we'll want to share the fallback logic with CoglVertexArray this
moves the malloc based fallback (for when OpenGL doesn't support vertex
or pixel buffer objects) into cogl-buffer.c.
Robert Bragg [Mon, 5 Jul 2010 22:32:55 +0000 (23:32 +0100)]
cogl-buffer: consider it an error to free a mapped buffer
Explicitly warn if we detect that a CoglBuffer is being freed while it
is still mapped. Previously we silently unmapped the buffer, but it's
not something we want to encourage.
Robert Bragg [Mon, 5 Jul 2010 22:24:34 +0000 (23:24 +0100)]
cogl-buffer: Track the last used bind target in CoglBuffer
This makes CoglBuffer track the last used bind target as a private
property. This is later used when binding a buffer to map instead of
always using the PIXEL_UNPACK target.
This also adds some additional sanity checks that code doesn't try to
nest binds to the same target or bind a buffer to multiple targets at
the same time.
Robert Bragg [Wed, 7 Jul 2010 12:38:10 +0000 (13:38 +0100)]
tests: Force X synchronization so the stage size is reliable
Normally the asynchronous nature of X means that setting the clutter
stage size may really happen an indefinite amount of time later but
since the tests are so short lived and may only render a single frame
this is not an acceptable semantic.
This way we should be able to remove all the hacky sleeps and frame
count delays from our tests.
Robert Bragg [Wed, 7 Jul 2010 12:31:35 +0000 (13:31 +0100)]
tests: no longer clean up state between tests
Since we now run every test in a separate process there is no need to
try and avoid state leakage between tests. This removes the code to
cleanup all children of the stage and disconnect handlers from the
stage paint signal. We now explicitly print a warning if the users tries
to run multiple tests in one process.
Robert Bragg [Tue, 6 Jul 2010 01:01:24 +0000 (02:01 +0100)]
cogl: expose the semantic differences of gl/gles2 npot textures
This adds three new feature flags COGL_FEATURE_TEXTURE_NPOT_BASIC,
COGL_FEATURE_TEXTURE_NPOT_MIPMAP and COGL_FEATURE_TEXTURE_NPOT_REPEAT
that can tell you if your hardware supports non power of two textures,
npot textures + mipmaps and npot textures + wrap modes other than
CLAMP_TO_EDGE.
The pre-existing COGL_FEATURE_TEXTURE_NPOT feature implies all of the
above.
By default GLES 2 core supports npot textures but mipmaps and repeat
modes can only be used with power of two textures. This patch also makes
GLES check for the GL_OES_texture_npot extension to determine if mipmaps
and repeating are supported with npot textures.
Neil Roberts [Tue, 6 Jul 2010 15:08:06 +0000 (16:08 +0100)]
cogl-vertex-buffer: Fix the #define for glDisableVertexAttribArray
glDisableVertexAttribArray was defined to glEnableVertexAttribArray so
it would probably cause crashes if it was ever used. Presumably
nothing is using these yet because the generic attributes are not yet
tied to shader attributes in a predictable way.
Robert Bragg [Tue, 6 Jul 2010 13:23:40 +0000 (14:23 +0100)]
configure: Improves GLES 1.x checks
We now always aim to use pkg-config based configuration when possible,
but when not configure.ac now knows the difference between GLES_CM
libraries that contain EGL symbols (I.e. a separate EGL library doesn't
need to be found) and GLESv1_CM libraries that don't contain EGL
symbols.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2160
Øyvind Kolås [Tue, 6 Jul 2010 13:26:07 +0000 (14:26 +0100)]
test-state: fix test for state count after state removal
In the .json file used for the test, there is no null -> "base"
transition defined only a "clicked" -> "base", when the "clicked" state
is removed the "base" state will also disappear.
Øyvind Kolås [Tue, 6 Jul 2010 12:38:16 +0000 (13:38 +0100)]
animator: fix removal of multiple keys
When removing keys, sometimes a couple of keys would be remaining.
Øyvind Kolås [Tue, 6 Jul 2010 12:47:49 +0000 (13:47 +0100)]
state: added clutter_state_key_get_property_type
A function to retrieve the type of the value stored in a key, the
equivalent already exists for ClutterAnimator.
Øyvind Kolås [Tue, 6 Jul 2010 12:34:22 +0000 (13:34 +0100)]
state: automatically remove unused states
When there is no further keys with a state as the target state, remove
the state (and all transitions that used this state as a target)
Alexandros Frantzis [Tue, 6 Jul 2010 12:24:00 +0000 (13:24 +0100)]
build: Exclude built sources from the dist
http://bugzilla.clutter-project.org/show_bug.cgi?id=2169
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
Damien Lespiau [Sun, 6 Jun 2010 21:47:02 +0000 (22:47 +0100)]
build: Allow to run the tests from any directory
I was fed up to cd into the tests/conform or tests/interactive directories
to launch a specific test. Now, with the power the abs_ variants of
builddir and srcdir we can run specific test from any directory.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2159
Robert Bragg [Tue, 6 Jul 2010 00:30:25 +0000 (01:30 +0100)]
debug: Adds a COGL_DEBUG=disable-pbos debug option
For testing purposes, either to identify bugs in Cogl or the driver or
simulate lack of PBO support COGL_DEBUG=disable-pbos can be used to
fallback to malloc instead.
Robert Bragg [Sat, 3 Jul 2010 18:05:04 +0000 (19:05 +0100)]
pango-render: set CLAMP_TO_EDGE wrap mode on glyph_material
The pango renderer was causing lots of override materials to be allocated
because the vertex_buffer API converts AUTOMATIC mode into REPEAT for
backwards compatibility. By explicitly setting the wrap mode to
CLAMP_TO_EDGE when creating the glyph_material then the vertex_buffer
API will leave it untouched.
Robert Bragg [Mon, 5 Jul 2010 15:14:00 +0000 (16:14 +0100)]
pixel-array: Allow passing of hints to cogl_buffer_map
This allows you to tell Cogl that you are planning to replace all the
buffer's data once it is mapped with cogl_buffer_map. This means if the
buffer is currently being accessed by the GPU then the driver doesn't
have to stall and wait for it to finish before it can access it from the
CPU and can instead potentially allocate a new buffer with undefined
data and map that.
Robert Bragg [Mon, 5 Jul 2010 18:49:35 +0000 (19:49 +0100)]
test-cogl-pixel-array: fix how data is initialized
There was a missing '* 4' and '* i' in the for() loops that initialized
the first test buffer, so it was containing uninitialized data causing
the test to fail.
Emmanuele Bassi [Tue, 6 Jul 2010 10:57:16 +0000 (11:57 +0100)]
moduleset: Update cairo and pixman versions
The gtk+ we use for clutter-gtk depends on a new version of Cairo.
Emmanuele Bassi [Tue, 6 Jul 2010 10:42:08 +0000 (11:42 +0100)]
moduleset: Remove libXft
The system one should be enough.
Emmanuele Bassi [Mon, 5 Jul 2010 14:10:42 +0000 (15:10 +0100)]
docs: Fix Cally documentation
Emmanuele Bassi [Mon, 5 Jul 2010 13:43:18 +0000 (14:43 +0100)]
cally: Clean up the headers
Make Cally follow the single-include header file policy of Clutter and
Cogl; this means making cally.h the single include header, and requires
a new cally-main.h file for the functions defined by cally.h.
Also:
• clean up the licensing notice and remove the FSF address;
• document the object structures (instance and class);
• G_GNUC_CONST-ify the get_type() functions;
• reduce the padding for CallyActor sub-classes;
• reduce the amount of headers included.
Emmanuele Bassi [Mon, 5 Jul 2010 13:00:29 +0000 (14:00 +0100)]
Add binaries of the Cally examples to the ignore file
Emmanuele Bassi [Mon, 5 Jul 2010 12:59:36 +0000 (13:59 +0100)]
docs: Add Cally API reference
Alejandro Piñeiro [Tue, 27 Apr 2010 10:08:42 +0000 (12:08 +0200)]
Avoid to load cally module on a11y examples
As cally is being integrated on clutter is not required to load
cally module anymore. Anyway, it is still required to load
the atk bridge by hand. The current way to load it could change
in the future, more information here:
https://bugzilla.gnome.org/show_bug.cgi?id=612599
https://bugzilla.gnome.org/show_bug.cgi?id=619946
Part [4/4] of CB#2099
Alejandro Piñeiro [Mon, 26 Apr 2010 18:07:22 +0000 (20:07 +0200)]
Add accessibility tests
http://bugzilla.clutter-project.org/show_bug.cgi?id=2099
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
Alejandro Piñeiro [Mon, 26 Apr 2010 17:33:49 +0000 (19:33 +0200)]
Initialize accessibility support on clutter_init
Initialize the accessibility support calling cally_accessibility_init
Take into account that this is required to at least be sure that
CallyUtil class is available.
It also modifies cally_accessibility_module_init in order to return
if the initialization was fine (and the name, removing the module word).
It also removes the gnome accessibility hooks, as it is not anymore
module code.
Solves CB#2098
Alejandro Piñeiro [Tue, 15 Jun 2010 11:45:19 +0000 (13:45 +0200)]
Rename some methods and includes to avoid -Wshadow warnings
http://bugzilla.clutter-project.org/show_bug.cgi?id=2097
Alejandro Piñeiro [Mon, 14 Jun 2010 16:05:57 +0000 (18:05 +0200)]
Cally initialization code
This commit includes a method to init the a11y support. Two main purposes:
* Register the different Atk factories.
* Ensure that there are a AtkUtil implementation class available.
Part of CB#2097
Alejandro Piñeiro [Mon, 14 Jun 2010 11:38:25 +0000 (13:38 +0200)]
Add Cally
The Clutter Accessibility Library is an implementation of the ATK,
the Accessibility Toolkit, which exposes Clutter actors to accessibility
tools. This allows not only writing accessible user interfaces, but also
allows testing and verification frameworks based on A11Y technologies to
inspect and test a Clutter scene graph.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2097
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
Emmanuele Bassi [Mon, 5 Jul 2010 15:45:19 +0000 (16:45 +0100)]
Update conformance Git ignore file
Robert Bragg [Mon, 5 Jul 2010 15:17:34 +0000 (16:17 +0100)]
conform: don't reference old test_cogl_pixel_buffer symbol
Since CoglPixelBuffer was renamed to CoglPixelArray the test entry point
was also renamed to test_cogl_pixel_array, but mistakenly the
corresponding test-conform-main.c change wasn't pushed at the same time.
Robert Bragg [Sat, 3 Jul 2010 20:11:33 +0000 (21:11 +0100)]
cogl-object: cogl_is_XYZ prototype should take void *
This changes the cogl_is_XYZ function prototypes generated when using
the COGL_OBJECT_DEFINE macro to take a void * argument instead of a
CoglHandle argument.
Robert Bragg [Sat, 3 Jul 2010 23:49:31 +0000 (00:49 +0100)]
pixel-array: Only allow allocation of arrays with a 2D size
This removes cogl_pixel_array_new which just took a size in bytes.
Without the image size and pixel format then the driver often doesn't
have enough information to allocate optimal GPU memory that can be
textured from directly. This is because GPUs often have ways to
spatially alter the layout of a texture to improve cache access patterns
which may require special alignment and padding dependant in the images
width, height and bpp.
Although currently we are limited by OpenGL because it doesn't let us
pass on the width and height when allocating a PBO, the hope is that we
can define a better extension at some point.
Robert Bragg [Sat, 3 Jul 2010 23:45:12 +0000 (00:45 +0100)]
pixel-array: rename new_from_size to new_with_size
It is more in keeping with other coding conventions in Cogl to use new
"with" size instead of new "from" size.
Robert Bragg [Sat, 3 Jul 2010 23:18:10 +0000 (00:18 +0100)]
cogl-buffer-private.h: cleanup up the coding style
This file was following the Clutter coding style of arranging prototypes
into columns which Cogl doesn't copy.
Robert Bragg [Sat, 3 Jul 2010 22:46:03 +0000 (23:46 +0100)]
rename CoglPixelBuffer to CoglPixelArray
This renames CoglPixelBuffer to CoglPixelArray to be consistent with the
new CoglVertexArray API.
Robert Bragg [Sat, 3 Jul 2010 20:30:33 +0000 (21:30 +0100)]
cogl-buffer: make the COGL_BUFFER_USAGE_HINT private
The usage hint should be implied by the CoglBuffer subclass type so the
public getter and setter APIs for manually changing the usage hint of a
CoglBuffer have now been removed.
Robert Bragg [Sat, 3 Jul 2010 22:56:44 +0000 (23:56 +0100)]
cogl-buffer: Handle subclass registration like cogl-texture
Instead of having to extend cogl_is_buffer with new buffer types
manually this now adds a new COGL_BUFFER_DEFINE macro to be used instead
of COGL_OBJECT_DEFINE for CoglBuffer subclasses. This macro will
automatically register the new type with ctx->buffer_types which will
iterated by cogl_is_buffer. This is the same coding pattern used for
CoglTexture.
Robert Bragg [Sat, 3 Jul 2010 19:24:36 +0000 (20:24 +0100)]
pixel-buffer: Replace CoglHandle with CoglPixelBuffer *
One more file converted to stop using CoglHandle re:
a8c8cbee513
Robert Bragg [Fri, 2 Jul 2010 17:04:45 +0000 (18:04 +0100)]
cogl-material: Adds debug api to dump sparse material graph
This adds a _cogl_debug_dump_materials_dot_file function that can be
used to dump all the descendants of the default material to a file using
the dot format which can then be converted to an image to visualize.
Robert Bragg [Sun, 4 Jul 2010 01:44:37 +0000 (02:44 +0100)]
cogl-vertex-buffer.h: #include <cogl/cogl-defines.h>
cogl-vertex-buffer.h was assuming that the platforms GL headers had
already been included but that shouldn't have to be the case.
Robert Bragg [Sat, 3 Jul 2010 20:10:05 +0000 (21:10 +0100)]
cogl-object-private.h: #include glib.h and cogl-types.h
cogl-object-private.h was only working in places that had already
included glib.h and cogl-types.h
Robert Bragg [Sat, 3 Jul 2010 17:44:47 +0000 (18:44 +0100)]
material: don't keep extra ref on copy-on-write materials
In _cogl_material_pre_change_notify if a material with descendants is
modified then we create a new material that is a copy of the one being
modified and reparent those descendants to the new material.
This patch ensures we drop the reference we get from cogl_material_copy
since we can rely on the descendants to keep the new material alive.
Robert Bragg [Fri, 2 Jul 2010 00:07:36 +0000 (01:07 +0100)]
build: Fix GLES builds since the material backend split
The commit to split the fragment processing backends out from
cogl-material.c (
3e1323a6362906a95) broke the GLES 1 and 2 builds the
fix was to guard the code in each backend according to the
COGL_MATERIAL_BACKEND_XYZ defines which are setup in
cogl-material-private.h.
Emmanuele Bassi [Fri, 2 Jul 2010 16:48:19 +0000 (17:48 +0100)]
docs: Add a cogl-paths section
The path primitives have a specific section, now, and gtk-doc is loudly
complaining about it being defined but not referenced.
Øyvind Kolås [Fri, 2 Jul 2010 15:44:54 +0000 (16:44 +0100)]
state: rename property "target-state" to "state"
This reduces the amount of typing, and should provide for more readable
code for most uses of ClutterState.
Neil Roberts [Fri, 2 Jul 2010 15:19:48 +0000 (16:19 +0100)]
Convert the ASCII art documentation in cogl-vertex-buffer to PNGs
The documentation for cogl_vertex_buffer_indices_get_for_quads was
using ugly ASCII art to draw the diagrams. These have now been
replaced with PNG figures.
Neil Roberts [Fri, 2 Jul 2010 12:49:34 +0000 (13:49 +0100)]
Add CoglMaterialWrapMode to the Cogl docs and fix docs for the getters
CoglMaterialWrapMode was missing from the cogl-sections.txt file so it
wasn't getting displayed. There were also no documented return values
from the getters.
Emmanuele Bassi [Fri, 2 Jul 2010 10:38:22 +0000 (11:38 +0100)]
align-constraint: Offset the position after the alignment factor
Instead of aligning (pos + size), align on size alone, and then offset
by pos.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2168
Neil Roberts [Thu, 1 Jul 2010 19:34:59 +0000 (20:34 +0100)]
Fix building the tesselator code for GLES
The tesselator code uses some defines that it expects to be in the GL
headers such as GLAPI and GLAPIENTRY. These are used to mark the entry
points as exportable on each platform. We don't really want the
tesselator code to use these but we also don't want to modify the C
files so instead they are #defined to be empty in the stub glu.h. That
header is only included internally when building the tesselator/ files
so it shouldn't affect the rest of Cogl.
GLES also doesn't have a GLdouble type so we just #define this to be a
regular double.
Emmanuele Bassi [Thu, 1 Jul 2010 15:05:41 +0000 (16:05 +0100)]
cookbook: Fix up the textures section
Emmanuele Bassi [Thu, 1 Jul 2010 14:59:15 +0000 (15:59 +0100)]
cookbook: Fix examples
Neil Roberts [Thu, 1 Jul 2010 14:27:03 +0000 (15:27 +0100)]
cogl-material: Don't doubly ref the parent in cogl_material_copy
cogl_material_copy was taking a reference on the original texture when
making a copy. However it then calls _cogl_material_set_parent on the
material which also takes a reference on the parent. The second
reference is cleaned up whenever _cogl_material_unparent is called and
this is also called by _cogl_material_free. However, it seems that
nothing was cleaning up the first reference. I think the reference is
entirely unnecessary so this patch removes it.
Emmanuele Bassi [Thu, 1 Jul 2010 13:09:37 +0000 (14:09 +0100)]
align-constraint: Follow the position of the source
The AlignConstraint update is using only the width/height of the source,
but it should also take into account the position.
Also, instead of using the ::notify signal, it should follow the
BindConstraint, and switch to the ::allocation-changed signal, since
it's less expensive (one emission instead of four notifications, one for
each property we use).
Robert Bragg [Thu, 1 Jul 2010 11:21:25 +0000 (12:21 +0100)]
cogl: don't include cogl-vector.h twice in cogl.h
cogl-vector.h should only be included by cogl.h when
COGL_ENABLE_EXPERIMENTAL_API is defined. This removes the unguarded
duplicate include.
Emmanuele Bassi [Thu, 1 Jul 2010 11:17:01 +0000 (12:17 +0100)]
cookbook: Clean up build
Create two HTML versions of the cookbook:
• single page
• multiple pages
Use the online version of the DocBook XHTML XSL, and disable the PDF
generation until we can restore it.
Emmanuele Bassi [Thu, 1 Jul 2010 10:29:46 +0000 (11:29 +0100)]
cookbook: Split the cookbook chapters
Use separate files, to avoid making the XML too big and uneditable.
This breaks the PDF build.
Emmanuele Bassi [Thu, 1 Jul 2010 10:08:51 +0000 (11:08 +0100)]
cookbook: Fix up the examples
Robert Bragg [Wed, 30 Jun 2010 17:06:04 +0000 (18:06 +0100)]
cogl: declare experimental symbols consistently
We had several different ways of exposing experimental API, in one case
the symbols had no special suffix, in two other ways the symbols were
given an _EXP suffix but in different ways.
This makes all experimental API have an _EXP suffix which is handled
using #defines in the header so the prototypes in the .c and .h files
don't have the suffix.
The documented reason for the suffix is so that anyone watching Cogl for
ABI changes who sees symbols disappear will hopefully understand what's
going on.
Emmanuele Bassi [Wed, 30 Jun 2010 16:26:34 +0000 (17:26 +0100)]
cookbook: Fix entity typo
Emmanuele Bassi [Wed, 30 Jun 2010 16:18:15 +0000 (17:18 +0100)]
cookbook: Re-style
Use a modified version of the Poky Handbook CSS for the HTML version of
the Cookbook.
Promote Elliot as author.
Re-license from the GPLv2.0 to the CC BY-NC-SA 2.0.
Neil Roberts [Wed, 30 Jun 2010 14:51:52 +0000 (15:51 +0100)]
cogl/tesselator: Update to the latest code from GLU
This grabs the latest code for libtess from git Mesa. This is mostly
so that we can get the following commit which fixes a lot of compiler
warnings in Clutter:
commit
75acb896c6da758d03e86f8725d6ca0cb2c6ad82
Author: Neil Roberts <neil@linux.intel.com>
Date: Wed Jun 30 12:41:11 2010 +0100
glu: Fix some compiler warnings in libtess
When compiled with the more aggressive compiler warnings such as
-Wshadow and -Wempty-body the libtess code gives a lot more
warnings. This fixes the following issues:
* The 'Swap' macro tries to combine multiple statements into one and
then consume the trailing semicolon by using if(1){/*...*/}else.
This gives warnings because the else part ends up with an empty
statement. It also seems a bit dangerous because if the semicolon
were missed then it would still be valid syntax but it would just
ignore the following statement. This patch replaces it with the more
common idiom do { /*...*/ } while(0).
* 'free' was being used as a local variable name but this shadows the
global function. This has been renamed to 'free_handle'
* TRUE and FALSE were being unconditionally defined. Although this
isn't currently a problem it seems better to guard them with #ifndef
because it's quite common for them to be defined in other headers.
https://bugs.freedesktop.org/show_bug.cgi?id=28845
Emmanuele Bassi [Wed, 30 Jun 2010 14:50:47 +0000 (15:50 +0100)]
docs: Various fixes for gtk-doc
Emmanuele Bassi [Wed, 30 Jun 2010 14:00:01 +0000 (15:00 +0100)]
backend: Move one-off free in finalize()
Instead of using dispose().