[maemo-commits] [maemo-commits] r17564 - in projects/haf/trunk/clutter: clutter/cogl/common clutter/cogl/gl clutter/cogl/gles clutter/eglx debian
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Mon Mar 2 13:54:33 EET 2009
- Previous message: [maemo-commits] r17563 - projects/haf/tags/osso-af-startup
- Next message: [maemo-commits] r17565 - in projects/haf/trunk/hildon-welcome: debian src
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: gw Date: 2009-03-02 13:54:22 +0200 (Mon, 02 Mar 2009) New Revision: 17564 Modified: projects/haf/trunk/clutter/clutter/cogl/common/cogl-pvr-texture.c projects/haf/trunk/clutter/clutter/cogl/common/cogl-util.c projects/haf/trunk/clutter/clutter/cogl/common/cogl-util.h projects/haf/trunk/clutter/clutter/cogl/gl/cogl.c projects/haf/trunk/clutter/clutter/cogl/gles/cogl.c projects/haf/trunk/clutter/clutter/eglx/clutter-backend-egl.c projects/haf/trunk/clutter/clutter/eglx/clutter-stage-egl.c projects/haf/trunk/clutter/debian/changelog Log: Fixed invalid detection of extension strings. Added debug print of GLES extension strings to EGL backend Modified: projects/haf/trunk/clutter/clutter/cogl/common/cogl-pvr-texture.c =================================================================== --- projects/haf/trunk/clutter/clutter/cogl/common/cogl-pvr-texture.c 2009-03-02 10:40:03 UTC (rev 17563) +++ projects/haf/trunk/clutter/clutter/cogl/common/cogl-pvr-texture.c 2009-03-02 11:54:22 UTC (rev 17564) @@ -42,7 +42,7 @@ } PVR_TEXTURE_HEADER; #define MGLPT_PVRTC2 0x18 -#define MGLPT_PVRTC4 0x19 +#define MGLPT_PVRTC4 0x19 #define ETC_RGB_4BPP 0x36 #define PVR_FLAG_TWIDDLED 0x00000200 @@ -55,11 +55,11 @@ * data slice to a file. Returns TRUE on success * * Since: 0.8.2-maemo - */ + */ gboolean cogl_pvr_texture_save_pvrtc4( - const gchar *filename, - const guchar *data, - guint data_size, + const gchar *filename, + const guchar *data, + guint data_size, gint width, gint height) { FILE *texfile; @@ -77,16 +77,16 @@ 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 */ - + /* load file */ texfile = g_fopen(filename, "wb"); - if (!texfile) + if (!texfile) return FALSE; - + fwrite(&head, 1, sizeof(PVR_TEXTURE_HEADER), texfile); fwrite(data, 1, data_size, texfile); fclose(texfile); - + return TRUE; } @@ -103,42 +103,42 @@ if ((result).alpha < (col).alpha) (result).alpha = (col).alpha; \ } -inline guchar find_best( +inline guchar find_best( ClutterColor pixel_col, ClutterColor *low, ClutterColor *high, guint block_stride, guint x_interp, guint y_interp) -{ +{ ClutterColor tmpa, tmpb; guchar amtx, amty; - ClutterColor cl, ch, clm, chm; + ClutterColor cl, ch, clm, chm; guint diff[4]; - + /* interpolate our colours spatially */ - + amtx = x_interp * 64; - amty = y_interp * 64; - + amty = y_interp * 64; + clutter_color_interp(&low[0], &low[1], amtx, &tmpa); clutter_color_interp(&low[block_stride], &low[block_stride+1], amtx, &tmpb); clutter_color_interp(&tmpa, &tmpb, amty, &cl); - + clutter_color_interp(&high[0], &high[1], amtx, &tmpa); clutter_color_interp(&high[block_stride], &high[block_stride+1], amtx, &tmpb); clutter_color_interp(&tmpa, &tmpb, amty, &ch); - + /* interpolate for the mid-colours */ clutter_color_interp(&cl, &ch, 96, &clm); /* 3/8 */ clutter_color_interp(&cl, &ch, 160, &chm); /* 5/8 */ - + /* work out differences */ diff[0] = clutter_color_diff(&pixel_col, &cl); diff[1] = clutter_color_diff(&pixel_col, &clm); diff[2] = clutter_color_diff(&pixel_col, &chm); diff[3] = clutter_color_diff(&pixel_col, &ch); - + /* work out which one is smaller */ if (diff[0] < diff[1] && diff[0] < diff[2] && diff[0] < diff[3]) return 0; @@ -155,7 +155,7 @@ * it's 3444 */ if (col->alpha >= 224) { - /* We're opaqueish */ + /* We're opaqueish */ return 0x8000 | ((col->red & 0xF8) << 7) | ((col->green & 0xF8) << 2) | @@ -204,11 +204,11 @@ *ymask = 0; *morton_mask = 0xFFFFFFFF; if (width == height) - { + { return; } if (width > height) - { + { *morton_mask = (height*height)-1; *xshift = cogl_util_log_2(height); *xmask = 0xFFFFFFFF & ~*morton_mask; @@ -230,9 +230,9 @@ * Since: 0.8.2-maemo */ guchar *cogl_pvr_texture_compress_pvrtc4( - const guchar *uncompressed_data, - gint width, - gint height, + const guchar *uncompressed_data, + gint width, + gint height, guint *compressed_size) { guchar *compressed_data = 0; @@ -241,27 +241,27 @@ gint x,y,z; guint32 *out_data; guint32 morton_mask, xshift, xmask, yshift, ymask; - + g_return_val_if_fail(compressed_size!=0, 0); /* must be a multiple of 4 + Power of 2 in each direction */ - if ((width&3) || (height&3) || + if ((width&3) || (height&3) || !cogl_util_is_power_2(width) || !cogl_util_is_power_2(height)) return 0; - + width_block = width / 4; block_stride = width_block+2; - height_block = height / 4; + height_block = height / 4; _calculate_access_masks(width_block, height_block, &morton_mask, &xshift, &xmask, &yshift, &ymask); /* 4 bits per pixel, or 64 bits per block*/ - *compressed_size = width_block*height_block*sizeof(guint32)*2; + *compressed_size = width_block*height_block*sizeof(guint32)*2; compressed_data = g_malloc(*compressed_size); /* but we make our block colour list one bigger all the way around * and copy the colours so we don't need to do bounds checking */ col_low = g_malloc(sizeof(ClutterColor)*block_stride*(height_block+2)); col_high = g_malloc(sizeof(ClutterColor)*block_stride*(height_block+2)); - + /* work out maximum and minimum colour values for each block */ for (y=0;y<height_block;y++) { @@ -270,7 +270,7 @@ { ClutterColor clow, chigh; ClutterColor *block; - + block = (ClutterColor*)&uncompressed_data[(x + y*width) * 16]; clow = block[0]; chigh = block[0]; @@ -285,7 +285,7 @@ ClutterColor *blockline = &block[width*z]; SETMIN(clow, blockline[0]); SETMAX(chigh, blockline[0]); - SETMIN(clow, blockline[1]); + SETMIN(clow, blockline[1]); SETMAX(chigh, blockline[1]); SETMIN(clow, blockline[2]); SETMAX(chigh, blockline[2]); @@ -302,28 +302,28 @@ col_high[block_offs+width_block+1] = col_high[block_offs+width_block]; } /* copy top and bottom of our block so we get repeats */ - memcpy((void*)&col_low[0], - (void*)&col_low[block_stride], + memcpy((void*)&col_low[0], + (void*)&col_low[block_stride], sizeof(ClutterColor)*block_stride); - memcpy((void*)&col_high[0], - (void*)&col_high[block_stride], + memcpy((void*)&col_high[0], + (void*)&col_high[block_stride], sizeof(ClutterColor)*block_stride); - memcpy((void*)&col_low[block_stride*(height_block+1)], - (void*)&col_low[block_stride*height_block], + memcpy((void*)&col_low[block_stride*(height_block+1)], + (void*)&col_low[block_stride*height_block], sizeof(ClutterColor)*block_stride); - memcpy((void*)&col_high[block_stride*(height_block+1)], - (void*)&col_high[block_stride*height_block], + memcpy((void*)&col_high[block_stride*(height_block+1)], + (void*)&col_high[block_stride*height_block], sizeof(ClutterColor)*block_stride); - + /* now assemble each block */ - out_data = (guint32*)compressed_data; + out_data = (guint32*)compressed_data; for (y=0;y<height_block;y++) { gint my; /* for morton numbers later */ my = (y | (y << 8)) & 0x00FF00FF; my = (my | (my << 4)) & 0x0F0F0F0F; my = (my | (my << 2)) & 0x33333333; - my = (my | (my << 1)) & 0x55555555; + my = (my | (my << 1)) & 0x55555555; for (x=0;x<width_block;x++) { ClutterColor *block; @@ -333,25 +333,25 @@ guint col_a, col_b; gint bx,by; gint mx, mz; /* for morton numbers later */ - + /* now work out what every pixel should be... */ block = (ClutterColor*)&uncompressed_data - [(x + y*width) * 4 * sizeof(guint32)]; - /* find_best interpolates our two sets of colours to where they should + [(x + y*width) * 4 * sizeof(guint32)]; + /* find_best interpolates our two sets of colours to where they should * be (the blocks we get colour from swap halfway through the block * hence the crazy offset stuff. It then figures out which one of the - * 4 values for the pixel works best */ + * 4 values for the pixel works best */ for (by=3;by>=0;by--) for (bx=3;bx>=0;bx--) - { + { gint boffs = offs + ((bx+2)>>2) + (((by+2)>>2) * block_stride); - pixel_low_word = (pixel_low_word << 2) | + pixel_low_word = (pixel_low_word << 2) | find_best( - block[bx + by*width], - &col_low[boffs], + block[bx + by*width], + &col_low[boffs], &col_high[boffs], block_stride, - (bx+2)&3, + (bx+2)&3, (by+2)&3); } /* pack our two colours */ @@ -360,29 +360,29 @@ /* and finally pack into a block */ /* last bit is the modulation mode, but we're cheating and * just going for the easy 0, 3/8, 5/8, 1 one */ - pixel_high_word = (col_b << 16) | (col_a & 0xFFFE); - - /* PVR Stores images in a Morton arrangement to get some spatial + pixel_high_word = (col_b << 16) | (col_a & 0xFFFE); + + /* PVR Stores images in a Morton arrangement to get some spatial * locality - * + * * Interleave lower 16 bits of x and y, so the bits of x * are in the even positions and bits from y in the odd; - * z gets the resulting 32-bit Morton Number. */ + * z gets the resulting 32-bit Morton Number. */ mx = (x | (x << 8)) & 0x00FF00FF; mx = (mx | (mx << 4)) & 0x0F0F0F0F; mx = (mx | (mx << 2)) & 0x33333333; - mx = (mx | (mx << 1)) & 0x55555555; + mx = (mx | (mx << 1)) & 0x55555555; mz = (my | (mx << 1)) & morton_mask; mz |= (x << xshift) & xmask; mz |= (y << yshift) & ymask; mz = mz << 1; - + /* write data out */ out_data[mz ] = pixel_low_word; out_data[mz+1] = pixel_high_word; } } - + g_free(col_low); g_free(col_high); return compressed_data; @@ -397,8 +397,8 @@ * Since: 0.8.2-maemo */ guchar *cogl_pvr_texture_decompress_pvrtc4( - const guchar *compressed_data, - gint width, + const guchar *compressed_data, + gint width, gint height) { ClutterColor *uncompressed_data = 0; @@ -409,14 +409,14 @@ gint x,y; guint32 morton_mask, xshift, xmask, yshift, ymask; /* must be a multiple of 4 + Power of 2 in each direction */ - if ((width&3) || (height&3) || + if ((width&3) || (height&3) || !cogl_util_is_power_2(width) || !cogl_util_is_power_2(height)) return 0; - + width_block = width / 4; block_stride = width_block+2; - height_block = height / 4; + height_block = height / 4; _calculate_access_masks(width_block, height_block, &morton_mask, &xshift, &xmask, &yshift, &ymask); /* 4 bits per pixel, or 64 bits per block*/ @@ -426,7 +426,7 @@ * and copy the colours so we don't need to do bounds checking */ col_low = g_malloc(sizeof(ClutterColor)*block_stride*(height_block+2)); col_high = g_malloc(sizeof(ClutterColor)*block_stride*(height_block+2)); - + /* re-arrange data and */ for (y=0;y<height_block;y++) { @@ -437,18 +437,18 @@ my = (my | (my << 4)) & 0x0F0F0F0F; my = (my | (my << 2)) & 0x33333333; my = (my | (my << 1)) & 0x55555555; - + for (x=0;x<width_block;x++) { guint32 pixel_col_word = 0; gint mx, mz; /* for morton numbers later */ - - /* PVR Stores images in Morton pattern to get some spatial + + /* PVR Stores images in Morton pattern to get some spatial * locality - * + * * Interleave lower 16 bits of x and y, so the bits of x * are in the even positions and bits from y in the odd; - * z gets the resulting 32-bit Morton Number. */ + * z gets the resulting 32-bit Morton Number. */ mx = (x | (x << 8)) & 0x00FF00FF; mx = (mx | (mx << 4)) & 0x0F0F0F0F; mx = (mx | (mx << 2)) & 0x33333333; @@ -457,67 +457,67 @@ mz |= (x << xshift) & xmask; mz |= (y << yshift) & ymask; mz = mz << 1; - + arranged_data[(x+(y*width_block))*2 ] = compressed_datal[mz ]; arranged_data[(x+(y*width_block))*2+1] = compressed_datal[mz+1]; pixel_col_word = compressed_datal[mz+1]; - + col_high[offs+x+1] = clutter_pvr_color_to_color(pixel_col_word >> 16); col_low[offs+x+1] = clutter_pvr_color_to_color(pixel_col_word & 0xFFFE); } - + col_low[offs] = col_low[offs+1]; - col_low[offs+block_stride+1] = col_low[offs+block_stride]; + col_low[offs+block_stride+1] = col_low[offs+block_stride]; col_high[offs] = col_high[offs+1]; col_high[offs+block_stride+1] = col_high[offs+block_stride]; } /* copy top and bottom of our block so we get repeats */ - memcpy(&col_low[0], &col_low[block_stride], + memcpy(&col_low[0], &col_low[block_stride], sizeof(ClutterColor)*block_stride); - memcpy(&col_high[0], &col_high[block_stride], + memcpy(&col_high[0], &col_high[block_stride], sizeof(ClutterColor)*block_stride); - memcpy(&col_low[block_stride*(height_block+1)], - &col_low[block_stride*height_block], + memcpy(&col_low[block_stride*(height_block+1)], + &col_low[block_stride*height_block], sizeof(ClutterColor)*block_stride); - memcpy(&col_high[block_stride*(height_block+1)], - &col_high[block_stride*height_block], - sizeof(ClutterColor)*block_stride); - + memcpy(&col_high[block_stride*(height_block+1)], + &col_high[block_stride*height_block], + sizeof(ClutterColor)*block_stride); + for (y=0;y<height_block;y++) for (x=0;x<width_block;x++) { gint bx,by; - gint offs = x + y*block_stride; + gint offs = x + y*block_stride; guint32 pixel_bits_word = arranged_data[(x+(y*width_block))*2]; guint32 pixel_col_word = arranged_data[(x+(y*width_block))*2 + 1]; gboolean block_alpha_mode = pixel_col_word&1; /* now work out what every pixel in this block should be... */ for (by=0;by<4;by++) for (bx=0;bx<4;bx++) - { - ClutterColor tmpa, tmpb, cl, ch, col; + { + ClutterColor tmpa, tmpb, cl, ch, col; gint boffs = offs + ((bx+2)>>2) + (((by+2)>>2) * block_stride); gint pixel_bits; gint amtx, amty; - + amtx = ((bx+2)&3) * 64; - amty = ((by+2)&3) * 64; + amty = ((by+2)&3) * 64; pixel_bits = pixel_bits_word&3; pixel_bits_word = pixel_bits_word >> 2; - - clutter_color_interp(&col_low[boffs], + + clutter_color_interp(&col_low[boffs], &col_low[boffs+1], amtx, &tmpa); - clutter_color_interp(&col_low[boffs+block_stride], + clutter_color_interp(&col_low[boffs+block_stride], &col_low[boffs+block_stride+1], amtx, &tmpb); clutter_color_interp(&tmpa, &tmpb, amty, &cl); - - clutter_color_interp(&col_high[boffs], + + clutter_color_interp(&col_high[boffs], &col_high[boffs+1], amtx, &tmpa); - clutter_color_interp(&col_high[boffs+block_stride], + clutter_color_interp(&col_high[boffs+block_stride], &col_high[boffs+block_stride+1], amtx, &tmpb); clutter_color_interp(&tmpa, &tmpb, amty, &ch); - - if (block_alpha_mode) + + if (block_alpha_mode) { if (pixel_bits==0) col = cl; @@ -526,7 +526,7 @@ else if (pixel_bits==2) { clutter_color_interp(&cl, &ch, 128, &col); col.alpha = 0; - } else col = ch; + } else col = ch; } else { @@ -536,13 +536,13 @@ clutter_color_interp(&cl, &ch, 96, &col); else if (pixel_bits==2) { clutter_color_interp(&cl, &ch, 160, &col); - } else col = ch; - } + } else col = ch; + } uncompressed_data[(x*4) + (y*width*4) + bx + (by*width)] = col; } - } - + } + g_free(col_low); g_free(col_high); g_free(arranged_data); @@ -566,12 +566,12 @@ GLuint gl_format = 0; FILE *texfile = 0; guint read_count; - + /* load file */ texfile = g_fopen(filename, "rb"); if (!texfile) return 0; - + read_count = fread(&header, 1, sizeof(PVR_TEXTURE_HEADER), texfile); if (read_count != sizeof(PVR_TEXTURE_HEADER)) { @@ -579,7 +579,7 @@ fclose (texfile); return 0; } - + /* checks */ if (((header.dwPVR ) & 0xFF) != 'P' && ((header.dwPVR >> 8) & 0xFF) != 'V' && @@ -591,7 +591,7 @@ fclose (texfile); return 0; } - + /* load image */ texture_data = g_malloc(header.dwDataSize); if (!texture_data) @@ -609,14 +609,14 @@ g_free (texture_data); return 0; } - + fclose(texfile); - + /* work out format */ if ((header.dwpfFlags & 0xFF) == MGLPT_PVRTC2) { if (header.dwAlphaBitMask) - gl_format = GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG; + gl_format = GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG; else gl_format = GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG; /* We have no fallback for PVRTC2 */ @@ -625,25 +625,25 @@ g_free(texture_data); texture_data = 0; } - } + } else if ((header.dwpfFlags & 0xFF) == MGLPT_PVRTC4) { if (header.dwAlphaBitMask) gl_format = GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG; else gl_format = GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG; - /* If we don't support PVRTC4, decompress it and use that */ + /* If we don't support PVRTC4, decompress it and use that */ if (!cogl_features_available(COGL_FEATURE_TEXTURE_PVRTC)) { guchar *uncompressed; - + uncompressed = cogl_pvr_texture_decompress_pvrtc4( texture_data, header.dwWidth, header.dwHeight); - gl_format = GL_RGBA; - + gl_format = GL_RGBA; + g_free(texture_data); texture_data = uncompressed; - } + } } else if ((header.dwpfFlags & 0xFF) == ETC_RGB_4BPP) { @@ -652,7 +652,7 @@ else g_warning("%s: Unknown PVR file format 0x%02x", __FUNCTION__, header.dwpfFlags & 0xFF); - + /* load into GL */ GE( glEnable(GL_TEXTURE_2D) ); GE( glGenTextures(1, &tex) ); @@ -660,13 +660,13 @@ if (!texture_data) return COGL_INVALID_HANDLE; - + if (gl_format == GL_RGBA) { CoglHandle tex; /* we've had to fall back to decompressing the texture */ tex = cogl_texture_new_from_data (header.dwWidth, header.dwHeight, - 0, 0, + 0, 0, COGL_PIXEL_FORMAT_RGBA_8888, COGL_PIXEL_FORMAT_ANY, header.dwWidth*4, @@ -676,17 +676,17 @@ } else { - GE( glCompressedTexImage2D(GL_TEXTURE_2D, 0, gl_format, + GE( glCompressedTexImage2D(GL_TEXTURE_2D, 0, gl_format, header.dwWidth, header.dwHeight, 0, header.dwDataSize, texture_data) ); - g_free(texture_data); + g_free(texture_data); /* texture format is NOT COGL_PIXEL_FORMAT_RGBA_4444, but we * don't have the correct one */ return cogl_texture_new_from_foreign ( tex, GL_TEXTURE_2D, header.dwWidth, header.dwHeight, - 0, 0, + 0, 0, COGL_PIXEL_FORMAT_RGBA_4444); } - + } Modified: projects/haf/trunk/clutter/clutter/cogl/common/cogl-util.c =================================================================== --- projects/haf/trunk/clutter/clutter/cogl/common/cogl-util.c 2009-03-02 10:40:03 UTC (rev 17563) +++ projects/haf/trunk/clutter/clutter/cogl/common/cogl-util.c 2009-03-02 11:54:22 UTC (rev 17564) @@ -30,6 +30,7 @@ #include "cogl.h" #include "cogl-internal.h" #include "cogl-util.h" +#include <string.h> /** * cogl_util_next_p2: @@ -209,3 +210,27 @@ return res_vtx; } +gboolean +cogl_check_extension (const gchar *name, const gchar *ext) +{ + gchar *end; + gint name_len, n; + + if (name == NULL || ext == NULL) + return FALSE; + + end = (gchar*)(ext + strlen(ext)); + + name_len = strlen(name); + + while (ext < end) + { + n = strcspn(ext, " "); + + if ((name_len == n) && (!strncmp(name, ext, n))) + return TRUE; + ext += (n + 1); + } + + return FALSE; +} Modified: projects/haf/trunk/clutter/clutter/cogl/common/cogl-util.h =================================================================== --- projects/haf/trunk/clutter/clutter/cogl/common/cogl-util.h 2009-03-02 10:40:03 UTC (rev 17563) +++ projects/haf/trunk/clutter/clutter/cogl/common/cogl-util.h 2009-03-02 11:54:22 UTC (rev 17564) @@ -66,4 +66,7 @@ ClutterFixed viewport[4], ClutterVertex obj_coord); +gboolean +cogl_check_extension (const gchar *name, const gchar *ext); + #endif /* __COGL_UTIL_H */ Modified: projects/haf/trunk/clutter/clutter/cogl/gl/cogl.c =================================================================== --- projects/haf/trunk/clutter/clutter/cogl/gl/cogl.c 2009-03-02 10:40:03 UTC (rev 17563) +++ projects/haf/trunk/clutter/clutter/cogl/gl/cogl.c 2009-03-02 11:54:22 UTC (rev 17564) @@ -143,31 +143,6 @@ return NULL; } -gboolean -cogl_check_extension (const gchar *name, const gchar *ext) -{ - gchar *end; - gint name_len, n; - - if (name == NULL || ext == NULL) - return FALSE; - - end = (gchar*)(ext + strlen(ext)); - - name_len = strlen(name); - - while (ext < end) - { - n = strcspn(ext, " "); - - if ((name_len == n) && (!strncmp(name, ext, n))) - return TRUE; - ext += (n + 1); - } - - return FALSE; -} - void cogl_paint_init (const ClutterColor *color) { Modified: projects/haf/trunk/clutter/clutter/cogl/gles/cogl.c =================================================================== --- projects/haf/trunk/clutter/clutter/cogl/gles/cogl.c 2009-03-02 10:40:03 UTC (rev 17563) +++ projects/haf/trunk/clutter/clutter/cogl/gles/cogl.c 2009-03-02 11:54:22 UTC (rev 17564) @@ -80,12 +80,6 @@ return NULL; } -gboolean -cogl_check_extension (const gchar *name, const gchar *ext) -{ - return FALSE; -} - void cogl_paint_init (const ClutterColor *color) { Modified: projects/haf/trunk/clutter/clutter/eglx/clutter-backend-egl.c =================================================================== --- projects/haf/trunk/clutter/clutter/eglx/clutter-backend-egl.c 2009-03-02 10:40:03 UTC (rev 17563) +++ projects/haf/trunk/clutter/clutter/eglx/clutter-backend-egl.c 2009-03-02 11:54:22 UTC (rev 17564) @@ -217,12 +217,14 @@ "GL_VENDOR: %s\n" "GL_RENDERER: %s\n" "GL_VERSION: %s\n" + "GL_EXTENSIONS: %s\n" "EGL_VENDOR: %s\n" "EGL_VERSION: %s\n" "EGL_EXTENSIONS: %s\n", glGetString (GL_VENDOR), glGetString (GL_RENDERER), glGetString (GL_VERSION), + glGetString (GL_EXTENSIONS), eglQueryString (backend_egl->edpy, EGL_VENDOR), eglQueryString (backend_egl->edpy, EGL_VERSION), eglQueryString (backend_egl->edpy, EGL_EXTENSIONS)); @@ -242,9 +244,9 @@ CLUTTER_NOTE (BACKEND, "Creating stage of type `%s'", g_type_name (CLUTTER_STAGE_TYPE)); - + stage = g_object_new (CLUTTER_STAGE_TYPE, NULL); - + /* copy backend data into the stage */ stage_x11 = CLUTTER_STAGE_X11 (stage); stage_x11->xdpy = backend_x11->xdpy; @@ -252,12 +254,12 @@ stage_x11->xscreen = backend_x11->xscreen_num; stage_x11->backend = backend_x11; stage_x11->wrapper = wrapper; - + CLUTTER_NOTE (MISC, "EGLX stage created (display:%p, screen:%d, root:%u)", stage_x11->xdpy, stage_x11->xscreen, (unsigned int) stage_x11->xwin_root); - + return stage; } Modified: projects/haf/trunk/clutter/clutter/eglx/clutter-stage-egl.c =================================================================== --- projects/haf/trunk/clutter/clutter/eglx/clutter-stage-egl.c 2009-03-02 10:40:03 UTC (rev 17563) +++ projects/haf/trunk/clutter/clutter/eglx/clutter-stage-egl.c 2009-03-02 11:54:22 UTC (rev 17564) @@ -99,14 +99,14 @@ EGL_BUFFER_SIZE, 16, EGL_STENCIL_SIZE, 0, /* Skip stencil as we can use Scissoring to be faster */ - + /* This one may be set to EGL_WINDOW_BIT later if it fails */ - EGL_SURFACE_TYPE, EGL_WINDOW_BIT | EGL_PIXMAP_BIT, + EGL_SURFACE_TYPE, EGL_WINDOW_BIT | EGL_PIXMAP_BIT, #ifdef HAVE_COGL_GLES2 EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, -#endif /* HAVE_COGL_GLES2 */ - +#endif /* HAVE_COGL_GLES2 */ + EGL_NONE }; @@ -127,7 +127,7 @@ { g_critical ("%s: eglGetConfigs failed", __FUNCTION__); goto fail; - } + } g_debug ("%d configs", num_configs); for (c = 0; c < num_configs; ++c) @@ -182,10 +182,10 @@ if (status != EGL_TRUE || config_count == 0) { gint idx; - /* If we can't find any config then it's probably because we have a driver that + /* If we can't find any config then it's probably because we have a driver that * doesn't support EGL_PIXMAP at all, so we try again and choose a config that * doesn't require it */ - g_debug ("%s: eglChooseConfig failed, disabling EGL_PIXMAP_BIT", __FUNCTION__); + g_debug ("%s: eglChooseConfig failed, disabling EGL_PIXMAP_BIT", __FUNCTION__); for (idx = 0; idx < G_N_ELEMENTS(cfg_attribs); idx+=2) if (cfg_attribs[idx] == EGL_SURFACE_TYPE) cfg_attribs[idx+1] &= ~EGL_PIXMAP_BIT; @@ -227,7 +227,7 @@ FocusChangeMask | ExposureMask | PropertyChangeMask); -#ifdef USE_XINPUT +#ifdef USE_XINPUT _clutter_x11_select_events (stage_x11->xwin); #endif } Modified: projects/haf/trunk/clutter/debian/changelog =================================================================== --- projects/haf/trunk/clutter/debian/changelog 2009-03-02 10:40:03 UTC (rev 17563) +++ projects/haf/trunk/clutter/debian/changelog 2009-03-02 11:54:22 UTC (rev 17564) @@ -1,6 +1,9 @@ clutter (0.8.2-0maemo20~unreleased) unstable; urgency=low - * WRITEME + * Moved cogl_check_extension to common (so GLES uses it now) + Fixed invalid reporting of extension string + * clutter-backend-egl now dumps GLES extension string if + CLUTTER_DEBUG=backend -- Gordon Williams <gordon.williams at collabora.co.uk> Mon, 2 Mar 2009 09:37:27 +0200
- Previous message: [maemo-commits] r17563 - projects/haf/tags/osso-af-startup
- Next message: [maemo-commits] r17565 - in projects/haf/trunk/hildon-welcome: debian src
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]