cogl-texture-2d-sliced: Use the other backends for the slices

Instead of directly manipulating GL textures itself,
CoglTexture2DSliced now works in terms of CoglHandles. It creates the
texture slices using cogl_texture_new_with_size which should always
end up creating a CoglTexture2D because the size should fit. This
allows us to avoid replicating some code such as the first pixel
mipmap tracking and it better enforces the separation that each
texture backend is the only place that contains code dealing with each
texture target.
This commit is contained in:
Neil Roberts 2010-10-04 14:34:24 +01:00
parent b540dcb75a
commit 66680d22f8
2 changed files with 454 additions and 653 deletions

View File

@ -38,29 +38,11 @@ struct _CoglTexture2DSliced
CoglTexture _parent;
GArray *slice_x_spans;
GArray *slice_y_spans;
GArray *slice_gl_handles;
GArray *slice_textures;
int max_waste;
/* The internal format of the GL texture represented as a
CoglPixelFormat */
CoglPixelFormat format;
/* The internal format of the GL texture represented as a GL enum */
GLenum gl_format;
GLenum gl_target;
int width;
int height;
GLenum min_filter;
GLenum mag_filter;
gboolean is_foreign;
GLenum wrap_mode_s;
GLenum wrap_mode_t;
gboolean auto_mipmap;
gboolean mipmaps_dirty;
/* This holds a copy of the first pixel in each slice. It is only
used to force an automatic update of the mipmaps when
glGenerateMipmap is not available. */
CoglTexturePixel *first_pixels;
};
GQuark

File diff suppressed because it is too large Load Diff