diff --git a/clutter/cogl/gl/cogl-defines.h.in b/clutter/cogl/gl/cogl-defines.h.in index 3beeddcaf..a93f9f030 100644 --- a/clutter/cogl/gl/cogl-defines.h.in +++ b/clutter/cogl/gl/cogl-defines.h.in @@ -26,8 +26,6 @@ #ifndef __COGL_DEFINES_H__ #define __COGL_DEFINES_H__ -#define GL_GLEXT_PROTOTYPES 1 - #include <@CLUTTER_GL_HEADER@> G_BEGIN_DECLS diff --git a/clutter/cogl/gl/cogl-texture.c b/clutter/cogl/gl/cogl-texture.c index ae2e722a6..24f37b9b1 100644 --- a/clutter/cogl/gl/cogl-texture.c +++ b/clutter/cogl/gl/cogl-texture.c @@ -38,9 +38,6 @@ #include #include -// #define HAVE_PBOS 1 -#include - /* #define COGL_DEBUG 1 @@ -247,39 +244,7 @@ _cogl_texture_upload_to_gl (CoglTexture *tex) x_span->start, y_span->start, FALSE); - { -#if HAVE_PBOS - void *io_mem; - GLuint buf; - - buf = g_array_index (tex->slice_buf_handles, GLuint, - y * tex->slice_x_spans->len + x); - - glBindBuffer (GL_PIXEL_UNPACK_BUFFER_ARB, buf); - glBufferData (GL_PIXEL_UNPACK_BUFFER_ARB, - tex->bitmap.height * tex->bitmap.rowstride, - NULL, - GL_STREAM_DRAW); - - io_mem = glMapBuffer (GL_PIXEL_UNPACK_BUFFER_ARB, GL_WRITE_ONLY); - - g_assert (io_mem); - memcpy (io_mem, tex->bitmap.data, - tex->bitmap.height * tex->bitmap.rowstride); - - GE( glUnmapBuffer(GL_PIXEL_UNPACK_BUFFER_ARB) ); - - GE( glBindTexture (tex->gl_target, gl_handle) ); - - GE( glTexSubImage2D (tex->gl_target, 0, 0, 0, - x_span->size - x_span->waste, - y_span->size - y_span->waste, - tex->gl_format, tex->gl_type, - (char *)NULL) ); - - GE( glBindBuffer(GL_PIXEL_UNPACK_BUFFER_ARB, 0) ); -#else /* Upload new image data */ GE( glBindTexture (tex->gl_target, gl_handle) ); @@ -288,8 +253,6 @@ _cogl_texture_upload_to_gl (CoglTexture *tex) y_span->size - y_span->waste, tex->gl_format, tex->gl_type, tex->bitmap.data) ); -#endif - } } } @@ -605,9 +568,6 @@ _cogl_texture_slices_create (CoglTexture *tex) gint max_width; gint max_height; GLuint *gl_handles; -#if HAVE_PBOS - GLuint *buf_handles; -#endif gint n_x_slices; gint n_y_slices; gint n_slices; @@ -743,17 +703,7 @@ _cogl_texture_slices_create (CoglTexture *tex) gl_handles = (GLuint*) tex->slice_gl_handles->data; GE( glGenTextures (n_slices, gl_handles) ); - -#if HAVE_PBOS - tex->slice_buf_handles = g_array_sized_new (FALSE, FALSE, - sizeof (GLuint), - n_slices); - g_array_set_size (tex->slice_buf_handles, n_slices); - buf_handles = (GLuint*) tex->slice_buf_handles->data; - - GE( glGenBuffers(n_slices, buf_handles) ); -#endif /* Init each GL texture object */ for (y = 0; y < n_y_slices; ++y) @@ -762,11 +712,8 @@ _cogl_texture_slices_create (CoglTexture *tex) for (x = 0; x < n_x_slices; ++x) { -#if HAVE_PBOS - glBindBuffer(GL_PIXEL_UNPACK_BUFFER_ARB, 0); -#endif x_span = &g_array_index (tex->slice_x_spans, CoglTexSliceSpan, x); - + #if COGL_DEBUG printf ("CREATE SLICE (%d,%d)\n", x,y); printf ("size: (%d x %d)\n", @@ -774,12 +721,9 @@ _cogl_texture_slices_create (CoglTexture *tex) y_span->size - y_span->waste); #endif /* Setup texture parameters */ - GE( glBindTexture (tex->gl_target, - gl_handles[y * n_x_slices + x]) ); - GE( glTexParameteri (tex->gl_target, - GL_TEXTURE_MAG_FILTER, tex->mag_filter) ); - GE( glTexParameteri (tex->gl_target, - GL_TEXTURE_MIN_FILTER, tex->min_filter) ); + GE( glBindTexture (tex->gl_target, gl_handles[y * n_x_slices + x]) ); + GE( glTexParameteri (tex->gl_target, GL_TEXTURE_MAG_FILTER, tex->mag_filter) ); + GE( glTexParameteri (tex->gl_target, GL_TEXTURE_MIN_FILTER, tex->min_filter) ); GE( glTexParameteri (tex->gl_target, GL_TEXTURE_WRAP_S, tex->wrap_mode) ); @@ -824,15 +768,6 @@ _cogl_texture_slices_free (CoglTexture *tex) g_array_free (tex->slice_gl_handles, TRUE); } - -#if HAVE_PBOS - if (tex->slice_buf_handles != NULL) - { - glDeleteBuffers(tex->slice_buf_handles->len, - (GLuint*) tex->slice_buf_handles->data); - - } -#endif } static gboolean diff --git a/clutter/cogl/gl/cogl-texture.h b/clutter/cogl/gl/cogl-texture.h index 3dfed0993..117437458 100644 --- a/clutter/cogl/gl/cogl-texture.h +++ b/clutter/cogl/gl/cogl-texture.h @@ -51,7 +51,6 @@ struct _CoglTexture GArray *slice_x_spans; GArray *slice_y_spans; GArray *slice_gl_handles; - GArray *slice_buf_handles; gint max_waste; COGLenum min_filter; COGLenum mag_filter; diff --git a/tests/test-textures.c b/tests/test-textures.c index 9528faca8..ea5dfa250 100644 --- a/tests/test-textures.c +++ b/tests/test-textures.c @@ -59,8 +59,6 @@ main (int argc, char *argv[]) ClutterActor *texture; ClutterActor *stage; gint i, j; - guchar *pixels; - int rowstride; clutter_init (&argc, &argv); @@ -69,27 +67,23 @@ main (int argc, char *argv[]) SPIN(); - pixels = make_rgba_data (1000, 1000, 4, TRUE, &rowstride); - - texture = clutter_texture_new (); - - clutter_container_add (CLUTTER_CONTAINER (stage), texture, NULL); - clutter_actor_set_size (texture, 400, 400); - clutter_actor_show (texture); - for (i=100; i<=5000; i += 100) for (j=0; j<4; j++) { - const int width = 1000; - const int height = 1000; + const int width = i+j; + const int height = i+j; const gboolean has_alpha = TRUE; const int bpp = has_alpha ? 4 : 3; + int rowstride; + guchar *pixels; - + pixels = make_rgba_data (width, height, bpp, has_alpha, &rowstride); if (!pixels) g_error("No memory for %ix%i RGBA data failed", width, height); printf("o %ix%i texture... ", width, height); + + texture = clutter_texture_new (); if (!clutter_texture_set_from_rgb_data (CLUTTER_TEXTURE (texture), pixels, has_alpha, @@ -99,22 +93,21 @@ main (int argc, char *argv[]) bpp, 0, NULL)) g_error("texture creation failed"); - // g_free(pixels); + g_free(pixels); printf("uploaded to texture...\n"); + clutter_container_add (CLUTTER_CONTAINER (stage), texture, NULL); + clutter_actor_set_size (texture, 400, 400); + clutter_actor_show (texture); /* Hide & show to unreaise then realise the texture */ clutter_actor_hide (texture); clutter_actor_show (texture); - // clutter_actor_unrealize (texture); - SPIN(); - // clutter_actor_destroy (texture); - - // clutter_container_remove (CLUTTER_CONTAINER (stage), texture, NULL); + clutter_container_remove (CLUTTER_CONTAINER (stage), texture, NULL); } return EXIT_SUCCESS;