Commit Graph

6083 Commits

Author SHA1 Message Date
Emmanuele Bassi
02d14ec15c offscreen: Plug a leak in an error path
When creating a CoglOffscreen we take a reference on the texture handle,
but in case of error we never release it.

We should take that reference only on success.

http://bugzilla.clutter-project.org/show_bug.cgi?id=2620
2011-04-04 14:42:36 +01:00
Emmanuele Bassi
28c0a4d6be osx: Do not unrealize on hide
Calling unrealize on ClutterStage::hide will cause an assertion
failure and other badness when we destroy the stage.
2011-04-02 22:36:38 +01:00
Robert Bragg
130c79ac03 glx: throttle clipped redraws
When we come to presenting the result of a clipped redraw to the front
buffer with a blit we need to ensure that all the rendering is done,
otherwise redraw operations that are slower than the framerate can queue
up in the pipeline during a heavy animation, causing a larger and larger
backlog of rendering visible as lag to the user.

Note: Since calling glFinish() and sycnrhonizing the CPU with the GPU is
far from ideal, we hope that this is only a short term solution.

One idea is to using sync objects to track render completion so we can
throttle the backlog (ideally with an additional extension that lets us
get notifications in our mainloop instead of having to busy wait for the
completion.)

Another option is to support clipped redraws by reusing the contents of
old back buffers such that we can flip instead of using a blit and then
we can use GLX_INTEL_swap_events to throttle. For this though we would
still probably want an additional extension so we can report the limited
region of the window damage to X/compositors.

Thanks to Owen Taylor and Alexander Larsson for reporting the problem.
2011-04-01 18:50:55 +01:00
Andrej Žnidaršič
ca6e7f8afa Updated Slovenian translation 2011-04-01 18:57:01 +02:00
Andrej Žnidaršič
53368d127a Updated Slovenian translation 2011-04-01 18:50:58 +02:00
Samuel Degrande
4594d1bafe Removes the addition of the .exe extension to unit-test scripts, on win32.
On win32, test scripts are created with a .exe extension.
Under mingw, a .exe script is launched in 16 bit compatibility mode (through
ntvdm), and so it just does not run.

http://bugzilla.clutter-project.org/show_bug.cgi?id=2619
2011-04-01 17:08:25 +01:00
Emmanuele Bassi
564765c45c build: Update the release rules 2011-04-01 16:31:49 +01:00
Emmanuele Bassi
e368538ae0 align-constraint: Fix typo in the vertical align
We're clamping the x1 coordinate to the nearest pixel, instead of doing
so for the y1 coordinate.
2011-04-01 15:36:22 +01:00
Emmanuele Bassi
524eb23eb7 paint-volume: Zero-sized actors don't have paint volume
If an actor has an allocated dimension equal to 0 then it has no paint
volume.
2011-04-01 11:43:34 +01:00
Emmanuele Bassi
7e6bf1612b texture: Add some safeguards for paint volumes of empty textures
If the Texture has no material, and the image size is 0x0 then the actor
doesn't have any paint volume.
2011-04-01 11:42:41 +01:00
Emmanuele Bassi
7ffeaef0e9 po: Update the PO files 2011-03-31 17:12:27 +01:00
Emmanuele Bassi
5e8b491d28 po: Track Clutter's POT file in Git
If no POT file is found, gettext will automatically create it; this, in
turn, will cause msgmerge to be run, and that will cause the PO files to
be touched and changed at the very first call for `make`.

Having the PO files with unstaged changes will ultimately lead to merge
issues will pulling from the remote repository between releases - unless
`git checkout -f` is called prior to `git pull -r`.

I think intltool only has some rule to avoid that from happening unless
on dist, but I have no intention of dragging intltool into the build of
a library that barely has localized messages.
2011-03-31 17:12:27 +01:00
Matej Urbančič
e471ad5802 Added Slovenian translation 2011-03-30 18:36:42 +02:00
Piotr Drąg
82b31ba444 Imported translations from Transifex.net 2011-03-29 17:40:50 +02:00
Piotr Drąg
1bcec53d06 Updated Polish translation 2011-03-29 17:25:11 +02:00
Piotr Drąg
7cb0465797 Updated POTFILES.in and removed clutter-1.0.pot 2011-03-29 15:11:30 +02:00
Emmanuele Bassi
620727689f moduleset: Some modules have been moved to gnome.org
So we need to update the moduleset.
2011-03-28 18:36:33 +01:00
Emmanuele Bassi
a4d29ca2e1 build: Fix previous commit
The previous commit broke the backend-specific required pkg-config
packages.
2011-03-24 14:13:59 +00:00
Emmanuele Bassi
0eee5788df build: Remove bash-isms 2011-03-22 17:18:07 +00:00
Emmanuele Bassi
a5c87c74a6 build: Use AC_CANONICAL_HOST
Since we're checking the value of the $host variable, it's a good idea
to use the canonicalization support in autoconf.
2011-03-22 17:10:49 +00:00
Emmanuele Bassi
1de13713ae doap: Fix the categories 2011-03-22 14:46:35 +00:00
Emmanuele Bassi
a76e0041af drag-action: Fix a compiler warning
Use arguments of the right signedness when passing pointers.
2011-03-21 12:41:40 +00:00
Emmanuele Bassi
a51c4cff72 Merge remote-tracking branch 'elliot/cookbook-effects-basic'
* elliot/cookbook-effects-basic:
  docs: Remove checks for whether an effect is disabled
  docs: Add recipe about implementing a ClutterEffect
  docs: Add example of setting background color with ClutterEffect
  docs: Add example of a border added through ClutterEffect
2011-03-21 12:34:41 +00:00
Neil Roberts
fd89dee1b0 clutter-clone: Make clutter_clone_get_paint_volume static
clutter_clone_get_paint_volume was being exported from the shared
library because the function wasn't declared static. This function
shouldn't be exposed because it should be accessed through
clutter_actor_get_paint_volume.
2011-03-18 14:11:08 +00:00
Elliot Smith
57a5f2296a docs: Remove checks for whether an effect is disabled
pre_paint() and post_paint() implementations don't need
to check whether an effect is disabled: Clutter will
not apply an effect unless it is enabled.

So remove code which checks whether the effect is
enabled or disabled from the example applications and the
documentation.
2011-03-17 15:56:55 +00:00
Elliot Smith
b5af8fbfac docs: Add recipe about implementing a ClutterEffect
Add a recipe showing how to implement two simple
effects, based on ClutterEffect: an always gray background,
and a border with configurable width and color.

Also explains the necessity to queue a redraw on
the associated actor if the effect's properties change,
and shows how to implement that.

The example gives the GObject code for both effects,
as well as an example application showing how to use them.
The example also demonstrates how to disable/enable an effect,
making the border round an actor togglable.
2011-03-17 15:56:55 +00:00
Elliot Smith
5732b1184f docs: Add example of setting background color with ClutterEffect
Add example of a simple background color effect applied via
pre_paint() implementation in a ClutterEffect subclass.

This is a simple effect with an incomplete GObject
implementation (no properties, setters or getters)
to make it as easy to follow as possible.
2011-03-17 15:56:55 +00:00
Elliot Smith
a81dbcf483 docs: Add example of a border added through ClutterEffect
Add a basic example showing how to implement a ClutterEffect
post_paint() function to overlay a highlight border over a
rectangular actor.
2011-03-17 15:56:55 +00:00
Neil Roberts
1d14e7468b clutter-offscreen-effect: Paint with 'nearest' texture filter mode
The texture containing the image for the redirected actor will always
be painted at a 1:1 texel:pixel ratio so there's no need to use linear
filtering. This should also counteract some of the effects of rounding
errors when calculating the geometry for the quad.
2011-03-17 12:20:53 +00:00
Emmanuele Bassi
6910be9b23 docs: Update RELEASING 2011-03-16 13:09:41 +00:00
Neil Roberts
f23a7583e1 mingw-fetch-dependencies.sh: Add a wrapper for pkg-config
On a Fedora system (and maybe others) there is a wrapper script called
i686-pc-mingw32-pkg-config. This script unsets the PKG_CONFIG_PATH
variable and then sets the PKG_CONFIG_LIBDIR variable so that it won't
pick up the native system .pc files. This breaks cross compiling in
mingw-fetch-dependencies.sh because it ends up removing its attempts
to set a local search path.

To fix this, the mingw-fetch-dependencies script now generates its own
wrapper script which instead sets PKG_CONFIG_LIBDIR to the local
clutter-cross prefix and then runs the original pkg-config program
from the search path. This should have the same benefit of preventing
it from finding native system .pc files on systems that don't provide
a cross pkg-config. The cross compiling for json-glib and the
recommend args to pass to configure when building clutter are updated
to set the PKG_CONFIG varible to point to this wrapper script.
2011-03-16 13:06:52 +00:00
Robert Bragg
4dc8ccf9ea win32: remove env.sh generated by mingw-fetch-dependencies.sh
Since there is very little now left in the env.sh file generated by
mingw-fetch-dependencies.sh it can be removed. What remained (The
CFLAGS="-mms-bitfields" and PKG_CONFIG_PATH=$ROOT_DIR/lib/pkgconfig) can
simply be passed explicitly when calling ./configure.
2011-03-16 11:23:38 +00:00
Robert Bragg
5faf7666ec win32: remove deprecated -mno-cygwin options from env.sh
This removes the use of -mno-cygwin from our generated env.sh for cross
compiling with mingw.

I don't know that anyone is building clutter under cygwin, and our
BuildingClutterOnWindows wiki page only describes building with msys not
cygwin so I think its fair to assume that this build configuration is
untested and thus not supported by us currently. Since the -mno-cygwin
option is deprecated it could well be that there is a better
cross-compilation solution available for cygwin these days if you want
to build programs that don't depend on cygwin libraries.
2011-03-16 11:23:38 +00:00
Robert Bragg
861bda91d5 win32: Strip unneeded flags from env.sh
This remove CXXFLAGS since we don't have any c++ code in Clutter and
also removes the redundant -L$ROOT_DIR/lib from LDFLAGS and
-I$ROOT_DIR/include from CPPFLAGS and CFLAGS. (These should get added by
pkg-config)
2011-03-16 11:23:38 +00:00
Robert Bragg
6340f3a24b win32: Add blurb at end of mingw helper script
This adds some blurb at the end the mingw-fetch-dependencies.sh script
that gives an example of how to go on and build clutter after fetching
all dependencies.
2011-03-16 11:23:38 +00:00
Robert Bragg
130135a09f win32: support building json-glib in mingw script
Since Tor does not currently provide win32 binaries for json-glib we
need to cross compile it before we can build clutter. This extends
mingw-fetch-dependencies.sh so it can fetch, unpack and cross-compile
json-glib into the same prefix as the binary dependencies.
2011-03-16 11:23:38 +00:00
Robert Bragg
820765eea0 win32: don't set CC,CPP,AR,NM,LD etc in mingw env.sh
It shouldn't be necessary to explicitly override CC,CPP,AR,NM,LD etc in
the env.sh helper script that mingw-fetch-dependencies.sh generates.
Clutter's ./configure script should figure all of those out for us.
2011-03-16 11:23:37 +00:00
Robert Bragg
ed025f1c85 win32: remove automatic build option from mingw script
This removes the "Do you want to checkout and build Clutter?" option
from the mingw-cross-compile.sh script and renames the script
mingw-fetch-dependencies.sh

As it stands the mingw-cross-compile.sh script isn't enough to fetch all
the dependencies for building clutter, since Tor doesn't provide binaries
for json-glib so the option to checkout and build clutter can't work.

Also it doesn't seem ideal to clone a fresh clutter repo instead of
being able to compile the source of the current repo.
2011-03-16 11:22:47 +00:00
Robert Bragg
e51749d33c win32: mkdir -p win32 needed for out of tree builds
if cross compiling clutter using mingw using an out of tree build
directory then a pre-requisite for creating the resources.o file
containing the transparent cursor is for the win32 directory itself to
be created at $(top_builddir)/clutter/win32.
2011-03-16 11:22:20 +00:00
Neil Roberts
e4e318c9f8 cogl: Use GHookList instead of CoglCallbackList
glib already has a data type to manage a list of callbacks called a
GHookList so we might as well use it instead of maintaining Cogl's own
type. The glib version may be slightly more efficient because it
avoids using a GList and instead encodes the prev and next pointers
directly in the GHook structure. It also has more features than
CoglCallbackList.
2011-03-14 18:18:15 +00:00
Emmanuele Bassi
810a42c418 clutter.doap: Add my gnome userid
Not strictly needed, since we're not hosted on GNOME, but it can still
be useful when extracting meta-data from the DOAP file.
2011-03-14 14:17:14 +00:00
Emmanuele Bassi
298c88e658 AUTHORS: Note that the file is unmaintained
The list of authors can be extracted from the Git log; the AUTHORS file
is maintained for mere historical reasons.
2011-03-14 14:16:16 +00:00
Emmanuele Bassi
e6cfa04339 README.md: fix a dumb typo 2011-03-14 14:00:12 +00:00
Emmanuele Bassi
4333507b50 Add MarkDown version of the README 2011-03-14 13:57:26 +00:00
Øyvind Kolås
9753046ca0 stage: handle ACCEPT_FOCUS in set_/get_property 2011-03-11 17:14:54 +00:00
Robert Bragg
49ca9e8f12 culling: Don't cull actors not being painted on the stage
Previously we were applying the culling optimization to any actor
painted without considering that we may be painting to an offscreen
framebuffer where the stage clip isn't applicable.

For now we simply expose a getter for the current draw framebuffer
and we can assume that a return value of NULL corresponds to the
stage.

Note: This will need to be updated as stages start to be backed by real
CoglFramebuffer objects and so we won't get NULL in those cases.
2011-03-10 21:02:29 +00:00
Robert Bragg
5ce13b58fe debug: Add more CLIPPING debug notes
To give quick visibility to the things going on relating to clipping and
culling this adds some more CLIPPING debug notes to clutter-actor.c and
clutter-stage.c
2011-03-10 19:07:50 +00:00
Robert Bragg
3303b08174 culling: check volume->is_empty before ->is_complete
As documented in cogl-pipeline-private.h, there is a precedence to the
ClutterPaintVolume bitfields that should be considered whenever we
implement code that manipulates PaintVolumes...

Firstly if ->is_empty == TRUE then the values for ->is_complete and
->is_2d are undefined, so we should typically check ->is_empty as the
first priority.

This fixes a bug in _clutter_paint_volume_cull() whereby we were
checking pv->is_complete before checking pv->is_empty which was
resulting in assertions for actors with no size.
2011-03-10 14:02:37 +00:00
Jasper St. Pierre
0b9aa1fa24 cogl-clip-state: Adapt to experimental cogl2 API.
The current clip state implementation couldn't be used in
conjunction with the CoglPath experimental API.

http://bugzilla.clutter-project.org/show_bug.cgi?id=2594

Signed-off-by: Neil Roberts <neil@linux.intel.com>
2011-03-10 13:05:43 +00:00
Neil Roberts
9cba5b83bd cogl-path: Optimise paths that are just a rectangle
Drawing and clipping to paths is generally quite expensive because the
geometry has to be tessellated into triangles in a single VBO which
breaks up the journal batching. If we can detect when the path
contains just a single rectangle then we can instead divert to calling
cogl_rectangle which will take advantage of the journal, or by pushing
a rectangle clip which usually ends up just using the scissor.

This patch adds a boolean to each path to mark when it is a
rectangle. It gets cleared whenever a node is added or gets set to
TRUE whenever cogl2_path_rectangle is called. This doesn't try to
catch cases where a rectangle is composed by cogl_path_line_to and
cogl_path_move_to commands.
2011-03-09 18:28:48 +00:00