| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
The cogl implementation is hidden from view, we only expose this
on egl.
|
|
|
|
|
|
|
|
|
| |
Those have a rectangle and a transform, at the time of rendering
each view will be painted separately, while applying the corresponding
transform to the whole stage.
Also, implement get_geometry/get_hw_geometry() based on the views
when we have any.
|
|
|
|
|
| |
All transforms queried on the stage must be transformed by the
current view being rendered.
|
|
|
|
|
|
| |
There's places where we need to honor the lowlevel buffer geometry
rather than the stage one (which may not mach in the case of rotated
outputs).
|
|
|
|
|
|
|
| |
This is an alternative to _clutter_stage_window_get_geometry(), that
will return the geometry as seen by the stage. get_hw_geometry() will
return the geometry as seen by the lower layers (eg. on rotated outputs
we still need to allocate primary planes that fit the crcts).
|
|
|
|
|
|
| |
This will be used when rendering the stage on subviews.
Coordinates as set on actors must be modified by the matrix
set by the view.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since commit 6183eb363282e5143bfd52aa36b5e6a318c4c992 we disabled swap
throttling in favour of being driven by the GDK frame clock (and thus by
the compositor).
Compositors may decide to unredirect full screen windows to avoid the
performance penalty of the additional copy, especially on X11, which
means that a Clutter application marked as full screen is not going to
be driven by the compositor, and it's not going to be throttled by the
underlying GL machinery. This has a performance impact on constrained
platforms.
For this reason, we should re-enable swap throttling when the window is
full screen.
As the change was introduced especially because of Wayland, we should
check that we're not running as clients under a Wayland compositor; if
we do, we always keep swap throttling disabled, as the compositor will
always manage our output, even when full screen.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Libinput tells us this much, so make use of it.
https://bugzilla.gnome.org/show_bug.cgi?id=757026
|
|
|
|
|
|
|
|
|
|
| |
Those can be used to implement different scrolling behaviors.
The fields have been added to ClutterScrollEvent itself. According
to pahole, this makes the struct as big as ClutterButtonEvent and
ClutterTouchEvent, so already at the limit of the ClutterEvent
union.
https://bugzilla.gnome.org/show_bug.cgi?id=757026
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
So that we can set it to 'check', and do configure-time discovery of the
dependencies, instead of enabling it explicitly.
This should make it easier to spot build issues on environments like
Continuous, which build Clutter and Cogl for running as part of the
display server infrastructure on Wayland.
|
|
|
|
| |
Otherwise the build will fail.
|
|
|
|
|
|
| |
So it's usable as long as the X11 backend support is compiled into
Clutter — and we can use this test to check that overriding works
as intended.
|
|
|
|
|
|
|
|
|
|
| |
We should allow a configuration file to set up the initial state of the
global state, which also implies being able to set the backend.
If the allowed backends have already been set programmatically via the
clutter_set_windowing_backend(), though, then the application code takes
precedence, as we assume that the application author knows better than
us what their code supports or requires.
|
|
|
|
|
|
|
| |
The configuration file should set up the global state before we
initialize it; instead of relying on implicit ordering, explicitly read
the configuration file once, when creating the global shared context
data structure.
|
|
|
|
|
| |
It doesn't make sense for the allowed drivers to be changed after
Clutter has been initialized.
|
|
|
|
|
|
|
|
|
|
|
| |
Like CLUTTER_DRIVER, we want to allow users to specify a list of
backends to test, and fall back to the internally defined priority as a
default.
This requires changing the way the allowed backend string is parsed,
both for the CLUTTER_BACKEND environment variable and for the
clutter_set_windowing_backend() function. Existing callers are still
supported with the exact same semantics.
|
|
|
|
|
| |
We're going to use it to create an instance of each backend without
using the get_type() function.
|
|
|
|
|
| |
Clutter has a configuration file that can be used to override
various settings, including the ones from environment variables.
|
|
|
|
|
|
|
|
|
|
| |
Using environment variables only is not convenient for all platforms,
and in some cases it's beneficial to decide the default driver when
building Clutter. Cogl already has a similar configuration switch, and
since Clutter is overriding the default Cogl behaviour, it should offer
the same mechanism.
https://bugzilla.gnome.org/show_bug.cgi?id=742678
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We have an hardcoded list of drivers we have to go through when creating
a Cogl context. Some platforms may expose those drivers, but not be the
preferred ones.
In order to allow users and system integrators to override the list of
drivers, we should crib the same approach used by GDK, and have an
environment variable with a list of drivers to try.
The new environment variable is called `CLUTTER_DRIVER` and accepts a
comma-separated list of driver names, which will be tested in sequence
until one succeeds. There's also an additional '*' token which is used
to ask Clutter to fall back to the internally defined preferred list of
drivers.
https://bugzilla.gnome.org/show_bug.cgi?id=742678
|
|
|
|
|
| |
The (optional) annotation should only be used for (out) arguments; in
arguments that can be NULL should use the (nullable) annotation.
|
|
|
|
|
| |
The interface vtable structure is missing the GTypeInterface parent, and
GObject is complaining about it, as it should.
|
|
|
|
|
|
| |
Don't look at GLX headers or symbols; we don't use them anyway.
https://bugzilla.gnome.org/show_bug.cgi?id=759191
|
|
|
|
|
|
| |
When using GDK and Cogl API, we need to check that both GDK and Cogl
have been built with support for that API, otherwise the build will
likely fail.
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=759074
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=759074
|
|
|
|
|
|
|
| |
Every path creating a input device in the evdev backend sets a stage,
so the check is unnecessary.
https://bugzilla.gnome.org/show_bug.cgi?id=752752
|
|
|
|
|
|
| |
We store the cursor-visible value in a bit field, which means that we
need to enforce the argument for the setter to either 0 or 1 in order to
fit.
|
|
|
|
| |
Ensure that the rule for :cursor-visible are documented.
|
|
|
|
|
| |
We have a bunch of similar checks in various places, and they should all
be coalesced into one.
|
|
|
|
|
|
|
|
|
|
|
| |
We enable a bunch of compiler flags to trip common errors during
development. While this is very useful while hacking on Clutter, it
makes the life of people building Clutter on automated build systems
much harder; thus, we should have a configuration option to opt out of
the -Werror business.
GNOME has pretty much standardised on `--disable-Werror`, so we should
crib that configure option.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Being able to select text and being able to edit text are two separate
capabilities, but ClutterText only allows the former with the latter.
The ClutterText:selectable property is set to TRUE by default, given
that it depends on the :editable property; this implies that all
ClutterText instances now are going to show a cursor as soon as they get
key focused. Obviously, this would make labels look a bit off — but if
you have a label then you would not give it key focus, either by
explicitly calling clutter_actor_grab_focus(), or by setting it as
reactive and allowing it to be clicked.
If this turns out to be a problem, we have various ways to avoid showing
a cursor — for instance, we could change the default value of the
selectable property, and ensure that setting the :editable property to
TRUE would also set the :selectable property as a side effect. Or we
could hide the cursor until the first button/touch press event. Finally,
we could always back this commit out if it proves to be too much of a
breakage for existing code bases.
https://bugzilla.gnome.org/show_bug.cgi?id=757470
|