mirror of
https://github.com/brl/mutter.git
synced 2024-11-23 00:20:42 -05:00
Revert miscommit of unfinished cogl changes in r2920
This commit is contained in:
parent
000806c4c3
commit
6fe23fefe9
@ -26,8 +26,6 @@
|
|||||||
#ifndef __COGL_DEFINES_H__
|
#ifndef __COGL_DEFINES_H__
|
||||||
#define __COGL_DEFINES_H__
|
#define __COGL_DEFINES_H__
|
||||||
|
|
||||||
#define GL_GLEXT_PROTOTYPES 1
|
|
||||||
|
|
||||||
#include <@CLUTTER_GL_HEADER@>
|
#include <@CLUTTER_GL_HEADER@>
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
@ -38,9 +38,6 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
// #define HAVE_PBOS 1
|
|
||||||
#include <GL/glext.h>
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
#define COGL_DEBUG 1
|
#define COGL_DEBUG 1
|
||||||
|
|
||||||
@ -247,39 +244,7 @@ _cogl_texture_upload_to_gl (CoglTexture *tex)
|
|||||||
x_span->start,
|
x_span->start,
|
||||||
y_span->start,
|
y_span->start,
|
||||||
FALSE);
|
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 */
|
/* Upload new image data */
|
||||||
GE( glBindTexture (tex->gl_target, gl_handle) );
|
GE( glBindTexture (tex->gl_target, gl_handle) );
|
||||||
|
|
||||||
@ -288,8 +253,6 @@ _cogl_texture_upload_to_gl (CoglTexture *tex)
|
|||||||
y_span->size - y_span->waste,
|
y_span->size - y_span->waste,
|
||||||
tex->gl_format, tex->gl_type,
|
tex->gl_format, tex->gl_type,
|
||||||
tex->bitmap.data) );
|
tex->bitmap.data) );
|
||||||
#endif
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -605,9 +568,6 @@ _cogl_texture_slices_create (CoglTexture *tex)
|
|||||||
gint max_width;
|
gint max_width;
|
||||||
gint max_height;
|
gint max_height;
|
||||||
GLuint *gl_handles;
|
GLuint *gl_handles;
|
||||||
#if HAVE_PBOS
|
|
||||||
GLuint *buf_handles;
|
|
||||||
#endif
|
|
||||||
gint n_x_slices;
|
gint n_x_slices;
|
||||||
gint n_y_slices;
|
gint n_y_slices;
|
||||||
gint n_slices;
|
gint n_slices;
|
||||||
@ -744,16 +704,6 @@ _cogl_texture_slices_create (CoglTexture *tex)
|
|||||||
|
|
||||||
GE( glGenTextures (n_slices, gl_handles) );
|
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 */
|
/* Init each GL texture object */
|
||||||
for (y = 0; y < n_y_slices; ++y)
|
for (y = 0; y < n_y_slices; ++y)
|
||||||
@ -762,9 +712,6 @@ _cogl_texture_slices_create (CoglTexture *tex)
|
|||||||
|
|
||||||
for (x = 0; x < n_x_slices; ++x)
|
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);
|
x_span = &g_array_index (tex->slice_x_spans, CoglTexSliceSpan, x);
|
||||||
|
|
||||||
#if COGL_DEBUG
|
#if COGL_DEBUG
|
||||||
@ -774,12 +721,9 @@ _cogl_texture_slices_create (CoglTexture *tex)
|
|||||||
y_span->size - y_span->waste);
|
y_span->size - y_span->waste);
|
||||||
#endif
|
#endif
|
||||||
/* Setup texture parameters */
|
/* Setup texture parameters */
|
||||||
GE( glBindTexture (tex->gl_target,
|
GE( glBindTexture (tex->gl_target, gl_handles[y * n_x_slices + x]) );
|
||||||
gl_handles[y * n_x_slices + x]) );
|
GE( glTexParameteri (tex->gl_target, GL_TEXTURE_MAG_FILTER, tex->mag_filter) );
|
||||||
GE( glTexParameteri (tex->gl_target,
|
GE( glTexParameteri (tex->gl_target, GL_TEXTURE_MIN_FILTER, tex->min_filter) );
|
||||||
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,
|
GE( glTexParameteri (tex->gl_target, GL_TEXTURE_WRAP_S,
|
||||||
tex->wrap_mode) );
|
tex->wrap_mode) );
|
||||||
@ -824,15 +768,6 @@ _cogl_texture_slices_free (CoglTexture *tex)
|
|||||||
|
|
||||||
g_array_free (tex->slice_gl_handles, TRUE);
|
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
|
static gboolean
|
||||||
|
@ -51,7 +51,6 @@ struct _CoglTexture
|
|||||||
GArray *slice_x_spans;
|
GArray *slice_x_spans;
|
||||||
GArray *slice_y_spans;
|
GArray *slice_y_spans;
|
||||||
GArray *slice_gl_handles;
|
GArray *slice_gl_handles;
|
||||||
GArray *slice_buf_handles;
|
|
||||||
gint max_waste;
|
gint max_waste;
|
||||||
COGLenum min_filter;
|
COGLenum min_filter;
|
||||||
COGLenum mag_filter;
|
COGLenum mag_filter;
|
||||||
|
@ -59,8 +59,6 @@ main (int argc, char *argv[])
|
|||||||
ClutterActor *texture;
|
ClutterActor *texture;
|
||||||
ClutterActor *stage;
|
ClutterActor *stage;
|
||||||
gint i, j;
|
gint i, j;
|
||||||
guchar *pixels;
|
|
||||||
int rowstride;
|
|
||||||
|
|
||||||
clutter_init (&argc, &argv);
|
clutter_init (&argc, &argv);
|
||||||
|
|
||||||
@ -69,27 +67,23 @@ main (int argc, char *argv[])
|
|||||||
|
|
||||||
SPIN();
|
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 (i=100; i<=5000; i += 100)
|
||||||
for (j=0; j<4; j++)
|
for (j=0; j<4; j++)
|
||||||
{
|
{
|
||||||
const int width = 1000;
|
const int width = i+j;
|
||||||
const int height = 1000;
|
const int height = i+j;
|
||||||
const gboolean has_alpha = TRUE;
|
const gboolean has_alpha = TRUE;
|
||||||
const int bpp = has_alpha ? 4 : 3;
|
const int bpp = has_alpha ? 4 : 3;
|
||||||
|
int rowstride;
|
||||||
|
guchar *pixels;
|
||||||
|
|
||||||
|
pixels = make_rgba_data (width, height, bpp, has_alpha, &rowstride);
|
||||||
if (!pixels)
|
if (!pixels)
|
||||||
g_error("No memory for %ix%i RGBA data failed", width, height);
|
g_error("No memory for %ix%i RGBA data failed", width, height);
|
||||||
|
|
||||||
printf("o %ix%i texture... ", width, height);
|
printf("o %ix%i texture... ", width, height);
|
||||||
|
|
||||||
|
texture = clutter_texture_new ();
|
||||||
if (!clutter_texture_set_from_rgb_data (CLUTTER_TEXTURE (texture),
|
if (!clutter_texture_set_from_rgb_data (CLUTTER_TEXTURE (texture),
|
||||||
pixels,
|
pixels,
|
||||||
has_alpha,
|
has_alpha,
|
||||||
@ -99,22 +93,21 @@ main (int argc, char *argv[])
|
|||||||
bpp,
|
bpp,
|
||||||
0, NULL))
|
0, NULL))
|
||||||
g_error("texture creation failed");
|
g_error("texture creation failed");
|
||||||
// g_free(pixels);
|
g_free(pixels);
|
||||||
|
|
||||||
printf("uploaded to texture...\n");
|
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 */
|
/* Hide & show to unreaise then realise the texture */
|
||||||
clutter_actor_hide (texture);
|
clutter_actor_hide (texture);
|
||||||
clutter_actor_show (texture);
|
clutter_actor_show (texture);
|
||||||
|
|
||||||
// clutter_actor_unrealize (texture);
|
|
||||||
|
|
||||||
SPIN();
|
SPIN();
|
||||||
|
|
||||||
// clutter_actor_destroy (texture);
|
clutter_container_remove (CLUTTER_CONTAINER (stage), texture, NULL);
|
||||||
|
|
||||||
// clutter_container_remove (CLUTTER_CONTAINER (stage), texture, NULL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
|
Loading…
Reference in New Issue
Block a user