[maemo-commits] [maemo-commits] r17612 - in projects/haf/trunk/clutter: clutter/cogl/common clutter/eglx debian
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Mon Mar 9 14:01:44 EET 2009
- Previous message: [maemo-commits] r17611 - in projects/haf/trunk/hildon-thumbnail: . daemon/plugins
- Next message: [maemo-commits] r17613 - in projects/haf/trunk/ke-recv: debian src
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: gw
Date: 2009-03-09 14:01:37 +0200 (Mon, 09 Mar 2009)
New Revision: 17612
Modified:
projects/haf/trunk/clutter/clutter/cogl/common/pvr-texture.c
projects/haf/trunk/clutter/clutter/cogl/common/pvr-texture.h
projects/haf/trunk/clutter/clutter/eglx/clutter-stage-egl.c
projects/haf/trunk/clutter/debian/changelog
Log:
* Moved Jan Arne's additions in PVRTC to clutter
* Made clutter create a black window by default, NB#104157
Modified: projects/haf/trunk/clutter/clutter/cogl/common/pvr-texture.c
===================================================================
--- projects/haf/trunk/clutter/clutter/cogl/common/pvr-texture.c 2009-03-09 11:05:05 UTC (rev 17611)
+++ projects/haf/trunk/clutter/clutter/cogl/common/pvr-texture.c 2009-03-09 12:01:37 UTC (rev 17612)
@@ -26,6 +26,8 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <errno.h>
+#include <unistd.h>
#if USE_GL
/* These are defined in GLES2/gl2ext + gl2extimg, but we want them available
@@ -142,6 +144,118 @@
return TRUE;
}
+gboolean
+pvr_texture_save_pvrtc4_atomically (const gchar *filename,
+ const guchar *data,
+ guint data_size,
+ gint width,
+ gint height,
+ GError **error)
+{
+ gchar *tmpl;
+ gint fd;
+ PVR_TEXTURE_HEADER head;
+
+ /* Head */
+ head.dwHeaderSize = sizeof(PVR_TEXTURE_HEADER); /* size of the structure */
+ head.dwHeight = height; /* height of surface to be created */
+ head.dwWidth = width; /* width of input surface */
+ head.dwMipMapCount = 0; /* number of MIP-map levels requested */
+ head.dwpfFlags = MGLPT_PVRTC4 | PVR_FLAG_TWIDDLED | PVR_FLAG_ALPHA; /* pixel format flags */
+ head.dwDataSize = data_size; /* Size of the compress data */
+ head.dwBitCount = 4; /* number of bits per pixel */
+ head.dwRBitMask = 0; /* mask for red bit */
+ head.dwGBitMask = 0; /* mask for green bits */
+ head.dwBBitMask = 0; /* mask for blue bits */
+ head.dwAlphaBitMask = 1; /* mask for alpha channel */
+ head.dwPVR = 'P' | 'V'<<8 | 'R'<<16 | '!'<<24; /* should be 'P' 'V' 'R' '!' */
+ head.dwNumSurfs = 1; /* number of slices for volume textures or skyboxes */
+
+ tmpl = g_strdup_printf ("%sXXXXXX", filename);
+ fd = mkstemp (tmpl);
+ if (fd == -1)
+ {
+ GFileError code = g_file_error_from_errno (errno);
+
+ g_set_error (error,
+ G_FILE_ERROR,
+ code,
+ "Could not open template file for %s",
+ filename);
+ g_free (tmpl);
+ return FALSE;
+ }
+
+ if (write(fd, &head, sizeof(PVR_TEXTURE_HEADER)) == -1)
+ {
+ GFileError code = g_file_error_from_errno (errno);
+
+ g_set_error (error,
+ G_FILE_ERROR,
+ code,
+ "Could not write header to %s",
+ tmpl);
+ g_free (tmpl);
+ return FALSE;
+ }
+
+ if (write(fd, data, data_size) == -1)
+ {
+ GFileError code = g_file_error_from_errno (errno);
+
+ g_set_error (error,
+ G_FILE_ERROR,
+ code,
+ "Could not write header to %s",
+ tmpl);
+ g_free (tmpl);
+ return FALSE;
+ }
+
+ if (fdatasync (fd) == -1)
+ {
+ GFileError code = g_file_error_from_errno (errno);
+
+ g_set_error (error,
+ G_FILE_ERROR,
+ code,
+ "Could not sync %s",
+ tmpl);
+ g_free (tmpl);
+ return FALSE;
+ }
+
+ if (close (fd) == -1)
+ {
+ GFileError code = g_file_error_from_errno (errno);
+
+ g_set_error (error,
+ G_FILE_ERROR,
+ code,
+ "Could not close %s",
+ tmpl);
+ g_free (tmpl);
+ return FALSE;
+ }
+
+ if (rename (tmpl, filename) == -1)
+ {
+ GFileError code = g_file_error_from_errno (errno);
+
+ g_set_error (error,
+ G_FILE_ERROR,
+ code,
+ "Could not rename %s to %s",
+ tmpl,
+ filename);
+ g_free (tmpl);
+ return FALSE;
+ }
+
+ g_free (tmpl);
+ return TRUE;
+}
+
#define SETMIN(result, col) { \
if ((result).red > (col).red) (result).red = (col).red; \
if ((result).green > (col).green) (result).green = (col).green; \
Modified: projects/haf/trunk/clutter/clutter/cogl/common/pvr-texture.h
===================================================================
--- projects/haf/trunk/clutter/clutter/cogl/common/pvr-texture.h 2009-03-09 11:05:05 UTC (rev 17611)
+++ projects/haf/trunk/clutter/clutter/cogl/common/pvr-texture.h 2009-03-09 12:01:37 UTC (rev 17612)
@@ -67,4 +67,10 @@
gint width,
gint height);
+gboolean pvr_texture_save_pvrtc4_atomically (const gchar *filename,
+ const guchar *data,
+ guint data_size,
+ gint width,
+ gint height,
+ GError **error);
#endif /*PVRTEXTURE_H_*/
Modified: projects/haf/trunk/clutter/clutter/eglx/clutter-stage-egl.c
===================================================================
--- projects/haf/trunk/clutter/clutter/eglx/clutter-stage-egl.c 2009-03-09 11:05:05 UTC (rev 17611)
+++ projects/haf/trunk/clutter/clutter/eglx/clutter-stage-egl.c 2009-03-09 12:01:37 UTC (rev 17612)
@@ -96,7 +96,10 @@
EGLConfig *all_configs;
EGLint cfg_attribs[16] = {
- EGL_BUFFER_SIZE, 16,
+ EGL_BUFFER_SIZE, 16,
+ /*EGL_RED_SIZE, 8,
+ EGL_GREEN_SIZE, 8,
+ EGL_BLUE_SIZE, 8,*/
EGL_STENCIL_SIZE, 0, /* Skip stencil as we can use Scissoring to
be faster */
@@ -209,7 +212,7 @@
stage_x11->xwin_width,
stage_x11->xwin_height,
0, 0,
- WhitePixel (stage_x11->xdpy,
+ BlackPixel (stage_x11->xdpy,
stage_x11->xscreen));
/*
Modified: projects/haf/trunk/clutter/debian/changelog
===================================================================
--- projects/haf/trunk/clutter/debian/changelog 2009-03-09 11:05:05 UTC (rev 17611)
+++ projects/haf/trunk/clutter/debian/changelog 2009-03-09 12:01:37 UTC (rev 17612)
@@ -12,6 +12,8 @@
* added small speedup to PVRTC
* Modified timeline priority to ensure that animation happens before redraws
* Fixed possible double-free in cogl_texture_set_region
+ * Moved Jan Arne's additions in PVRTC to clutter
+ * Made clutter create a black window by default, NB#104157
-- Gordon Williams <gordon.williams at collabora.co.uk> Mon, 2 Mar 2009 09:37:27 +0200
- Previous message: [maemo-commits] r17611 - in projects/haf/trunk/hildon-thumbnail: . daemon/plugins
- Next message: [maemo-commits] r17613 - in projects/haf/trunk/ke-recv: debian src
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
