Emmanuele Bassi [Tue, 2 Feb 2010 12:54:51 +0000 (12:54 +0000)]
behaviour: Clean up BehaviourOpacity
• Use a consistent coding style
• Call set_bounds() from set_property(), because we need proper
notification on the modified property
Emmanuele Bassi [Mon, 1 Feb 2010 15:47:50 +0000 (15:47 +0000)]
event: Unify the off-stage motion events delivery behaviour
When we disable the per-actor events delivery Clutter replicates the X11
implicit soft grab for motion events with off-stage. The implicit grab
is done whenever the pointer of a device leaves a window with a button
still pressed; with the implicit grab in place the window still receives
motion events even after the LeaveNotify - until the button is released.
The implicit grab is not honoured in the per-actor event deliver case,
though, so we have a mismatch between two in theory equivalent cases.
Luckily, the fix is pretty trivial: when we check for a motion event
with a stage set but without an actor set, and that has off-stage
coordinates, we arbitrarily set the source to be the stage of the event
and emit the pointer event.
Emmanuele Bassi [Mon, 1 Feb 2010 14:53:13 +0000 (14:53 +0000)]
build: -Wformat is required for -Wformat-security
GCC will ignore -Wformat-security without -Wformat on the same compiler
flags.
Emmanuele Bassi [Mon, 1 Feb 2010 14:48:50 +0000 (14:48 +0000)]
build: Retrieve X11 cflags and libraries
When using pkg-config to check for the x11 package compiler flags and
libraries we actually need to retrieve those values from the pc file.
This should also fix the issue with non-canonical installations of the
X11 headers and shared objects.
http://bugzilla.openedhand.com/show_bug.cgi?id=1966
Emmanuele Bassi [Mon, 1 Feb 2010 12:18:10 +0000 (12:18 +0000)]
actor: Reword the allocation cycle warning
Since we're allowing allocation cycles saying that calling
queue_relayout() inside an allocation cycle "is not allowed" is kind of
confusing. We should say that "it is not recommended".
Emmanuele Bassi [Mon, 1 Feb 2010 11:26:56 +0000 (11:26 +0000)]
Merge branch 'device-manager'
* device-manager: (37 commits)
x11: Re-enable XI1 extension keyboards
x11: Always handle core device events before XI events
docs: Documentation fixes for DeviceManager
device-manager: Fix the signals definition
docs: Add sections for InputDevice and DeviceManager
docs: Add clutter_input_device_get_device_name()
tests: Print out the device details on motion
Always register core devices
device: Remove unused is_default member
win32: Experimental implementation of device support
tests: Print the device name, as well as its Id
x11: Fill out the :name property of the InputDevices
device: Add the :name property to InputDevice
x11: Store core devices on the X11 Backend singleton
device: Unset the cursor actor when leaving the stage
device: Add pointer actor getter
x11: Discard the LeaveNotify for off-stage ButtonRelease
device: Do not overwrite the stage for an InputDevice
event: Off-stage button releases have a click count of 1
event: Scroll events do not have click count
...
Alejandro Piñeiro [Mon, 25 Jan 2010 15:13:58 +0000 (16:13 +0100)]
Fix problems with "position" and "selection-bound" change notification
Added a "selection-bound" notify on clutter_text_clear_selection as it
changes the value.
Added utility function clutter_text_set_positions, in order to
change both cursor position and selection bound inside a
g_object_[freeze/thaw]_notify block
Added g_object_[freeze/thaw]_notify in other functions that changes
both cursor position and selection bound
Solves http://bugzilla.openedhand.com/show_bug.cgi?id=1955
Emmanuele Bassi [Mon, 1 Feb 2010 11:04:59 +0000 (11:04 +0000)]
stage: Add :key-focus property
ClutterStage has both set_key_focus() and get_key_focus() methods, but
there is no :key-focus property. This means that it is not possible to
get notifications when the key-focus has changes except by connecting to
both the ::key-focus-in and ::key-focus-out signals and do additional
bookkeeping.
http://bugzilla.openedhand.com/show_bug.cgi?id=1956
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
Emmanuele Bassi [Fri, 29 Jan 2010 10:13:57 +0000 (10:13 +0000)]
docs: Update the README
Clean up the grammar and some wrinkles in the text.
Emmanuele Bassi [Fri, 29 Jan 2010 09:31:13 +0000 (09:31 +0000)]
docs: Update the configure switches in the README
Emmanuele Bassi [Fri, 29 Jan 2010 09:29:53 +0000 (09:29 +0000)]
build: Warn with --disable-conformance and --enable-gcov
When building Clutter without conformance test suite we ought to warn
the user that the coverage report is not going to be accurate.
Emmanuele Bassi [Fri, 29 Jan 2010 09:29:37 +0000 (09:29 +0000)]
Remove tabs from configure.ac
Emmanuele Bassi [Fri, 29 Jan 2010 09:26:47 +0000 (09:26 +0000)]
build: Allow disabling the conformance test suite
When building Clutter for packaging on headless boxes it's pointless to
allow building the conformance test to be built (and run on 'make
check').
Emmanuele Bassi [Wed, 27 Jan 2010 21:26:26 +0000 (21:26 +0000)]
Whitespace fixes in cogl-util
Emmanuele Bassi [Wed, 27 Jan 2010 21:16:28 +0000 (21:16 +0000)]
Whitespace fixes
Emmanuele Bassi [Wed, 27 Jan 2010 21:14:43 +0000 (21:14 +0000)]
docs: Fixes for TimeoutPool and Frame sources
The TimeoutPool is not used by ClutterTimeline any more, so we need to
remove a sentence from its description. We also need to fix the gtk-doc
syntax errors.
Neil Roberts [Fri, 22 Jan 2010 18:14:57 +0000 (18:14 +0000)]
cogl: Use the colours of COGL_DEBUG=rectangles to debug batching
Instead of assigning a new colour to each quad of a batch, the
rectangle debugging code now assigns a new colour to each batch so
that it can be used to visually see what is being batched. The colour
is stored in a global variable that is reset during cogl_clear. This
improves the chances that the same colour will be used for a batch in
the next frames to avoid flickering.
Neil Roberts [Tue, 26 Jan 2010 13:46:27 +0000 (13:46 +0000)]
cogl-vertex-buffer: Fix disabling the texture arrays from previous prim
When setting up the state for the vertex buffer,
enable_state_for_drawing_buffer tries to keep track of the highest
numbered texture unit in use. It then disables any texture arrays for
units that were previously enabled if they are greater than that
number. However if there is no texturing in the VBO then the max used
unit would be left at 0 which it would later think meant unit 0 is
still in use so it wouldn't disable it. To fix this it now initialises
the max used unit to -1 which it should interpret as ‘no units are in
use’ so it will later disable the arrays for all units.
Thanks to Jon Mayo for reporting the bug.
http://bugzilla.openedhand.com/show_bug.cgi?id=1957
Neil Roberts [Wed, 27 Jan 2010 12:06:22 +0000 (12:06 +0000)]
docs: Add some notes about the CoglPixelFormat enums
The pixel format enums didn't explain what order in memory the
components should be so it was difficult to use them.
Neil Roberts [Wed, 27 Jan 2010 11:02:34 +0000 (11:02 +0000)]
docs: Fix some of the examples for the animation docs
In the example for clutter_actor_animate the "x" and "y" properties
are floats so they need to be passed float values in the var args
otherwise it will crash. There was also a missing comma.
There were some other minor problems with the behaviours example which
would cause it not to compile.
Damien Lespiau [Tue, 26 Jan 2010 18:47:25 +0000 (18:47 +0000)]
cogl: Fix checks of the number of available texture units
We were checking the number of texture units against the GL enum that is
used in glGetInteger() to query that number. Let's abstract this in a
little function.
Took the opportunity to dig a bit on the usage of GL limits for the
number of texture (image) units and document our use of them. We'll need
something finer grained if we want to fully exploit texture image units
with a programmable pipeline.
Damien Lespiau [Sun, 15 Nov 2009 20:17:47 +0000 (20:17 +0000)]
cogl: Fix gl equivalent of blend string
An example of what could be the equivalent of
"RBG = REPLACE(TEXTURE)
A = MODULATE(PREVIOUS,TEXTURE)"
using the ARB_texture_env_combine extension was given, but it seems that
a few typo were left:
* remove a spurius GL_COMBINE_ALPHA
* use the _ALPHA variant of SRCN and OPERANDN when setting up the
alpha combiner
Damien Lespiau [Wed, 18 Nov 2009 01:13:11 +0000 (01:13 +0000)]
tests: blend-string: use g_assert_cmpint
It's very useful to see the actual number the reference value is
compared too when the test fails. GTest has g_assert_cmp$type()
functions for that, so make good use of them.
Damien Lespiau [Tue, 26 Jan 2010 16:59:50 +0000 (16:59 +0000)]
test-cogl-multitexture: use several materials with texture matrices
A small doubt has risen about the use of CoglTextureUnit in materials:
will texture matrices still work if we have several materials, each of
them having at texture on the same texture unit? The answer is yes!
test-cogl-multitexture has been extended to use 2 materials with about
the same setup except a little difference: the texture matrices for the
lightmaps rotate in opposite directions.
While at it, changed the rotation behaviour by an implicit animation
with a small additional bonus bling.
Damien Lespiau [Sun, 15 Nov 2009 19:54:17 +0000 (19:54 +0000)]
cogl: Create CoglTextureUnit with its associated unit number
The index field of CoglTextureUnit was never set, leading to the
creation of units with index set to 0. When trying to retrieve a texture
unit by its index (!= 0) with _cogl_get_texture_unit(), a new one was
created as it could not find it back in the list of textures units:
ctx->texture_units.
http://bugzilla.openedhand.com/show_bug.cgi?id=1958
Emmanuele Bassi [Thu, 21 Jan 2010 17:41:10 +0000 (17:41 +0000)]
actor: Use GParamSpecUint for :opacity
The :opacity property is defined using a GParamSpecUchar. This usually
leads to issues with language bindings that don't have an 'unsigned
char' type and that need to explicitly handle the conversion between
G_TYPE_UCHAR and G_TYPE_INT or G_TYPE_UINT.
The property definition already specifies an interval size of [0, 255]
on the values; more importantly, GObject already implicitly transforms
between G_TYPE_UCHAR and G_TYPE_UINT (the GValue transformation
functions are registered at type system initialization time) so
switching between a GParamSpecUchar and a GParamSpecUint should not be
an ABI break.
I have tested a simple program using the opacity property before and
after the change and I cannot see any run-time warnings related to this
issue.
Emmanuele Bassi [Fri, 22 Jan 2010 21:44:28 +0000 (21:44 +0000)]
test-easing: Do not reconnect signals multiple times
The test should keep track of the last animation and avoid reconnecting
signals to the same instance in case the -r argument has been passed.
Emmanuele Bassi [Fri, 22 Jan 2010 21:42:55 +0000 (21:42 +0000)]
animation: Verify internal state
Be more drastic if the internal state is broken, and assert() if the
expected Alpha and Timeline instances we need are not valid. This
usually implies a library bug or a massive heap corruption.
Emmanuele Bassi [Fri, 22 Jan 2010 21:42:10 +0000 (21:42 +0000)]
docs: Fix the Animation:object property
There is a typo in the Animation:object property gtk-doc declaration.
Emmanuele Bassi [Fri, 22 Jan 2010 21:41:33 +0000 (21:41 +0000)]
animation: Add more debug annotations
We need some better tracking of the Animation's lifetime.
Emmanuele Bassi [Fri, 22 Jan 2010 21:36:41 +0000 (21:36 +0000)]
animation: Transform if necessary
The Animation code does transformation of values between type A and A'
after checking for compatibility using g_value_type_compatible(). This
is incorrect: compatibility means that the two types can be copied. The
correct conversion should follow:
if (compatible (type (A), type (A')))
copy (A, A');
else
if (transformable (type (A), type (A')))
transform (A, A');
else
error("Unable to trasform type A in A'");
The transformation might still fail, so we need to check for errors
there as well as a fall-through case.
Emmanuele Bassi [Fri, 22 Jan 2010 21:33:28 +0000 (21:33 +0000)]
animation: Check for value transformability
We should not just check for compatibility, but also for the ability to
transform a GValue of type A into another of type A'.
Usually compatibility is enough, especially if types can be
introspected beforehand; some times, though, we also need to check for
transformability as a type can provide the transformation functions
necessary for the operation.
Emmanuele Bassi [Fri, 22 Jan 2010 00:06:17 +0000 (00:06 +0000)]
build: Use no-define
We don't need the PACKAGE and VERSION defines in the config.h.
Emmanuele Bassi [Thu, 21 Jan 2010 23:57:38 +0000 (23:57 +0000)]
build: Add no-portability option to automake
We require the GNU version of make for some of our rules, and it's been
so for a while now.
Emmanuele Bassi [Thu, 21 Jan 2010 23:41:18 +0000 (23:41 +0000)]
master clock: Improve the timeline advancement protection
The commit
1c69c61745ed510f0b6ab16cb963ca01994cb9fc which improved the
protection against timeline removals during the master clock advancement
was only doing half the job - and actually broke the chaining of
animations inside the ::completed signal.
We cannot simply take a reference on the timelines and still use the list
held by the master clock because the do_tick() might result in the
creation of a new timeline, which gets added at the end of the list with
no reference increase and thus gets disposed at the end of the iteration.
We also cannot steal the master clock timelines list because a timeline
might be removed as the direct result of do_tick() and remove_timeline()
would not find the timeline, failing and leaving a dangling pointer
behind.
For this reason we copy the list of timelines out of the one that the
Master Clock holds, take a reference on each timeline, advance them all,
release the reference and free the list.
Emmanuele Bassi [Wed, 20 Jan 2010 19:40:58 +0000 (19:40 +0000)]
x11: Re-enable XI1 extension keyboards
The extension keyboard support in XInput 1.x is hopelessly broken.
Nevertheless, it's possible to use some bits of it, as we prefer the
core keyboard events to the XInput events, thus at least having proper
handling for X11 key events on the Stage window.
Emmanuele Bassi [Fri, 15 Jan 2010 16:28:00 +0000 (16:28 +0000)]
x11: Always handle core device events before XI events
The XI 1.0 layer is complementary to the X11 core devices handling; this
means that core events will still be emitted for the core pointer and
keyboard devices, and that secondary (floating) devices should be
handled on top of that.
Thus, the XI event handling code should be executed (if explicitly
compiled in and enabled) if the core device events have not been parsed.
Note: this is going away with XI2, which completely replaces both core and
XI1 events.
Emmanuele Bassi [Fri, 15 Jan 2010 15:29:52 +0000 (15:29 +0000)]
docs: Documentation fixes for DeviceManager
Emmanuele Bassi [Fri, 15 Jan 2010 15:29:14 +0000 (15:29 +0000)]
device-manager: Fix the signals definition
Add documentation for the signals, as well as using the correct type for
the marshallers.
Emmanuele Bassi [Fri, 15 Jan 2010 14:56:43 +0000 (14:56 +0000)]
docs: Add sections for InputDevice and DeviceManager
Emmanuele Bassi [Fri, 15 Jan 2010 14:42:19 +0000 (14:42 +0000)]
docs: Add clutter_input_device_get_device_name()
Emmanuele Bassi [Fri, 15 Jan 2010 12:24:21 +0000 (12:24 +0000)]
tests: Print out the device details on motion
The test-device interactive test should print out the device name and id
when it detects a motion event.
Emmanuele Bassi [Fri, 15 Jan 2010 12:22:29 +0000 (12:22 +0000)]
Always register core devices
Even with XInput support we should always register core devices. This
allows us to handle enter and leave events correctly on the Stage and
to have a working XInput 1.x support in Clutter.
Emmanuele Bassi [Fri, 15 Jan 2010 11:52:27 +0000 (11:52 +0000)]
device: Remove unused is_default member
The is_default member of the InputDevice structure was not used
anywhere.
Emmanuele Bassi [Fri, 15 Jan 2010 11:47:05 +0000 (11:47 +0000)]
win32: Experimental implementation of device support
Mostly lifted from the core pointer and keyboard X11 backend support.
The win32 backend registers two devices (a core pointer and a core
keyboard) and assigns them to the event structure when doing the
translation from native events to Clutter events.
Thanks to: Samuel Degrande <Samuel.Degrande@lifl.fr> for testing this
patch.
Emmanuele Bassi [Fri, 15 Jan 2010 11:40:01 +0000 (11:40 +0000)]
tests: Print the device name, as well as its Id
The test-devices interactive test should display the device name along
with the id.
Emmanuele Bassi [Fri, 15 Jan 2010 11:38:58 +0000 (11:38 +0000)]
x11: Fill out the :name property of the InputDevices
For the core pointer and keyboard we assign the names ourselves; for
devices coming from XI we can use the XDeviceInfo.name member.
Emmanuele Bassi [Fri, 15 Jan 2010 11:37:43 +0000 (11:37 +0000)]
device: Add the :name property to InputDevice
The InputDevice should have a name, possibly user readable, coming from
the backend.
Emmanuele Bassi [Fri, 15 Jan 2010 11:21:52 +0000 (11:21 +0000)]
x11: Store core devices on the X11 Backend singleton
Instead of overloading the device id of 0 and 1 we should treat the core
devices as special, and have a pointer inside the X11 backend singleton
structure, for fast access.
Emmanuele Bassi [Thu, 14 Jan 2010 17:14:33 +0000 (17:14 +0000)]
device: Unset the cursor actor when leaving the stage
When an InputDevice leaves a stage we set the stage member of
InputDevice to NULL. We should also unset the cursor_actor (as the
device is obviously not on an actor any more).
When the device re-enters the Stage the ENTER/LEAVE event generation
machinery will then be able to emit the ENTER event on the Stage.
Emmanuele Bassi [Tue, 12 Jan 2010 11:53:12 +0000 (11:53 +0000)]
device: Add pointer actor getter
ClutterInputDevice should have a getter method for retrieving the
reactive actor underneath the pointer.
Emmanuele Bassi [Wed, 9 Dec 2009 00:03:13 +0000 (00:03 +0000)]
x11: Discard the LeaveNotify for off-stage ButtonRelease
If the user presses a button on a pointer device and then moves out the
Stage X11 will emit the following events:
LeaveNotify ➔ MotionNotify ... ➔ ButtonRelease ➔ LeaveNotify
The second LeaveNotify differs from the first by the state field.
Unfortunately, ClutterCrossingEvent doesn't have a modifier_state field
like other events, so we cannot provide a way for programmatically
distinguishing them from a Clutter perspective. This is also an X11-ism
we might not even want to replicate on every backend with sane
enter/leave semantics.
For this reason we should check inside the X11 event processing if the
pointer device has already left the Stage and ignore the second
LeaveNotify.
Emmanuele Bassi [Wed, 9 Dec 2009 00:01:50 +0000 (00:01 +0000)]
device: Do not overwrite the stage for an InputDevice
The Stage field of an InputDevice is set by the backend, whenever the
pointer enters or leaves the Stage. The Stage should not overwrite the
stage field for every event it processes.
Emmanuele Bassi [Wed, 9 Dec 2009 00:00:49 +0000 (00:00 +0000)]
event: Off-stage button releases have a click count of 1
The ButtonRelease off-stage should not have a click count of 0 but a
click count initialized to 1.
Emmanuele Bassi [Tue, 8 Dec 2009 23:59:56 +0000 (23:59 +0000)]
event: Scroll events do not have click count
Remove the unneeded CLUTTER_SCROLL case from the click count checks.
Emmanuele Bassi [Tue, 8 Dec 2009 18:33:01 +0000 (18:33 +0000)]
Whitespace and indentation fixes
Emmanuele Bassi [Mon, 7 Dec 2009 23:13:52 +0000 (23:13 +0000)]
event: Clean up click-count detection
Avoid a few indirections and direct access to the Event and InputDevice
structures.
Emmanuele Bassi [Mon, 7 Dec 2009 23:05:20 +0000 (23:05 +0000)]
device: Store the current state, not the previous
The previous state for the device is used by the click count machinery
and we should not be overwriting it at every event; instead, we should
use a parallel storage for the current state coming from the windowing
system.
Emmanuele Bassi [Mon, 7 Dec 2009 23:02:48 +0000 (23:02 +0000)]
tests: Fix test-events output
• The enter/leave event line should take into account the case where
the related field is set to NULL (meaning entering from off-stage
and leaving the stage).
• The ButtonRelease line shows the click count but uses the button; the
button *and* the click count should be displayed for both ButtonPress
and ButtonRelease, to verify they match.
Emmanuele Bassi [Mon, 7 Dec 2009 18:38:18 +0000 (18:38 +0000)]
docs: Update the API reference
Add the new symbols for InputDevice and DeviceManager
Emmanuele Bassi [Tue, 24 Nov 2009 17:54:02 +0000 (17:54 +0000)]
Do not pick when motion event delivery is disabled
The device manager does not need to update the state of the devices
when the user has disabled the delivery of motion events to actors:
the events will always be delivered as they are to the stage.
Emmanuele Bassi [Tue, 24 Nov 2009 16:33:03 +0000 (16:33 +0000)]
Rework the emission of LEAVE/ENTER event pairs
The LEAVE/ENTER event pairs should be queued during the InputDevice
update process, when we change the actor under the device pointer.
This commit cleans up the event emission code inside clutter-main.c
and the logic of the event processing.
Emmanuele Bassi [Tue, 24 Nov 2009 16:31:14 +0000 (16:31 +0000)]
tests: Clean up test-events
The output of test-events is a bit of a mess; this patch should clean
it up a little bit - at least enough for it to be useful again during
visual inspection.
Emmanuele Bassi [Tue, 24 Nov 2009 16:22:44 +0000 (16:22 +0000)]
Add docs and licensing notices
Emmanuele Bassi [Fri, 8 Jan 2010 17:51:00 +0000 (17:51 +0000)]
Move all picking-related operations inside InputDevice
The InputDevice objects stores pointer coordinates, state, stage and
the actor under the cursor, so if the current backend provides us with
one attached to the Event structure then we want the InputDevice itself
to update its state and give us the ClutterActor underneath the
pointer's cursor.
Emmanuele Bassi [Tue, 24 Nov 2009 12:53:57 +0000 (12:53 +0000)]
actor: Add :has-pointer property
ClutterActor should be able to tell whether a pointer is within
its area or not.
Emmanuele Bassi [Mon, 23 Nov 2009 16:07:16 +0000 (16:07 +0000)]
device: Make InputDevice an object and subclass it for X11
ClutterInputDevice should be a type that we can subclass per-backend
to add functionality.
Emmanuele Bassi [Fri, 20 Nov 2009 16:37:58 +0000 (16:37 +0000)]
tests: Update the devices test
Use the DeviceManager API instead of the X11 specific API.
Emmanuele Bassi [Fri, 20 Nov 2009 16:24:16 +0000 (16:24 +0000)]
x11: Always assign a device to pointer and key events
Even when we are not using XInput we now have fallback devices; the
X11 backend should always assign the default devices when translating
the X events to Clutter events.
Emmanuele Bassi [Fri, 20 Nov 2009 15:43:50 +0000 (15:43 +0000)]
Add :is-default flag to InputDevice
Emmanuele Bassi [Fri, 20 Nov 2009 15:36:43 +0000 (15:36 +0000)]
Port the X11 backend to the Device Manager
Use the device manager to store the input devices. Also, provide
two fallback devices when initializing the X11 backend: device 0
for the pointer and device 1 for the keyboard.
Emmanuele Bassi [Fri, 20 Nov 2009 15:35:40 +0000 (15:35 +0000)]
Add ClutterDeviceManager
The ClutterDeviceManager is a singleton object that behaves like the
StageManager: it holds all input devices and notifies on addition and
removal.
Neil Roberts [Fri, 15 Jan 2010 22:56:37 +0000 (22:56 +0000)]
win32: Use an invisible cursor when cursor-visible is FALSE
The win32 backend now handles the WM_SETCURSOR message and sets a
fully transparent cursor if the cursor-visible property has been
cleared on the stage. The icon is stored in the library via a resource
file. The instance handle for the DLL is needed to load the resource
so there is now a DllMain function to grab the handle.
Neil Roberts [Mon, 18 Jan 2010 17:33:08 +0000 (17:33 +0000)]
Post-release version bump to 1.1.7
Neil Roberts [Mon, 18 Jan 2010 15:44:58 +0000 (15:44 +0000)]
Release Clutter 1.1.6
Neil Roberts [Mon, 18 Jan 2010 15:43:25 +0000 (15:43 +0000)]
README: Clarify the required OpenGL version
Cogl will not allow OpenGL 1.2 if it doesn't have the multitexturing
extension so we should make this clear in the README.
Neil Roberts [Mon, 18 Jan 2010 13:56:56 +0000 (13:56 +0000)]
Add build/mingw/{README,mingw-cross-compile.sh} to the dist tarball
It's quite difficult to get git working on Windows so it makes sense
to put the build instructions somewhere accessible.
Neil Roberts [Mon, 18 Jan 2010 12:42:20 +0000 (12:42 +0000)]
test-texture-fbo: Disconnect the paint handler for the stage
Otherwise the paint handler will still be run for the subsequent
tests. This ends up writing to the ‘state’ variable which used to be
on the stack so it will end up corrupting some stack variable. This
was causing test-cogl-premult to fail.
Neil Roberts [Mon, 18 Jan 2010 12:35:05 +0000 (12:35 +0000)]
clutter-group: Use g_list_foreach in clutter_group_real_foreach
g_list_foreach has better protection against the current node being
removed. This will happen for example if someone calls
clutter_container_foreach(container, clutter_actor_destroy). This was
causing valgrind errors for the conformance tests which do just that.
Samuel Degrande [Fri, 27 Nov 2009 15:53:50 +0000 (16:53 +0100)]
win32: Fix computation of the fullscreen size during stage realization
http://bugzilla.openedhand.com/show_bug.cgi?id=1905
Signed-off-by: Neil Roberts <neil@linux.intel.com>
Emmanuele Bassi [Fri, 15 Jan 2010 17:32:46 +0000 (17:32 +0000)]
docs: Clarify usage of UTF-8 or ASCII art in commit messages
Emmanuele Bassi [Fri, 15 Jan 2010 17:06:56 +0000 (17:06 +0000)]
docs: Display the features section
The features section of the API reference is built but not used, and it
has some copy-and-paste errors.
Emmanuele Bassi [Fri, 15 Jan 2010 14:50:06 +0000 (14:50 +0000)]
Add test-cogl-texture-mipmaps to the Git ignore file
Emmanuele Bassi [Fri, 15 Jan 2010 14:48:42 +0000 (14:48 +0000)]
x11: Fix typo in clutter_x11_set_use_argb_visual() declaration
The function should have a lowercase x11, not an uppercase X11 in its
name.
Emmanuele Bassi [Fri, 15 Jan 2010 14:47:20 +0000 (14:47 +0000)]
docs: Ignore clutter-profile.h
Neil Roberts [Fri, 15 Jan 2010 12:02:09 +0000 (12:02 +0000)]
tests: Add a simple conformance test for texture mipmaps
This adds a test which renders a texture into a 1x1 pixel quad with
and without filters that use mipmaps. The pixel without mipmaps will
be one of the colors from the texture and the one with will be the
average of all the pixels in the texture.
Emmanuele Bassi [Thu, 14 Jan 2010 15:23:41 +0000 (15:23 +0000)]
Add a notice of deprecation in the pre-Git ChangeLog
Neil Roberts [Tue, 12 Jan 2010 21:44:40 +0000 (21:44 +0000)]
cogl-framebuffer: Return gboolean from try_creating_fbo
When try_creating_fbo fails it returns 0 to report the error and if it
succeeds it returns ‘flags’. However cogl_offscreen_new_to_texture
also passes in 0 for the flags as the last fallback to create the fbo
with nothing but the color buffer. In that case it will return 0
regardless of whether it succeeded so the last fallback will always be
considered a failure.
To fix this it now just returns a gboolean to indicate whether it
succeeded and the flags used for each attempt is assigned when passing
the argument rather than from the return value of the function.
Also if the only configuration that succeeded was with flags==0 then
it would always try all combinations because last_working_flags would
also be zero. To avoid this it now uses a separate gboolean to mark
whether we found a successful set of flags.
http://bugzilla.openedhand.com/show_bug.cgi?id=1873
Emmanuele Bassi [Thu, 14 Jan 2010 14:07:04 +0000 (14:07 +0000)]
conform: Add operators tests for ClutterColor
The clutter_color_add() and clutter_color_subtract() functions are
lacking unit testing to catch eventual regressions.
Emmanuele Bassi [Thu, 14 Jan 2010 12:28:07 +0000 (12:28 +0000)]
master-clock: Add profiling timers
Use the newly-added profiling timers inside the master clock dispatch
function to see how much time we spend:
• in the whole function
• in the event processing for each stage
• in the timeline advancement
Emmanuele Bassi [Wed, 13 Jan 2010 17:31:13 +0000 (17:31 +0000)]
units: Improve coverage of clutter_units_from_string()
Add a unit for an empty string as well as units for the missing unit
types like cm, mm and px.
Emmanuele Bassi [Wed, 13 Jan 2010 16:57:55 +0000 (16:57 +0000)]
Add test-cogl-multitexture to the Git ignore file
Emmanuele Bassi [Wed, 13 Jan 2010 16:35:53 +0000 (16:35 +0000)]
build: Add a script to format gcov report lines
Instead of using echo let's try Perl and the format() built-in.
Emmanuele Bassi [Mon, 4 Jan 2010 14:53:03 +0000 (14:53 +0000)]
Add gcov support to the build
Using gcov it's possible to get a coverage report, that is a break down
of how much the exposed API is exercised by the conformance test suite.
Emmanuele Bassi [Wed, 13 Jan 2010 15:40:36 +0000 (15:40 +0000)]
build: Clean up COGL build flags
Damien Lespiau [Mon, 2 Nov 2009 17:08:55 +0000 (17:08 +0000)]
texture: Remove reading the texture data back in ::unrealize()
Reading back the texture data in unrealize does not seem like a
desirable feature any more, clutter has evolved a lot since it was
implemented.
What's wrong with it now:
* It takes *a lot* of time to read the data back with glReadPixel(),
* When several textures share the same CoglTexture, the same data can
be read back multiple times,
* If the underlying material uses multiple texture units, only the
first one was copied back,
* In ClutterCairoTexture, we end up having two separate copies of the
data,
* GL actually manages texture memory accross system/video memory
for us!
For all the reasons above, let's get rid of the glReadPixel() in
Texture::unrealize()
Fixes: OHB#1842
Neil Roberts [Tue, 12 Jan 2010 14:49:55 +0000 (14:49 +0000)]
cogl-framebuffer: Add some missing GL defines
Since
755cce33a7 the framebuffer code is using the GL enums
GL_DEPTH_ATTACHMENT and GL_DEPTH_COMPONENT16. These aren't available
directly under GLES except with the OES suffix so we need to define
them manually as we do with the other framebuffer constants.
Neil Roberts [Tue, 12 Jan 2010 14:43:36 +0000 (14:43 +0000)]
cogl: Remove the CGL_* defines
These macros used to define Cogl wrappers for the GLenum values. There are
now Cogl enums everywhere in the API where these were required so we
shouldn't need them anymore. They were in the public headers but as
they are not neccessary and were not in the API docs for Clutter 1.0
it should be safe to remove them.
Emmanuele Bassi [Tue, 12 Jan 2010 15:44:28 +0000 (15:44 +0000)]
stage: Add the delete-event signal
Using the ::event signal to match the CLUTTER_DELETE event type (and
block the stage destruction) can be costly, since it means checking
every single event.
The ::delete-event signal is similar in spirit to any other specialized
signal handler dealing with events, and retains the same semantics.
Robert Bragg [Tue, 12 Jan 2010 11:02:09 +0000 (11:02 +0000)]
journal: Fixes logging of multiple sets of texture coordinates
If a user supplied multiple groups of texture coordinates with
cogl_rectangle_with_multitexture_coords() then we would repeatedly log only
the first group in the journal. This fixes that bug and adds a conformance
test to verify the fix.
Thanks to Gord Allott for reporting this bug.