2008-06-10 Thomas Thurman <tthurman@gnome.org>
* test/tokentest: A preliminary attempt at a test for the
theme expression tokeniser.
svn path=/trunk/; revision=3753
Bug #950 - AltGr not handled
* clutter/osx/clutter-event-osx.c: (clutter_event_osx_translate):
* clutter/x11/clutter-event-x11.c: (translate_key_event):
* tests/test-events.c: (fill_keybuf), (input_cb):
Apply patch from Tommi Komulainen, fill the unicode_value attribute of
the ClutterKeyEvent struct. Also use XKeycodeToKeysym, as suggested in
bug #950, comment #2
* clutter/clutter-texture.c:
Minor reformatting cleanups. Emit filter-quality prop on change.
* clutter/glx/clutter-glx-texture-pixmap.c:
Support mipmaps via filter quality prop.
Bug#959 - Multiple minor improvements
* configure.ac: pick up GDKPIXBUF_PREFIX from gdk-pixbuf-2.0
module, not pango
* clutter/clutter-keysyms-table.h: cosmetic fix for ifdef guard
name in the comment (leftover from earlier commit)
* tests/test-textures.c: don't depend on GdkPixbuf as we're not
using any actual features from it, just plain pixel buffer
manipulation
* clutter/clutter-timeline.c
* clutter/clutter-timeline.h (clutter_timeline_list_markers): Use
gsize* to return number of items, not guint*
* tests/test-paint-wrapper.c: use correct type (guint*) in call
to clutter_actor_get_size()
* tests/test-depth.c (janus_group): properly take height2 into
account when calculating needed height for the rectangle
* tests/test-cogl-tex-getset.c: use rowstride, not width*4, when
calculating pixel offsets
* tests/test-cogl-tex-getset.c: Don't assume/force RGBA format,
also support ARGB format (needed with quartz imageloader.)
Bug #930 - add support for quartz imagebackend
* clutter/cogl/common/cogl-bitmap-pixbuf.c
(_cogl_bitmap_from_file): When USE_QUARTZ is defined implement
using Core Graphics.
* configure.ac: support --with-imagebackend=quartz and print
which imagebackend is selected. Make quartz default on OSX
Bug #930 - add support for quartz imagebackend
* clutter/cogl/common/cogl-bitmap-pixbuf.c
(_cogl_bitmap_from_file): When USE_QUARTZ is defined implement
using Core Graphics.
* configure.ac: support --with-imagebackend=quartz and print
which imagebackend is selected. Make quartz default on OSX
* configure.ac: Clean up a bit the X11 and X extensions
checks with PKG_CHECK_EXISTS(). Since we are filling up the
X11_CFLAGS and X11_LIBS variables ourselves there is no
point in polluting the Makefiles with unused variables.
* clutter/Makefile.am: Remove the pkg-config variable
evaluation and use the values retrieved from the configure
script.
* clutter/clutter-entry.c: (clutter_entry_ensure_layout),
(clutter_entry_handle_key_event_internal),
(clutter_entry_set_text):
Fix mix-up of character and byte counts, handle unicode correctly.
Use clutter_key_event_unicode() instead of
clutter_keysym_to_unicode().
* clutter/clutter-event.c: (clutter_key_event_unicode):
Don't ignore ClutterKeyEvent.unicode_value
* clutter/clutter-keysyms-table.h:
Rename header define so as not to conflict with clutter-keysyms.h
Patch originally by Emmanuele Bassi, with input from Tommi Komulainen.
control the use of mipmapping.
* clutter/clutter-texture.h: added ClutterTextureQuality enum.
* tests/test-texture-quality.c: new test.
* tests/Makefile.am: added test-texture-quality
* clutter/clutter-texture.c:
(clutter_texture_class_init): Do not unrealize on hide(), and
do not realize() on show. By default, clutter_actor_show() will
realize ourselves, and we don't want to unrealize when hidden
to avoid paying the penalty of reading back the texture data
from the video memory.
* tests/test-actors.c: Show all textures again when pressing
the 'r' key.
Bug #927 - Created ports for clutter, clutter-cairo in macports
* clutter/clutter-docs.sgml: Update the OSX build instructions
and mention that the preferred way to build Clutter for developing
applications is via MacPorts. (#927, Idan Gazit)
sampler2DRect now that GL_TEXTURE_RECTANGLE support is disabled in
revision 2834. The ClutterTexture actor now has the
'disable-slicing' property set. The distance in texture
coordinates between pixels is passed in as a uniform so that the
box-blur shader can still work.
Bug #955 - ClutterLabel is missing fallback resolution handling
* clutter/clutter-label.c (clutter_label_init): Handle
clutter_backend_get_resolution() return value -1 similar to
ClutterEntry (falling back to 96.0). (#955, Tommi Komulainen)
(clutter_stage_egl_realize): Use ES 2 renderable type when
building for GLES 2.
* clutter/eglnative/clutter-event-egl.c (get_backend_time): Added
a NULL for the microseconds parameter of g_timer_elapsed.
* clutter/eglnative/clutter-stage-egl.h:
* clutter/eglnative/clutter-egl.h:
* clutter/eglnative/clutter-backend-egl.h: Include
clutter-egl-headers.h instead of including the GL headers directly
so it can include gl2.h when building for GLES 2.
* clutter/eglnative/clutter-egl-headers.h:
* clutter/eglnative/Makefile.am (libclutter_eglnative_la_SOURCES):
Added clutter-egl-headers.h
* clutter/cogl/gles/cogl-fixed-fragment-shader.glsl: GLES 2
doesn't provide a default precision for floats in the fragment
shader and it will reject the shader if there isn't one.
(clutter_stage_egl_realize): Use ES 2 renderable type when
building for GLES 2.
* clutter/eglnative/clutter-event-egl.c (get_backend_time): Added
a NULL for the microseconds parameter of g_timer_elapsed.
* clutter/eglnative/clutter-stage-egl.h:
* clutter/eglnative/clutter-egl.h:
* clutter/eglnative/clutter-backend-egl.h: Include
clutter-egl-headers.h instead of including the GL headers directly
so it can include gl2.h when building for GLES 2.
* clutter/eglnative/clutter-egl-headers.h:
* clutter/eglnative/Makefile.am (libclutter_eglnative_la_SOURCES):
Added clutter-egl-headers.h
* clutter/cogl/gles/cogl-fixed-fragment-shader.glsl: GLES 2
doesn't provide a default precision for floats in the fragment
shader and it will reject the shader if there isn't one.
Bug #948 - Remove texture rectangle support
* clutter/clutter-feature.c:
* clutter/clutter-feature.h:
* clutter/clutter-texture.c:
* clutter/cogl/gl/cogl.c:
* clutter/glx/clutter-glx-texture-pixmap.c:
Remove support for GL_TEXTURE_RECTANGLE_ARB (now using just regular
2D textures, with optional npots extension). Simplifys code, + makes
mipmap & shader support much more sane.
Bug #948 - Remove texture rectangle support
* clutter/clutter-feature.c:
* clutter/clutter-feature.h:
* clutter/clutter-texture.c:
* clutter/cogl/gl/cogl.c:
* clutter/glx/clutter-glx-texture-pixmap.c:
Remove support for GL_TEXTURE_RECTANGLE_ARB (now using just regular
2D textures, with optional npots extension). Simplifys code, + makes
mipmap & shader support much more sane.
Bug 913 - cogl fails to build on OSX
* clutter/cogl/gl/cogl-fbo.c: define GL_READ_FRAMEBUFFER_EXT and
GL_DRAW_FRAMEBUFFER_EXT if not defined in the build system. The
#ifdef can fail if they're not #defines but variables or enums.
As the values are supposed to be industry standard even then
it shouldn't have ill effects.
Bug 913 - cogl fails to build on OSX
* clutter/cogl/gl/cogl-fbo.c: define GL_READ_FRAMEBUFFER_EXT and
GL_DRAW_FRAMEBUFFER_EXT if not defined in the build system. The
#ifdef can fail if they're not #defines but variables or enums.
As the values are supposed to be industry standard even then
it shouldn't have ill effects.
Bug #911 - OSX: add multistage support
* clutter/osx/clutter-backend-osx.{c,h}
(clutter_backend_osx_init_stage, clutter_backend_osx_get_stage,
clutter_backend_osx_redraw, clutter_backend_osx_create_stage,
clutter_backend_osx_ensure_context, clutter_backend_osx_class_init,
clutter_backend_osx_dispose, ClutterGLView:drawRect:):
* clutter/osx/clutter-stage-osx.{c,h} (clutter_stage_osx_realize,
ClutterGLWindow:setFrameSize:):
Adapt to new multistage backend API. Don't keep a pointer to
default stage. Derive from ClutterActor instead of ClutterStage.
Implement ClutterStageWindow interface. Paint, resize and
otherwise manipulate the wrapper rather than self when necessary.
(clutter_backend_post_parse): Create our singleton GL context
here. We could probably create the context when the default
stage is created, but I think this is more clean.
* clutter/osx/clutter-event-osx.c (clutter_event_osx_translate)
* clutter/osx/clutter-stage-osx.c (clutter_stage_osx_state_update,
ClutterGLWindow:windowShouldClose:):
* clutter/osx/clutter-stage-osx.h: Export ClutterGLWindow interface
for clutter-event-osx.c to easily get the stage for NSWindow.
Fill in ClutterEventAny::stage on our events.
Consistently use 'stage_osx' and 'wrapper' as variable names
when referring to ClutterStageOSX and ClutterStage objects
respectively.
* tests/Makefile.am:
* tests/test-paint-wrapper.c: Add a test case (merely, a copy
of test-actors.c) that verifies that handlers to the ::paint
signal are called in the right order.
Bug #840 - Implement prepare-paint and finish-paint signals.
* clutter/clutter-actor.c:
(clutter_actor_class_init): Add the ::paint, ::realize and
::unrealize signals to ClutterActor. It is possible to
override the paint, realization and unrealization of an
actor without subclassing it. The ::paint signal handlers
have the same limitations of a ClutterActor::paint implementation
inside a subclass.
(clutter_actor_realize),
(clutter_actor_unrealize),
(clutter_actor_paint): Emit the signals instead of calling
the functions from the class vtable.
2008-06-05 Thomas Thurman <tthurman@gnome.org>
* src/compositor/compositor-xrender.c (paint_root, destroy_win,
create_root_buffer, paint_windows, repair_screen, window_has_shadow,
xrender_set_active_window, paint_dock_shadows, unmap_win, restack_win,
make_shadow, resize_win, process_property_notify, free_win,
process_configure_notify, process_circulate_notify, add_damage):
defensive programming; check meta_screen_get_compositor_data()
throughout in case it returns NULL. In particular, when this
happened in a certain situation in xrender_set_active_window
this caused a segfault; refs #530702 (and LP#178953 has more data)
but this doesn't close them.
svn path=/trunk/; revision=3751