| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Use cogl_framebuffer_push_scissor_clip instead.
|
|
|
|
| |
Instead, use the cogl_framebuffer_get_*_bits functions.
|
|
|
|
|
|
|
|
|
|
|
| |
The material compatibility layer for CoglPipelines has been removed in
Cogl 2.0. This patch copies it into Clutter when --enable-cogl2 is
enabled to increase the chance that a Clutter application will work
unmodified with the Cogl 2.0 API. The API for setting a user program
is not included because there are no longer any equivalent pipeline
functions. Also any API that was using CoglMaterialLayer is not
included because the wrappers from Cogl were using internal functions
to access the layers in that case.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Cogl master branch has started removing API in preparation for a
Cogl 2.0 release which will be incompatible with the current API.
Clutter is already internally mostly using the new API via
experimental features so it can more or less already compile against
2.0. However the old Cogl API is effectively part of the Clutter API
because that is what actors use for drawing so Clutter can not
silently switch to a new Cogl API. To make testing the new Cogl API
easier it is still convenient to be able to build against Cogl 2.0 for
apps that don't care about the API break.
This adds an experimental configure option to make Clutter use the
next version of Cogl. When this is enabled CLUTTER_COGL2 will be
defined from the public Cogl headers so an application can decide to
use the newer Cogl API. Clutter internally now uses this in some
places where the new API is not available as experimental API.
This patch does not update any tests which depend on the old API but
instead just skips building them when the option is enabled.
Some features of Clutter are removed when the option is enabled. These
include ClutterShader and ClutterFixed.
The Cogl compatibility header has been expanded to define more
wrappers when CLUTTER_COGL2 is defined.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of using the legacy CoglProgram API, ClutterShaderEffect now
creates a pipeline with a CoglSnippet. The source code from the
application is written as if it was a complete shader source in the
global scope rather than as a snippet so the code is now wrapped
between a #define main .. and a #undef main so that it won't collide
with the main function that Cogl generates. This wrapped source is
then set as the declarations section on the snippet.
Previously the effect would store the application's uniform values in
a hash table and then flush them to the program whenever the effect is
painted. This has been removed and now the values are directly stored
on the pipeline which belongs to the effect. Each instance of the
effect gets its own pipeline so there is no need to have the extra
indirection of the hash table.
The effect API has a public function to retrieve the CoglProgram. In
order to avoid breaking this function the snippet is now copied into a
CoglShader and CoglProgram on demand whenever they are requested.
|
|
|
|
|
|
|
|
| |
This adds another custom ClutterShaderEffect to the
actor-shader-effect test that calls clutter_shader_effect_get_program
to render the shader with its own material. The material has a
non-default color set to verify that the shader is being used from the
custom material.
|
|
|
|
|
|
|
| |
The clutter_offscreen_effect_get_target function now goes through a
virtual method. This will be useful so that ClutterShaderEffect can
directly return a target with the right program attached instead of
having to modify the material returned by ClutterOffscreenEffect.
|
| |
|
| |
|
| |
|
|
|
|
| |
We are using deprecated API internally.
|
| |
|
|
|
|
| |
We know we're using deprecated symbols.
|
|
|
|
|
|
| |
People submitting patches should do a conformance test suite run, until
we have a buildbot and a way of running the conformance tests on a
headless setup.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
It's time. Now that we have clutter_actor_allocate() respecting the
easing state of an actor, and that the LayoutManager animation virtual
functions have been deprecated, we can put ClutterAlpha on the chopping
block, and be done with it, once and for all.
So long, ClutterAlpha; and thanks for all the fish.
|
|
|
|
| |
Move CairoTexture to the deprecated section.
|
| |
|
|
|
|
|
| |
ClutterScrollActor is an actor that allows showing a portion of its
contents.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This semi-aborted API was broken for various reasons:
- it strongly depended on ClutterAlpha, a class we're trying to
deprecate;
- it requires a lot of boilerplate and copy-and-paste code;
- it requires a full relayout of the actor tree for something
that ought to be automatically handled by ClutterActor.
Now that clutter_actor_allocate() handles transitions using the easing
state of the actor, we can deprecate the LayoutManager API for the 1.x
series, and remove it for the 2.x series.
|
|
|
|
| |
Similar to what we did for ClutterBoxLayout.
|
|
|
|
|
|
| |
BoxLayout will use the easing state of the children it's allocating; the
current API is re-implemented in terms of an implicit easing state
forced on each child prior to allocating it.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Calling clutter_actor_allocate() should transition between the current
allocation and the new allocation, by using the defined implementation
of the easing state.
This means that:
clutter_actor_save_easing_state (actor);
clutter_actor_allocate (actor, &new_alloc, flags);
clutter_actor_restore_easing_state (actor);
will cause "actor" to transition between the current allocation and the
desired new allocation.
The trick is to ensure that this happens without invalidating the
entire actor tree, but only the portion of the tree that has the
transitioned actor as the local root. For this reason, we just call the
allocate() implementation from within the transition frame advancement,
without invalidating flags: the actor, after all, *has* a valid
allocation for the duration of the transition.
|
|
|
|
|
|
| |
Allocation flags are informative, and are only meant to be used to
communicate additional information about the allocation process to
an actor.
|
|
|
|
| |
Use the orientation enumeration instead of a per-axis method.
|
|
|
|
|
|
| |
And deprecate the :vertical property.
An enumeration is clearer, and we can use it elsewhere in the API.
|
|
|
|
| |
We should use the ClutterActor's API for this.
|
| |
|
|
|
|
|
| |
Use modern API; clean up the code, and document it so that it's possible
to XInclude it into the API reference.
|
|
|
|
|
| |
If an actor is set to expand, we use the actor's horizontal and vertical
alignment values instead of the BinLayout's.
|
|
|
|
|
| |
A method to retrieve the effective horizontal alignment of the actor,
taking into consideration the text direction.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The :x-expand and :y-expand flags on ClutterActor are used to signal
that an actor should expand horizontally and/or vertically - i.e. that
its parent's layout management policy should try to assign extra space
to the actor when allocating it.
The expand flags are automatic: when set on a leaf node in the actor
tree, they will bubble up through the parent and grandparents up to the
top level actor; during allocation, the actors with children will lazily
compute whether their children needs to expand.
|
|
|
|
|
| |
Adding an explicit transition overrides any consideration of the easing
state of an actor.
|
|
|
|
| |
Typos, missing symbols, and missing documentation.
|
| |
|
| |
|
|
|
|
|
|
| |
ClutterPropertyTransition, and the implicit animation API based on
ClutterTransition and ClutterAnimatable, are enough to replace this
whole API.
|
|
|
|
|
| |
The PropertyTransition, KeyframeTransition, and TransitionGroup classes
can effectively replace Animator and State in their common usage.
|
|
|
|
|
| |
This should allow modifying key frame details without requiring a full
reset of the KeyframeTransition instance.
|
|
|
|
|
|
|
|
|
|
| |
The TransitionGroup class is a logical container for running multiple
transitions.
TransitionGroup is not a Score: it is a Transition that advances each
Transition it contains using the delta between frames, and ensures that
all transitions are in a consistent state; these transitions are not
advanced by the master clock.
|
|
|
|
|
|
|
| |
There are cases when we want to advance a timeline from another time
source. We cannot use _clutter_timeline_do_tick() directly, as that
assumes that the timeline is already playing, so we'll need to create a
wrapper that toggles the playing flag around it.
|
|
|
|
|
| |
A simple transition class that interpolates a property between key
frames.
|
|
|
|
|
|
|
| |
Given that we can create a ClutterInterval without an initial and final
values using g_object_new(), it stands to reason that we ought to be
able to create an instance when passing NULL GValue pointers to the
new_with_values() constructor as well.
|
|
|
|
|
| |
We end up copying the same array-of-modes-and-functions code in various
places, so it's better to factor it out.
|
|
|
|
|
| |
We can add transitions to an actor even if the easing state hasn't been
set beforehand.
|
| |
|
|
|
|
|
| |
This should cut down the lines and number of objects we have to care
about when dealing with explicit transitions.
|
| |
|