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:
parent
3b7a8c0c5c
commit
c0aa013758
28
ChangeLog
28
ChangeLog
@ -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>
|
2007-01-16 Tomas Frydrych <tf@openedhand.com>
|
||||||
|
|
||||||
* clutter/clutter-fixed.h:
|
* clutter/clutter-fixed.h:
|
||||||
|
2
NEWS
2
NEWS
@ -10,7 +10,7 @@ Clutter 0.2 ()
|
|||||||
be destroyed.
|
be destroyed.
|
||||||
o Add basic run-time detection of GL features.
|
o Add basic run-time detection of GL features.
|
||||||
+ Use GL_TEXTURE_RECTANGLE_ARB if available.
|
+ 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
|
o Add API for behaviours. A ClutterBehaviour is an object which
|
||||||
drives a set of actors using one or more properties depending
|
drives a set of actors using one or more properties depending
|
||||||
on the value of an "alpha" function.
|
on the value of an "alpha" function.
|
||||||
|
30
TODO
30
TODO
@ -1,37 +1,29 @@
|
|||||||
TODO
|
TODO
|
||||||
====
|
====
|
||||||
|
|
||||||
Posiible New Features
|
New Features
|
||||||
==
|
==
|
||||||
|
|
||||||
- Gradients
|
|
||||||
- Some kind of glitz/cairo integration - a GlitzDrawable Actor ?
|
|
||||||
- More portability - GL ES, DirectFB?, Windows, Mac ?
|
- More portability - GL ES, DirectFB?, Windows, Mac ?
|
||||||
- Overhaul co-ordinate system ( more precision ? )
|
(See backends branch, GL ES for 0.3)
|
||||||
- Width-for-height allocation of the actors (esp. ClutterLabel)
|
- Text entry actor (0.3).
|
||||||
- Complete over-haul of the ClutterMedia interface
|
- VBox and HBox ClutterGroup subclasses (0.3).
|
||||||
o remove the accessors from the vfuncs and use pure properties
|
- Figure out focus model + binding events to actors (0.3).
|
||||||
o add a way to get a timeline from the media source, to be
|
- Fragment shading ?
|
||||||
used inside a ClutterAlpha and drive a behaviour
|
- Gradients
|
||||||
o add signals for start and stop
|
- More drawing primitives (or just cairo?)
|
||||||
- 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
|
|
||||||
|
|
||||||
Optimisations
|
Optimisations
|
||||||
==
|
==
|
||||||
|
|
||||||
- Display lists.
|
- Display lists.
|
||||||
- labels being more conservative on texture creation.
|
|
||||||
o blitting to textures less
|
|
||||||
- Custom source rather than idle handler for paints ?
|
- Custom source rather than idle handler for paints ?
|
||||||
|
- General oprofiling.
|
||||||
|
|
||||||
Other
|
Other
|
||||||
==
|
==
|
||||||
- Unit tests
|
- Unit tests
|
||||||
- Much improved examples / demos
|
- Much improved examples / demos
|
||||||
- Sort Documentation
|
|
||||||
- Bindings to languages other than just Python and Perl.
|
- Bindings to languages other than just Python and Perl.
|
||||||
|
- Improve documentation.
|
||||||
|
- Overhaul co-ordinate system ( more precision ? )
|
@ -244,6 +244,45 @@ clutter_behaviour_remove (ClutterBehaviour *behave,
|
|||||||
behave->priv->actors = g_slist_remove (behave->priv->actors, actor);
|
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:
|
* clutter_behaviour_actors_foreach:
|
||||||
* @behave: a #ClutterBehaviour
|
* @behave: a #ClutterBehaviour
|
||||||
|
@ -105,6 +105,13 @@ void clutter_behaviour_remove (ClutterBehaviour *beh
|
|||||||
void clutter_behaviour_actors_foreach (ClutterBehaviour *behave,
|
void clutter_behaviour_actors_foreach (ClutterBehaviour *behave,
|
||||||
ClutterBehaviourForeachFunc func,
|
ClutterBehaviourForeachFunc func,
|
||||||
gpointer data);
|
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);
|
GSList * clutter_behaviour_get_actors (ClutterBehaviour *behave);
|
||||||
ClutterAlpha *clutter_behaviour_get_alpha (ClutterBehaviour *behave);
|
ClutterAlpha *clutter_behaviour_get_alpha (ClutterBehaviour *behave);
|
||||||
void clutter_behaviour_set_alpha (ClutterBehaviour *behave,
|
void clutter_behaviour_set_alpha (ClutterBehaviour *behave,
|
||||||
|
@ -253,7 +253,8 @@ clutter_feature_init (void)
|
|||||||
glx_extensions = glXQueryExtensionsString (clutter_xdisplay (),
|
glx_extensions = glXQueryExtensionsString (clutter_xdisplay (),
|
||||||
clutter_xscreen ());
|
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;
|
__features->flags |= CLUTTER_FEATURE_TEXTURE_RECTANGLE;
|
||||||
|
|
||||||
/* vblank */
|
/* vblank */
|
||||||
|
@ -131,7 +131,7 @@ clutter_group_allocate_coords (ClutterActor *self,
|
|||||||
if (box->x2 == 0 || cbox.x2 > box->x2)
|
if (box->x2 == 0 || cbox.x2 > box->x2)
|
||||||
box->x2 = cbox.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;
|
box->y2 = cbox.y2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -265,7 +265,7 @@ clutter_group_get_children (ClutterGroup *self)
|
|||||||
gint
|
gint
|
||||||
clutter_group_get_n_children (ClutterGroup *self)
|
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);
|
return g_list_length (self->priv->children);
|
||||||
}
|
}
|
||||||
|
@ -405,11 +405,32 @@ clutter_stage_realize (ClutterActor *actor)
|
|||||||
};
|
};
|
||||||
|
|
||||||
if (priv->xvisinfo)
|
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(),
|
XGetWindowAttributes (clutter_xdisplay(), priv->xwin, &win_attr);
|
||||||
clutter_xscreen(),
|
vis_info.screen = clutter_xscreen();
|
||||||
gl_attributes);
|
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)
|
if (!priv->xvisinfo)
|
||||||
{
|
{
|
||||||
g_critical ("Unable to find suitable GL visual.");
|
g_critical ("Unable to find suitable GL visual.");
|
||||||
|
@ -539,12 +539,11 @@ texture_upload_data (ClutterTexture *texture,
|
|||||||
|
|
||||||
glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
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);
|
glPixelStorei (GL_UNPACK_ALIGNMENT, 4);
|
||||||
|
|
||||||
if (create_textures)
|
if (create_textures)
|
||||||
{
|
{
|
||||||
|
|
||||||
glTexImage2D(priv->target_type,
|
glTexImage2D(priv->target_type,
|
||||||
0,
|
0,
|
||||||
(bpp == 4) ?
|
(bpp == 4) ?
|
||||||
|
@ -1,27 +1,25 @@
|
|||||||
noinst_PROGRAMS = test super-oh behave
|
noinst_PROGRAMS = test super-oh behave
|
||||||
|
|
||||||
INCLUDES = -I$(top_srcdir)/
|
INCLUDES = -I$(top_srcdir)/
|
||||||
|
LDADD = $(top_builddir)/clutter/libclutter-@CLUTTER_MAJORMINOR@.la
|
||||||
|
|
||||||
test_SOURCES = test.c
|
test_SOURCES = test.c
|
||||||
test_CFLAGS = $(CLUTTER_CFLAGS) $(GCONF_CFLAGS)
|
test_CFLAGS = $(CLUTTER_CFLAGS) $(GCONF_CFLAGS)
|
||||||
test_LDFLAGS = \
|
test_LDFLAGS = \
|
||||||
$(CLUTTER_LIBS) \
|
$(CLUTTER_LIBS) \
|
||||||
$(GCONF_LIBS) \
|
$(GCONF_LIBS)
|
||||||
$(top_builddir)/clutter/libclutter-@CLUTTER_MAJORMINOR@.la
|
|
||||||
|
|
||||||
super_oh_SOURCES = super-oh.c
|
super_oh_SOURCES = super-oh.c
|
||||||
super_oh_CFLAGS = $(CLUTTER_CFLAGS) $(GCONF_CFLAGS)
|
super_oh_CFLAGS = $(CLUTTER_CFLAGS) $(GCONF_CFLAGS)
|
||||||
super_oh_LDFLAGS = \
|
super_oh_LDFLAGS = \
|
||||||
$(CLUTTER_LIBS) \
|
$(CLUTTER_LIBS) \
|
||||||
$(GCONF_LIBS) \
|
$(GCONF_LIBS)
|
||||||
$(top_builddir)/clutter/libclutter-@CLUTTER_MAJORMINOR@.la
|
|
||||||
|
|
||||||
behave_SOURCES = behave.c
|
behave_SOURCES = behave.c
|
||||||
behave_CFLAGS = $(CLUTTER_CFLAGS) $(GCONF_CFLAGS)
|
behave_CFLAGS = $(CLUTTER_CFLAGS) $(GCONF_CFLAGS)
|
||||||
behave_LDFLAGS = \
|
behave_LDFLAGS = \
|
||||||
$(CLUTTER_LIBS) \
|
$(CLUTTER_LIBS) \
|
||||||
$(GCONF_LIBS) \
|
$(GCONF_LIBS)
|
||||||
$(top_builddir)/clutter/libclutter-@CLUTTER_MAJORMINOR@.la
|
|
||||||
|
|
||||||
|
|
||||||
EXTRA_DIST = redhand.png \
|
EXTRA_DIST = redhand.png \
|
||||||
|
Loading…
Reference in New Issue
Block a user