mirror of
https://github.com/brl/mutter.git
synced 2024-11-29 19:40:43 -05:00
Fix places that ignore the COGL_TEXTURE_NO_AUTO_MIPMAP flag
Two of the meta texture constructors which take a flags parameter were ignoring the COGL_TEXTURE_NO_AUTO_MIPMAP flag when creating an underlying CoglTexture2D. These have now been fixed to call cogl_primitive_texture_set_auto_mipmap after constructing the texture. Reviewed-by: Robert Bragg <robert@linux.intel.com>
This commit is contained in:
parent
6197e3abf3
commit
4229d61d3b
@ -44,6 +44,7 @@
|
|||||||
#include "cogl-spans.h"
|
#include "cogl-spans.h"
|
||||||
#include "cogl-journal-private.h"
|
#include "cogl-journal-private.h"
|
||||||
#include "cogl-pipeline-opengl-private.h"
|
#include "cogl-pipeline-opengl-private.h"
|
||||||
|
#include "cogl-primitive-texture.h"
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@ -881,6 +882,7 @@ _cogl_texture_2d_sliced_new_from_bitmap (CoglBitmap *bmp,
|
|||||||
GLenum gl_type;
|
GLenum gl_type;
|
||||||
int width, height;
|
int width, height;
|
||||||
CoglContext *ctx;
|
CoglContext *ctx;
|
||||||
|
int i;
|
||||||
|
|
||||||
_COGL_RETURN_VAL_IF_FAIL (cogl_is_bitmap (bmp), NULL);
|
_COGL_RETURN_VAL_IF_FAIL (cogl_is_bitmap (bmp), NULL);
|
||||||
|
|
||||||
@ -921,6 +923,18 @@ _cogl_texture_2d_sliced_new_from_bitmap (CoglBitmap *bmp,
|
|||||||
|
|
||||||
cogl_object_unref (dst_bmp);
|
cogl_object_unref (dst_bmp);
|
||||||
|
|
||||||
|
if ((flags & COGL_TEXTURE_NO_AUTO_MIPMAP))
|
||||||
|
for (i = 0; i < tex_2ds->slice_textures->len; i++)
|
||||||
|
{
|
||||||
|
CoglPrimitiveTexture *slice_tex;
|
||||||
|
|
||||||
|
slice_tex = g_array_index (tex_2ds->slice_textures,
|
||||||
|
CoglPrimitiveTexture *,
|
||||||
|
i);
|
||||||
|
|
||||||
|
cogl_primitive_texture_set_auto_mipmap (slice_tex, FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
return _cogl_texture_2d_sliced_handle_new (tex_2ds);
|
return _cogl_texture_2d_sliced_handle_new (tex_2ds);
|
||||||
|
|
||||||
error:
|
error:
|
||||||
|
@ -315,9 +315,15 @@ cogl_texture_new_with_size (unsigned int width,
|
|||||||
internal_format,
|
internal_format,
|
||||||
NULL));
|
NULL));
|
||||||
|
|
||||||
/* If it fails resort to sliced textures */
|
if (tex)
|
||||||
if (tex == NULL)
|
|
||||||
{
|
{
|
||||||
|
gboolean auto_mipmap = !(flags & COGL_TEXTURE_NO_AUTO_MIPMAP);
|
||||||
|
cogl_primitive_texture_set_auto_mipmap (COGL_PRIMITIVE_TEXTURE (tex),
|
||||||
|
auto_mipmap);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* If it fails resort to sliced textures */
|
||||||
int max_waste = flags & COGL_TEXTURE_NO_SLICING ? -1 : COGL_TEXTURE_MAX_WASTE;
|
int max_waste = flags & COGL_TEXTURE_NO_SLICING ? -1 : COGL_TEXTURE_MAX_WASTE;
|
||||||
tex = COGL_TEXTURE (cogl_texture_2d_sliced_new_with_size (ctx,
|
tex = COGL_TEXTURE (cogl_texture_2d_sliced_new_with_size (ctx,
|
||||||
width,
|
width,
|
||||||
|
Loading…
Reference in New Issue
Block a user