Commit Graph

6638 Commits

Author SHA1 Message Date
Emmanuele Bassi
0c02e8adb3 cogl/backend: Remove ensure_context()
We have a default implementation for it, now.
2011-11-10 14:42:40 +00:00
Emmanuele Bassi
790c0d1f91 backend: Provide an implementation of ensure_backend()
We can do it for all Cogl-based backends.
2011-11-10 14:42:39 +00:00
Emmanuele Bassi
e374c2bd89 conform/color: Check invalid strings
We need to make sure to fail consistently for invalid strings.
2011-11-10 14:15:32 +00:00
Emmanuele Bassi
0550a8b99d color: Validate hex formats
Right now, we pass through to Pango unrecognized hexadecimal formats
when parsing colors from strings. Since we parse all possible formats
ourselves, we can do validation ourselves as well, and avoid the Pango
path.
2011-11-10 14:13:45 +00:00
Emmanuele Bassi
889a1f44f4 conform/color: Test hsla() format 2011-11-10 12:57:34 +00:00
Jasper St. Pierre
b96773f9c9 clutter-stage-x11: Make sure to set geometry x and y
Otherwise, we could be dealing with uninitialized values, causing
havoc all over the place.

https://bugzilla.gnome.org/show_bug.cgi?id=663733
2011-11-10 12:57:34 +00:00
Craig R. Hughes
33303f92f3 Minor whitespace fix for clutter color parsing of hsla(h,s,l,a)
Previously, if there was whitespace between "l" and the comma before the
alpha value, parsing would fail.  This patch allows that whitespace
making it consistent with whitespace being allowed everywhere else.

https://bugzilla.gnome.org/show_bug.cgi?id=663594
2011-11-10 12:57:34 +00:00
Matthias Clasen
d596401a3c cally: Use the proper role for password entries
https://bugzilla.gnome.org/show_bug.cgi?id=663332
2011-11-10 12:57:34 +00:00
Emmanuele Bassi
7b5e5b7727 main: Add a debug note when reading the settings file
So that's easier to track in the debug log.
2011-11-09 09:09:37 +00:00
Emmanuele Bassi
ba8d682c09 actor: Deprecate [sg]et_geometry()
These methods are short-hands for accessing the position and size,
which are already shorthands for accessing the various dimensional
and positional attributes. Plus, they use ClutterGeometry, which is a
fairly bad data type for a rectangle.
2011-11-08 14:46:55 +00:00
Emmanuele Bassi
101f39ea92 Replace usage of [sg]et_geometry()
The set_geometry() and get_geometry() methods are going to be
deprecated.
2011-11-08 14:46:16 +00:00
Emmanuele Bassi
4fe7a77302 Replace ClutterGeometry with cairo_rectangle_int_t
We still use ClutterGeometry internally in a couple of places, but we
should really move away from that flawed rectangle data type, and use
the Cairo one.

Sadly, we still have some public API that we cannot remove yet.
2011-11-08 14:20:32 +00:00
Emmanuele Bassi
76e85f68ea build: Remove mention of missing file
There is no clutter-event-gdk.h in the build.
2011-11-08 11:19:22 +00:00
Emmanuele Bassi
67d5a4993c main: Deprecate clutter_set_default_frame_rate()
Setting the default frame rate does not do anything even remotely
useful, unless synchronization to the vertical refresh rate is also
disabled - which can only be done through environment variable or
through configuration file. Having a programmatic way to change the
default frame rate is, thus, completely pointless.

Changing the default frame rate through environment variable and
configuration file is still allowed.
2011-11-07 20:31:15 +00:00
Emmanuele Bassi
e0bfdbfeba osx/stage: Fix compilation
We need to include clutter-stage-window.h.
2011-11-04 12:03:13 +00:00
Colin Walters
6f8f8295c0 build: Ensure libdir exists before installing to it 2011-11-03 14:45:29 -04:00
Emmanuele Bassi
683642ba54 docs: Fixes for the API reference build 2011-11-03 16:05:36 +00:00
Emmanuele Bassi
53513f8586 tests: Remove #undef CLUTTER_DISABLE_DEPRECATED
We need to test deprecated API as well, and we don't use a guard any
more in the build.
2011-11-03 15:35:03 +00:00
Emmanuele Bassi
7ab84f981c Remove CLUTTER_DISABLE_DEPRECATED from the build flags
We don't use it any more.
2011-11-03 15:35:01 +00:00
Emmanuele Bassi
2403d4875b Remove CLUTTER_DISABLE_DEPRECATED guard
Except for macros, we now entirely depend on the deprecation warnings
instead of a guard.
2011-11-03 15:32:04 +00:00
Emmanuele Bassi
9ea2bb694e docs: Fix a wrongly named argument 2011-11-03 15:16:02 +00:00
Emmanuele Bassi
98b467f9b8 stage: Move the deprecated macros to a separate header
The clutter-stage.h header still has a bunch of macros that have, for
reasons unknown[*], survived the 1.0 API cut and have long since been
deprecated. Let's hide them under the deprecated/ carpet and let us
never speak of them ever again.

[*] pretty sure alcohol or other psychotropic substances were involved
but I take the 5th on that.
2011-11-03 15:13:54 +00:00
Emmanuele Bassi
0157615fae build: Fix compilation 2011-11-03 15:03:16 +00:00
Emmanuele Bassi
11420a7057 group: Move deprecated macro into its own header 2011-11-03 15:02:35 +00:00
Emmanuele Bassi
530b07f12b Don't use a -deprecated suffix for headers
They are already in the deprecated/ directory, the suffix is redundant,
and there is no chance of collision.
2011-11-03 14:49:56 +00:00
Emmanuele Bassi
142cd0bf82 Move clutter-keysyms-compat.h to the deprecated section
No reason to have it lingering in the main section.
2011-11-03 14:42:39 +00:00
Emmanuele Bassi
983510fad4 x11/backend: Use an internal GError
Don't just return the error from Cogl, but proxy it so that it has the
correct error domain and code.
2011-11-03 14:02:43 +00:00
Emmanuele Bassi
7a2001436b build: Clean up the per-backend summary 2011-11-03 13:45:21 +00:00
Emmanuele Bassi
dc672b5c89 build: Use AC_CACHE_SAVE
Delimit the points in the configure script that should save the state,
so that running the script multiple times doesn't require starting from
scratch even if it didn't terminate successfully.
2011-11-03 13:45:21 +00:00
Emmanuele Bassi
9110fa1ee7 build: Disable tslib by default
The event handling through tslib hasn't been tested in a while, and it
hasn't been ported to the device manager machinery either. We are still
considering whether or not it should be entirely removed, since evdev is
supposed to be a better way to handle events not coming from an existing
windowing system.
2011-11-03 13:45:21 +00:00
Emmanuele Bassi
c4e6f74f29 interactive/pixmap: Make sure to work only on the X11 backend
Even if the test has been successfully compiled against the X11 backend,
we need to ensure that it is actually running against it, otherwise bad
things will happen.
2011-11-03 13:45:21 +00:00
Emmanuele Bassi
3b38cee66b interactive/devices: Build unconditionally
The test-devices interactive test does not rely on the X11 API being
present any more, after the introduction of the device manager API.
2011-11-03 13:45:21 +00:00
Emmanuele Bassi
8249e48802 Clean up the windowing system defines
Instead of defining new symbols for the windowing systems enabled at
configure time, we can reuse the same symbols for both the compile time
and run time checks, e.g.:

  #ifdef CLUTTER_WINDOWING_X11
    if (clutter_check_windowing_backend (CLUTTER_WINDOWING_X11))
      /* use the clutter_x11_* API */
    else
  #endif
  #ifdef CLUTTER_WINDOWING_WIN32
    if (clutter_check_windowing_backend (CLUTTER_WINDOWING_WIN32))
      /* use the clutter_win32_* API */
  #endif

This scheme allows us to ensure that the input system namespace is free
for us to use and select at run time in later versions of Clutter.
2011-11-03 13:45:20 +00:00
Emmanuele Bassi
98c177def5 Clean up the backend creation
Move it to its own function.
2011-11-03 13:45:20 +00:00
Emmanuele Bassi
3987db1659 build: Make sure to remove colliding shared libraries
The compatibility links should take over any existing installed
shared library with the same soname, to avoid ldd creating stale
links.
2011-11-03 13:45:20 +00:00
Emmanuele Bassi
50c72367a8 docs: Update the README section on configure switches 2011-11-03 13:45:20 +00:00
Emmanuele Bassi
b07756e0b3 build: Implement proper platform checking
Perform the check for enabling platform-specific backends conditionally
on the 'check' value, instead of unconditionally.

Also, rename the configure switches for the backends to have a '-backend'
suffix, to avoid collisions and provide a more descriptive name.
2011-11-03 13:45:20 +00:00
Emmanuele Bassi
4b0d7f2929 build: Improve the compat libs rule
Use the same commands libtool uses when installing symbolic links for
the shared libraries.
2011-11-03 13:45:20 +00:00
Emmanuele Bassi
8eb71af23d gdk/events: Clean up the event handling code
We need debugging notes, to see what's happening when handling events.

We need to queue a (clipped) redraw when receiving a GDK_EXPOSE event.

We need to check the device (both master and source) of the event using
the GdkEvent API, and pass them to the ClutterEvent using the
corresponding Clutter API.
2011-11-03 13:45:20 +00:00
Emmanuele Bassi
405e72f2e4 egl: First attempt at cleaning up the EGL native backend
At least, let's make it compile when built along with the other
backends. In reality, it still needs to be verified as working.
2011-11-03 13:45:20 +00:00
Emmanuele Bassi
19508132df build: Move EGL-related files under egl/
Including the clutter-cex100.h.in header.
2011-11-03 13:45:20 +00:00
Emmanuele Bassi
4ee00b67b5 build: Move clutter-event-tslib.c out of egl/
Prepare for a full tslib device manager.
2011-11-03 13:45:20 +00:00
Emmanuele Bassi
6e9f474d90 Coding style and cosmetic fixes 2011-11-03 13:45:20 +00:00
Emmanuele Bassi
0c919adf50 Minimal cosmetic fix to the configure output 2011-11-03 13:45:20 +00:00
Emmanuele Bassi
fedfac3b7c Remove the X11-specific bit in ClutterStageCogl
Let's use a new virtual function in ClutterStageWindow to check whether
a platform-specific implementation does support clipped redraws.
2011-11-03 13:45:19 +00:00
Emmanuele Bassi
f58d393187 gdk: Fix Stage foreign window support
The code is generally wrong, and does not work. We need to skip the
GdkWindow creation when we have a foreing window, but we still need to
create the Cogl onscreen buffer and connect it to the GdkWindow's native
resource.
2011-11-03 13:45:19 +00:00
Emmanuele Bassi
f14cbf5bdb gdk: Allow disabling event retrieval
Just like the other backends can disable the internal event handling,
and use clutter_<backend>_handle_event() to do the native → Clutter
event translation.
2011-11-03 13:45:19 +00:00
Emmanuele Bassi
a73f1e6768 Cosmetic fixes 2011-11-03 13:45:19 +00:00
Emmanuele Bassi
21a24c862e Allow checking the backend type at run-time
Portable code should be allowed to check type backend currently being
used, so that it can use platform-specific API (not just Clutter's).

We don't want to go down the GDK route, with public types for
ClutterBackend and ClutterStageWindow implementations, and use the type
system, e.g.:

  #ifdef GDK_WINDOWING_X11
    if (GDK_IS_WINDOW_X11 (window))
      use_x11_api (window);
    else
  #endif
  #ifdef GDK_WINDOWING_WIN32
    if (GDK_IS_WINDOW_WIN32 (window))
      use_win32_api (window);
    else
  #endif
    g_critical ("Unsupported backend");

This system would make us expose the backend system, and we want to
still reserve us the option to change the backend system to increase its
granularity — e.g. choosing different input event systems regardless of
the windowing system.

This commit adds a simple function that checks the backend type against
a symbolic constant — the same constant string that can be used to
select the backend at run-time through the CLUTTER_BACKEND environment
variable.
2011-11-03 13:45:19 +00:00
Emmanuele Bassi
a09bbffd92 Implement multi-backend support
The Clutter backend split is opaque enough that should allow us to just
build all possible backends inside the same shared object, and select
the wanted backend at initialization time.

This requires some work in the build system, as well as the
initialization code, to remove duplicate functions that might cause
conflicts at build and link time. We also need to defer all the checks
of the internal state of the platform-specific API to run-time type
checks.
2011-11-03 13:45:19 +00:00