| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Signed-off-by: Andreas Mueller <schnitzeltony@gmx.de>
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
http://bugzilla.clutter-project.org/show_bug.cgi?id=2549
|
|
|
|
|
|
|
|
|
| |
Cairo has recently changed so that it no longer adds a final move-to
command when the path ends with a close. This patch makes the test
check the run-time version number of Cairo to avoid duplicating this
behaviour when testing the conversion to and from a Cairo path.
(cherry picked from commit 1d7e2233130b3041cc204fed326087c3a2bc9867)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In cogl_material_set_layer_combine_constant it was comparing whether
the new color is the same as the old color using a memcmp on the
constant_color parameter. However the combine constant is stored in
the layer data as an array of four floats but the passed in color is a
CoglColor (which is currently an array of four guint8s). This was
causing valgrind errors and presumably also the check for setting the
same color twice would always fail.
This patch makes it do the conversion to a float array upfront before
the comparison.
(cherry picked from commit 5740a5a38a4d0a0b22e62ea0035b8e360c7a6cc0)
Conflicts:
clutter/cogl/cogl/cogl-pipeline.c
|
|
|
|
|
|
|
|
|
|
|
| |
Between Clutter 0.8 and 1.0, the new-frame signal of ClutterTimeline
changed the second parameter to be an elapsed time in milliseconds
rather than the frame number. However a few places in clutter were
still calling the parameter 'frame_num' which is a bit
misleading. Notably the signature for the signal class closure in the
header was using the wrong name. This changes them to use 'msecs'.
(cherry picked from commit e8d5be0ba79eef766fff723012c5d1994da84b4c)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ClutterTimeline has special handling for the first time do_tick is
called which was not emitting a new-frame signal. This meant that an
application which directly uses the timeline would have to manually
setup the initial state of an animation after starting a timeline to
avoid painting a single frame with the wrong state. It seems to make
more sense to instead emit the new-frame signal so that the
application always sees a new-frame when the progress changes before a
paint.
(cherry picked from commit 5c0aaf50a7b3d1914d4580d5f853faa9a4b10f73)
Conflicts:
clutter/clutter-timeline.c
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While we do check for compatibility and transformability of a GValue
with the GParamSpec value type, we are actually failing really badly
at it.
First of all, we bail out on the wrong conditions.
Then we use the type of the value passed instead of using the type
of the property itself.
This makes it impossible to actually use transformation functions for
GValue types - even those that have been registered by GLib itself -
when using the Animation API directly, instead of going through the
clutter_actor_animate() wrappers.
(cherry picked from commit 54db48dfd1e1b151a3b92e160181f44305e21089)
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
| |
When clutter_score_append_at_marker is called instead of
clutter_score_append the complete_id field of ClutterScoreEntry was
being left uninitialised. When the entry is eventually freed it would
sometimes try to disconnect an invalid signal id. This was causing
conformance test failures for me on GLES2.
(cherry picked from commit f8fc194b3b3529bf4f3230cef00d5d0b042673bf)
|
|
|
|
|
|
|
|
|
|
|
|
| |
The fixed pipeline backend wasn't correctly flushing the combine
constant because it was using the wrong flag to determine if the
combine constant has changed since the last flushed material.
(cherry picked from commit a38fa7a2dfc3a169777ba172d145178b9b068d73)
Conflicts:
clutter/cogl/cogl/cogl-material-fixed.c
|
|
|
|
|
|
|
|
|
|
| |
When enabling a unit that was disabled from a previous flush pipeline
it was forgetting to rebind the right texture unit so it wouldn't
work. This was causing the redhand to disappear when using the fixed
function backend in test-cogl-multitexture if anything else is added
to the scene.
(cherry picked from commit 499a370ee326ea24fd0fff55466877a6f286d9fd)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For shader generation backends we don't need to worry about changes to
the texture object and changing the user matrix. The missing user
matrix flag was causing test-cogl-multitexture to regenerate the
shader every frame.
(cherry picked from commit 17a98875d33c872800c04c26338427970b88b308)
Conflicts:
clutter/cogl/cogl/cogl-material-arbfp.c
clutter/cogl/cogl/cogl-pipeline-glsl.c
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
if we are asked to pick with a different mode.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2385
|
|
|
|
|
| |
Modified all cookbook example code to prevent ISO C90 compliance
warnings occurring during compilation.
|
|
|
|
|
|
|
|
|
| |
The recipe had examples where opacity was set using
fractional numbers. Fixed all examples to use
integers only.
(cherry picked from commit 63721c5db1bc1c4a53ee2af536ffbd19b015fdb9)
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
|
|
|
|
|
|
|
|
| |
Opacity is a guint, so don't use floating point numbers
to set its value.
(cherry picked from commit f135f2e7d5b7c5304ae4ba91a26f4dc0d5b0c757)
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
| |
The same behavior can be achieved by capturing events on stage while
button is pressed. This fixes a problem when using click and drag
actions on the same actor as there no grabs involved.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2409
(cherry picked from commit 03a713e18e842d29a73f9cefb38e689ceefb35ed)
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
| |
Make sure that we have a fall back in place for the default font name
string, and use g_strcmp0 to protect ourselves from NULL strings.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2417
(cherry picked from commit e6bc65b5c37c38dbf5a82dea724e2f389e2b481e)
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
|
|
|
|
|
|
|
|
|
| |
Prevent a segfault when dealing with XSETTINGS_ACTION_DELETE.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2441
(cherry picked from commit b8c9ee7e88ca6d1c2e9bc6380740dbf19096e71e)
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
|
|
|
|
| |
Simple optimization is simple.
|
|
|
|
|
|
|
|
|
|
| |
Showing a visible (and hiding an invisible) actor is far less cheap than
it should be.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2422
(cherry picked from commit a731682ac394d1b54b78dec1083d158a71e10f89)
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously whenever the size of the FBO changes it would create a new
material and attach the texture to it. This is not good for Cogl
because it throws away any cached state for the material. In
test-rotate the size of the FBO changes constantly so it effectively
uses a new material every paint. For shader effects this also ends up
relinking the shader every paint because the linked programs are part
of the material state.
(cherry picked from commit 6ddb8397110f6e6998e0262e5d3dd604cd93d670)
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
|
|
|
|
|
|
|
| |
http://bugzilla.clutter-project.org/show_bug.cgi?id=2450
(cherry picked from commit 01b93537ab9743dfd6aa2f0c3d4499420ee860cd)
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
|
|
|
|
|
|
|
|
|
| |
The reset_uniforms() internal function is not used any more because the
CoglProgram cannot be reset post-creation - hence the uniforms cannot
change.
(cherry picked from commit 850a35f069368b645ceb8e027b6b27863dba308b)
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously when the shader effect is used with a new actor it would
end up throwing away the old program. I don't think this is neccessary
and it means if you use an effect to temporarily bind to an actor then
it will recompile the shader whenever it is applied.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2454
(cherry picked from commit 08087c965bf312513f98a53bf3220e92c372d131)
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a new actor is set for ClutterOffscreenEffect it would throw away
the old material. I don't think there is anything specifically tied to
the actor in the material so throwing away just loses Cogl's cached
state about the material. This ends up relinking the shader every time
a new actor is set in ClutterShaderEffect.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2454
(cherry picked from commit 2dc9e0dc2941a1f805e71a656585037ced0ed721)
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
|
|
|
|
|
|
| |
This happens when reattaching an effect to another actor.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2453
|
|
|
|
|
|
|
|
|
| |
Otherwise we'll try to disconnect it again later.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2452
(cherry picked from commit 47d63c1c550776de52841f3d5508f20b48f5d722)
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Do not use the compiler to zero the first field of the GValue member,
since it's apparently non-portable. As we're allocating memory anyway we
can let the slice allocator do the zero-ing for us.
Mentioned in: http://bugzilla.clutter-project.org/show_bug.cgi?id=2455
(cherry picked from commit 215d87abe9ccfe98cbf0e5e73f5c8edf4106a7ce)
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
|
|
|
|
|
|
|
|
|
| |
Don't calculate an extra layout in clutter_text_get_preferred_height for
single-line strings, when it's unnecessary. There's no need to set the
width of a layout when in single-line mode, as wrapping will not happen.
(cherry picked from commit 67143bd846c2b39ce94779d7ab2b5bd48e58d1cd)
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
| |
Instead of using the backend singleton. This allows lazy initialization
of Clutter.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2435
(cherry picked from commit 446107f19d59ab95c918e566b5d8efdb8c0841c8)
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
|
|
|
|
|
|
|
|
|
| |
It can implement now both fragment and vertex shaders.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2442
(cherry picked from commit 6a552e27abfa2e0f0705ac935872e5393cdf1fdc)
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
|
|
|
|
|
|
|
| |
Compilation fails due to stub functions not being defined for GLES 1.1
and undefined types outside #ifdefs.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2443
|
|
|
|
|
|
|
|
| |
More recent versions of gobject-introspection (>= 0.10) seem to be
stricter so clutter_script_get_object() ends up marked not
introspectable.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2405
|
|
|
|
|
|
|
|
|
|
| |
If there is private data associated with a CoglObject then there may be
a user_data_array that needs to be freed. The code was mistakenly
freeing the array inside the loop that was actually iterating over the
user data array notifying the objects destruction instead of waiting
until all the data entries had been destroyed.
(cherry picked from commit e5202d6a0da1d94f65ddbe381766d775e1047e26)
|
|
|
|
|
|
|
|
|
|
|
|
| |
CLUTTER_EGL_BACKEND is used to define a special EGL native backend to
use and was introduced for the CEX100 EGL backend. Unfortunately
CLUTTER_EGL_BACKEND was defined to "cex100" for eglnative, which is
obviously wrong.
The paches defines the right values for CLUTTER_EGL_BACKEND for the
eglnative and cex100 flavours.
(cherry picked from commit 1c9dcdaeb295867d86a447cfc3df44d4e74d3ae0)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously cogl_set_source_color and cogl_set_source_texture modified
a single global material. If an application then mixes using
cogl_set_source_color and texture then the material will constantly
need a new ARBfp program because the numbers of layers alternates
between 0 and 1. This patch just adds a second global material that is
only used for cogl_set_source_texture. I think it would still end up
flushing the journal if cogl_set_source_texture is used with multiple
different textures but at least it should avoid a recompile unless the
texture target also changes. It might be nice to somehow attach a
material to the CoglTexture for use with cogl_set_source_texture but
it would be difficult to implement this without creating a circular
reference.
(cherry picked from commit 65d7a113eeb0de08ccb402fe4ade14fe82fcaff1)
Conflicts:
clutter/cogl/cogl/cogl-context.c
clutter/cogl/cogl/cogl-context.h
|
|
|
|
|
|
|
|
|
|
|
|
| |
There was previously a flag that gets set when this function was
called but nothing checked it so the function effectively did
nothing. Also the flag was a member of the backend struct but this
can't be used because the function should be called before
clutter_init so the backend is not ready yet. This patch makes the
event disabling work more like the X11 backend and set a global
variable instead.
(cherry picked from commit 6da18b6e4f93bb1430698959d6280cb53f9e2ff2)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When handling an allocation on the stage, Clutter uses the oppurtunity
to inform Cogl of the new size of the framebuffer so that it can
handle the viewport correctly. It queries the size of the window
implementation using a backend virtual function. However it was doing
this before letting the backend handle the allocation so on Win32 it
would end up using the previous framebuffer size. This wasn't
affecting the X11 backend because in that case the resizes are
asynchronous so setting the stage size causes one allocation which
ends up sending a window size request. Eventually a ConfigureNotify is
received which causes the size of the stage to be set again and
another allocation is fired meaning the framebuffer size will be set
again this time with the correct size. In Win32 the resizes are
synchronous so we don't have this second allocation.
(cherry picked from commit 52744c0d9db6d7f9738d31b6d9f774c0912fcad0)
|
|
|
|
|
|
|
|
|
|
| |
When compiling for non-glx platforms the winsys feature data array
ends up empty. Empty arrays cause problems for MSVC so this patch adds
a stub entry so that the array always has at least one entry.
Based on a patch by Ole André Vadla Ravnås
(cherry picked from commit cc7977988c92ad7fa96f0a1dd0a8581432f090ca)
|
|
|
|
|
|
|
|
|
|
|
|
| |
Mixing declarations and code causes problems for MSVC as it is a C99
feature so we should try to avoid it.
(cherry picked from commit f1752ff3ba1828873f7f97f3842eadcc389e87a1)
Conflicts:
clutter/clutter-stage.c
clutter/x11/clutter-event-x11.c
|
|
|
|
|
|
|
|
| |
(cherry picked from commit 276acf5854c0e589eae9a76c78ef1faa50c46caa)
Conflicts:
clutter/clutter-marshal.list
|
|
|
|
| |
(cherry picked from commit c792431538e02c05f90f12bd4c36c72cf3f3eab4)
|
|
|
|
|
|
|
|
|
| |
The modifier state translation is missing the CLUTTER_BUTTON*_MASK.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2365
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
(cherry picked from commit d8426197554f4745bc2489c81435b9510b62d21a)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When picking a size for the last slice in a texture, Cogl would always
pick the biggest power of two size that doesn't create too much
waste and is less than or equal to the previous slice size. However
this can end up creating a texture that is bigger than needed if there
is a smaller power of two.
For example, if the maximum waste is 127 (the current default) and we
try to create a texture that is 257 pixels wide it will decide that
the next power of two (512) is too much waste (255) so it will create
the first slice at 256 pixels wide. Then we only have 1 pixel left to
allocate but Cogl would pick the next smaller size that has a small
enough waste which is 128. But of course 1 is already a power of two
so that's redundantly oversized by 127.
This patch fixes it so that whenever it finds a size that would be big
enough, instead of using exactly that it picks the next power of two
up from the size we need to fill.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2355
(cherry picked from commit 7e112472b5ad9deea9b0ad1fda47aa16199a780a)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are ordering issues in the pixmap destruction with current and
past X11 server, Mesa and dri2. Under some circumstances, an X pixmap
might be destroyed with the GLX pixmap still referencing it, and thus
the X server will decide to destroy the GLX pixmap as well; then, when
Cogl tries to destroy the GLX pixmap, it gets BadDrawable errors.
Clutter 1.2 used to trap + sync all calls to glXDestroyPixmap(), but
then we assumed that the ordering issue had been solved. So, we're back
to square 1.
I left a Big Fat Comment™ right above the glXDestroyPixmap() call
referencing the bug and the reasoning behind the trap, so that we don't
go and remove it in the future without checking that the issue has been
in fact solved.
http://bugzilla.clutter-project.org/show_bug.cgi?id=2324
(cherry picked from commit 6af0ee2cbe2d6584b523809f160f56daf16eb583)
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
|
| |
|
|
|
|
|
|
| |
Signed-off-by: Aron Xu <aronxu@gnome.org>
Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
(cherry picked from commit c4668f04f745f30657379727424137b62d44248d)
|
|
|
|
|
|
|
|
| |
In 4ee05f8e21d the namespace for the clutter keysym macros were
changed to CLUTTER_KEY_* but the win32 events backend was still
referring to the old names.
(cherry picked from commit d8a9026b842655d23d839a639540bb134f734d84)
|