2007-01-16 Matthew Allum <mallum@openedhand.com>

* NEWS:
        Minor tweaks

        * TODO:
        Sync up, mainly with 0.3 todo items

        * clutter/clutter-behaviour.c:
        * clutter/clutter-behaviour.h:
        clutter_behaviour_get_n_actors() / clutter_behaviour_get_nth_actor()
        Additions.

        * clutter/clutter-stage.c: (clutter_stage_realize):
        Experimental (disabled) visual setting code.

        * clutter/clutter-feature.c:
        Check for GL_EXT_texture_rectangle (#198  - Frederick Riss)

        * clutter/clutter-group.c: (clutter_group_allocate_coords):
        Fix for group size allocation (#199 -  Frederick Riss)

        * clutter/clutter-texture.c: (texture_upload_data):
        Fix texture unpacking row length (#197 Frederick Riss)

        * examples/Makefile.am:
        Fix LDADD in build (#196 - Frederick Riss)
This commit is contained in:
Matthew Allum 2007-01-16 14:19:39 +00:00
parent 3b7a8c0c5c
commit c0aa013758
10 changed files with 120 additions and 35 deletions

View File

@ -1,3 +1,31 @@
2007-01-16 Matthew Allum <mallum@openedhand.com>
* NEWS:
Minor tweaks
* TODO:
Sync up, mainly with 0.3 todo items
* clutter/clutter-behaviour.c:
* clutter/clutter-behaviour.h:
clutter_behaviour_get_n_actors() / clutter_behaviour_get_nth_actor()
Additions.
* clutter/clutter-stage.c: (clutter_stage_realize):
Experimental (disabled) visual setting code.
* clutter/clutter-feature.c:
Check for GL_EXT_texture_rectangle (#198 - Frederick Riss)
* clutter/clutter-group.c: (clutter_group_allocate_coords):
Fix for group size allocation (#199 - Frederick Riss)
* clutter/clutter-texture.c: (texture_upload_data):
Fix texture unpacking row length (#197 Frederick Riss)
* examples/Makefile.am:
Fix LDADD in build (#196 - Frederick Riss)
2007-01-16 Tomas Frydrych <tf@openedhand.com>
* clutter/clutter-fixed.h:

2
NEWS
View File

@ -10,7 +10,7 @@ Clutter 0.2 ()
be destroyed.
o Add basic run-time detection of GL features.
+ Use GL_TEXTURE_RECTANGLE_ARB if available.
+ Attempt to set up sync to vblank
+ Attempt to set up sync to vblank (set CLUTTER_VBLANK=none to disable)
o Add API for behaviours. A ClutterBehaviour is an object which
drives a set of actors using one or more properties depending
on the value of an "alpha" function.

30
TODO
View File

@ -1,37 +1,29 @@
TODO
====
Posiible New Features
New Features
==
- Gradients
- Some kind of glitz/cairo integration - a GlitzDrawable Actor ?
- More portability - GL ES, DirectFB?, Windows, Mac ?
- Overhaul co-ordinate system ( more precision ? )
- Width-for-height allocation of the actors (esp. ClutterLabel)
- Complete over-haul of the ClutterMedia interface
o remove the accessors from the vfuncs and use pure properties
o add a way to get a timeline from the media source, to be
used inside a ClutterAlpha and drive a behaviour
o add signals for start and stop
- Move the events to the actors instead of the stage
o add an event queue to clutter so that we can push/pop the
events from it
o add support for mouse double click and scroll events
- Add focus handling API
- Add an entry actor
(See backends branch, GL ES for 0.3)
- Text entry actor (0.3).
- VBox and HBox ClutterGroup subclasses (0.3).
- Figure out focus model + binding events to actors (0.3).
- Fragment shading ?
- Gradients
- More drawing primitives (or just cairo?)
Optimisations
==
- Display lists.
- labels being more conservative on texture creation.
o blitting to textures less
- Custom source rather than idle handler for paints ?
- General oprofiling.
Other
==
- Unit tests
- Much improved examples / demos
- Sort Documentation
- Bindings to languages other than just Python and Perl.
- Improve documentation.
- Overhaul co-ordinate system ( more precision ? )

View File

@ -244,6 +244,45 @@ clutter_behaviour_remove (ClutterBehaviour *behave,
behave->priv->actors = g_slist_remove (behave->priv->actors, actor);
}
/**
* clutter_behaviour_get_n_actors:
* @behave: a #ClutterBehaviour
*
* Gets the number of actors this behaviour is applied too.
*
* Return value: The number of applied actors
*
* Since: 0.2
*/
gint
clutter_behaviour_get_n_actors (ClutterBehaviour *behave)
{
g_return_val_if_fail (CLUTTER_IS_BEHAVIOUR (behave), 0);
return g_list_length (behave->priv->actors);
}
/**
* clutter_behaviour_get_nth_actor:
* @behave: a #ClutterBehaviour
* @num: the index of an actor this behaviour is applied too.
*
* Gets an actor the behaviour was applied to referenced by index num.
*
* Return value: A Clutter actor or NULL if index is invalid.
*
* Since: 0.2
*/
ClutterActor*
clutter_behaviour_get_nth_actor (ClutterBehaviour *behave,
gint num)
{
g_return_val_if_fail (CLUTTER_IS_BEHAVIOUR (behave), NULL);
return g_list_nth_data (behave->priv->actors, num);
}
/**
* clutter_behaviour_actors_foreach:
* @behave: a #ClutterBehaviour

View File

@ -105,6 +105,13 @@ void clutter_behaviour_remove (ClutterBehaviour *beh
void clutter_behaviour_actors_foreach (ClutterBehaviour *behave,
ClutterBehaviourForeachFunc func,
gpointer data);
gint clutter_behaviour_get_n_actors (ClutterBehaviour *behave);
ClutterActor* clutter_behaviour_get_nth_actor (ClutterBehaviour *behave,
gint num);
GSList * clutter_behaviour_get_actors (ClutterBehaviour *behave);
ClutterAlpha *clutter_behaviour_get_alpha (ClutterBehaviour *behave);
void clutter_behaviour_set_alpha (ClutterBehaviour *behave,

View File

@ -253,7 +253,8 @@ clutter_feature_init (void)
glx_extensions = glXQueryExtensionsString (clutter_xdisplay (),
clutter_xscreen ());
if (check_gl_extension ("GL_ARB_texture_rectangle", gl_extensions))
if (check_gl_extension ("GL_ARB_texture_rectangle", gl_extensions)
|| check_gl_extension ("GL_EXT_texture_rectangle", gl_extensions))
__features->flags |= CLUTTER_FEATURE_TEXTURE_RECTANGLE;
/* vblank */

View File

@ -131,7 +131,7 @@ clutter_group_allocate_coords (ClutterActor *self,
if (box->x2 == 0 || cbox.x2 > box->x2)
box->x2 = cbox.x2;
if (box->y2 == 0 || cbox.y2 < box->y2)
if (box->y2 == 0 || cbox.y2 > box->y2)
box->y2 = cbox.y2;
}
}
@ -265,7 +265,7 @@ clutter_group_get_children (ClutterGroup *self)
gint
clutter_group_get_n_children (ClutterGroup *self)
{
g_return_val_if_fail (CLUTTER_IS_GROUP (self), NULL);
g_return_val_if_fail (CLUTTER_IS_GROUP (self), 0);
return g_list_length (self->priv->children);
}

View File

@ -405,11 +405,32 @@ clutter_stage_realize (ClutterActor *actor)
};
if (priv->xvisinfo)
XFree(priv->xvisinfo);
{
XFree(priv->xvisinfo);
priv->xvisinfo = None;
}
#if 0
/* Attempted fix at GTK 'white' textures - made no difference :( */
if (priv->is_foreign_xwin && priv->xwin != None)
{
XWindowAttributes win_attr;
XVisualInfo vis_info;
int n;
priv->xvisinfo = glXChooseVisual (clutter_xdisplay(),
clutter_xscreen(),
gl_attributes);
XGetWindowAttributes (clutter_xdisplay(), priv->xwin, &win_attr);
vis_info.screen = clutter_xscreen();
vis_info.visualid = XVisualIDFromVisual (win_attr.visual);
priv->xvisinfo = XGetVisualInfo (clutter_xdisplay(),
VisualScreenMask|VisualIDMask,
&vis_info, &n);
printf("made %li\n", priv->xvisinfo);
}
#endif
if (priv->xvisinfo == None)
priv->xvisinfo = glXChooseVisual (clutter_xdisplay(),
clutter_xscreen(),
gl_attributes);
if (!priv->xvisinfo)
{
g_critical ("Unable to find suitable GL visual.");

View File

@ -539,12 +539,11 @@ texture_upload_data (ClutterTexture *texture,
glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glPixelStorei (GL_UNPACK_ROW_LENGTH, priv->width);
glPixelStorei (GL_UNPACK_ROW_LENGTH, src_w);
glPixelStorei (GL_UNPACK_ALIGNMENT, 4);
if (create_textures)
{
glTexImage2D(priv->target_type,
0,
(bpp == 4) ?

View File

@ -1,27 +1,25 @@
noinst_PROGRAMS = test super-oh behave
INCLUDES = -I$(top_srcdir)/
LDADD = $(top_builddir)/clutter/libclutter-@CLUTTER_MAJORMINOR@.la
test_SOURCES = test.c
test_CFLAGS = $(CLUTTER_CFLAGS) $(GCONF_CFLAGS)
test_LDFLAGS = \
$(CLUTTER_LIBS) \
$(GCONF_LIBS) \
$(top_builddir)/clutter/libclutter-@CLUTTER_MAJORMINOR@.la
$(GCONF_LIBS)
super_oh_SOURCES = super-oh.c
super_oh_CFLAGS = $(CLUTTER_CFLAGS) $(GCONF_CFLAGS)
super_oh_LDFLAGS = \
$(CLUTTER_LIBS) \
$(GCONF_LIBS) \
$(top_builddir)/clutter/libclutter-@CLUTTER_MAJORMINOR@.la
$(GCONF_LIBS)
behave_SOURCES = behave.c
behave_CFLAGS = $(CLUTTER_CFLAGS) $(GCONF_CFLAGS)
behave_LDFLAGS = \
$(CLUTTER_LIBS) \
$(GCONF_LIBS) \
$(top_builddir)/clutter/libclutter-@CLUTTER_MAJORMINOR@.la
$(GCONF_LIBS)
EXTRA_DIST = redhand.png \