[maemo-commits] [maemo-commits] r17160 - in projects/haf/trunk/clutter: clutter debian

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Tue Jan 13 19:34:59 EET 2009
Author: gw
Date: 2009-01-13 19:34:46 +0200 (Tue, 13 Jan 2009)
New Revision: 17160

Modified:
   projects/haf/trunk/clutter/clutter/clutter-texture.c
   projects/haf/trunk/clutter/clutter/clutter-texture.h
   projects/haf/trunk/clutter/debian/changelog
Log:
Added CLUTTER_TEXTURE_FLAG_16_BIT to force set_from_rgb_data to create 
16 bit textures


Modified: projects/haf/trunk/clutter/clutter/clutter-texture.c
===================================================================
--- projects/haf/trunk/clutter/clutter/clutter-texture.c	2009-01-13 17:00:14 UTC (rev 17159)
+++ projects/haf/trunk/clutter/clutter/clutter-texture.c	2009-01-13 17:34:46 UTC (rev 17160)
@@ -1138,6 +1138,7 @@
 clutter_texture_set_from_data (ClutterTexture     *texture,
 			       const guchar       *data,
 			       CoglPixelFormat     source_format,
+			       CoglPixelFormat     internal_format,
 			       gint                width,
 			       gint                height,
 			       gint                rowstride,
@@ -1154,7 +1155,7 @@
                            priv->no_slice ? -1 : priv->max_tile_waste,
                            priv->filter_quality == CLUTTER_TEXTURE_QUALITY_HIGH,
                            source_format,
-                           COGL_PIXEL_FORMAT_ANY,
+                           internal_format,
                            rowstride,
                            data)) == COGL_INVALID_HANDLE)
     {
@@ -1200,17 +1201,18 @@
  **/
 gboolean
 clutter_texture_set_from_rgb_data   (ClutterTexture     *texture,
-				     const guchar       *data,
-				     gboolean            has_alpha,
-				     gint                width,
-				     gint                height,
-				     gint                rowstride,
-				     gint                bpp,
-				     ClutterTextureFlags flags,
-				     GError            **error)
+                                     const guchar       *data,
+                                     gboolean            has_alpha,
+                                     gint                width,
+                                     gint                height,
+                                     gint                rowstride,
+                                     gint                bpp,
+                                     ClutterTextureFlags flags,
+                                     GError            **error)
 {
   ClutterTexturePrivate *priv;
   CoglPixelFormat        source_format;
+  CoglPixelFormat        internal_format;
 
   g_return_val_if_fail (CLUTTER_IS_TEXTURE (texture), FALSE);
 
@@ -1265,9 +1267,14 @@
     source_format |= COGL_BGR_BIT;
   if ((flags & CLUTTER_TEXTURE_RGB_FLAG_PREMULT))
     source_format |= COGL_PREMULT_BIT;
+  if ((flags & CLUTTER_TEXTURE_FLAG_16_BIT))
+    internal_format = COGL_PIXEL_FORMAT_ANY_16;
+  else
+    internal_format = COGL_PIXEL_FORMAT_ANY;
 
   return clutter_texture_set_from_data (texture, data,
 					source_format,
+					internal_format,
 					width, height,
 					rowstride, bpp,
 					error);
@@ -1300,6 +1307,7 @@
 				     GError            **error)
 {
   ClutterTexturePrivate *priv;
+  CoglPixelFormat        internal_format;
 
   g_return_val_if_fail (CLUTTER_IS_TEXTURE (texture), FALSE);
 
@@ -1322,8 +1330,14 @@
       return FALSE;
     }
 
+  if ((flags & CLUTTER_TEXTURE_FLAG_16_BIT))
+      internal_format = COGL_PIXEL_FORMAT_ANY_16;
+    else
+      internal_format = COGL_PIXEL_FORMAT_ANY;
+
   return clutter_texture_set_from_data (texture, data,
 					COGL_PIXEL_FORMAT_YUV,
+					internal_format,
 					width, height,
 					width * 3, 3,
 					error);

Modified: projects/haf/trunk/clutter/clutter/clutter-texture.h
===================================================================
--- projects/haf/trunk/clutter/clutter/clutter-texture.h	2009-01-13 17:00:14 UTC (rev 17159)
+++ projects/haf/trunk/clutter/clutter/clutter-texture.h	2009-01-13 17:34:46 UTC (rev 17160)
@@ -76,8 +76,8 @@
 {
   ClutterActorClass parent_class;
 
-  void (*size_change)   (ClutterTexture *texture, 
-		         gint            width, 
+  void (*size_change)   (ClutterTexture *texture,
+		         gint            width,
 		         gint            height);
   void (*pixbuf_change) (ClutterTexture *texture);
 
@@ -96,6 +96,7 @@
  * @CLUTTER_TEXTURE_RGB_FLAG_BGR: FIXME
  * @CLUTTER_TEXTURE_RGB_FLAG_PREMULT: FIXME
  * @CLUTTER_TEXTURE_YUV_FLAG_YUV2: FIXME
+ * @CLUTTER_TEXTURE_FLAG_16_BIT: Use 16 bit internal texture format
  *
  * Flags for clutter_texture_set_from_rgb_data() and
  * clutter_texture_set_from_yuv_data().
@@ -105,7 +106,8 @@
 typedef enum { /*< prefix=CLUTTER_TEXTURE >*/
     CLUTTER_TEXTURE_RGB_FLAG_BGR     = 1 << 1,
     CLUTTER_TEXTURE_RGB_FLAG_PREMULT = 1 << 2, /* FIXME: not handled */
-    CLUTTER_TEXTURE_YUV_FLAG_YUV2    = 1 << 3
+    CLUTTER_TEXTURE_YUV_FLAG_YUV2    = 1 << 3,
+    CLUTTER_TEXTURE_FLAG_16_BIT      = 1 << 4
 
     /* FIXME: add compressed types ? */
 } ClutterTextureFlags;

Modified: projects/haf/trunk/clutter/debian/changelog
===================================================================
--- projects/haf/trunk/clutter/debian/changelog	2009-01-13 17:00:14 UTC (rev 17159)
+++ projects/haf/trunk/clutter/debian/changelog	2009-01-13 17:34:46 UTC (rev 17160)
@@ -6,6 +6,8 @@
     a delay - which helps get rid of multiple redraws when we get >1 XDamage
     events within a few ms of each other.
   * Changed delay down to 10ms as kimmo thought 25ms was too much
+  * Added CLUTTER_TEXTURE_FLAG_16_BIT to force 16 bit textures in 
+    set_from_rgb_data
 
  -- Gordon Williams <gordon.williams at collabora.co.uk>  Mon, 12 Jan 2009 16:21:48 +0000
 


More information about the maemo-commits mailing list