parent
43234e9b59
commit
c1b3587659
|
@ -124,7 +124,9 @@ evas_gl_common_context_new(void)
|
|||
(strstr(ext, "OES_texture_npot")))
|
||||
shared->info.tex_npo2 = 1;
|
||||
if ((strstr(ext, "GL_NV_texture_rectangle")) ||
|
||||
(strstr(ext, "GL_EXT_texture_rectangle")))
|
||||
(strstr(ext, "GL_EXT_texture_rectangle")) ||
|
||||
(strstr(ext, "GL_ARB_texture_rectangle"))
|
||||
)
|
||||
shared->info.tex_rect = 1;
|
||||
}
|
||||
glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS,
|
||||
|
|
|
@ -365,11 +365,11 @@ evas_gl_common_image_draw(Evas_GL_Context *gc, Evas_GL_Image *im, int sx, int sy
|
|||
{
|
||||
if (yuv)
|
||||
evas_gl_common_context_yuv_push(gc,
|
||||
im->tex,
|
||||
sx, sy, sw, sh,
|
||||
dx, dy, dw, dh,
|
||||
im->tex,
|
||||
sx, sy, sw, sh,
|
||||
dx, dy, dw, dh,
|
||||
r, g, b, a,
|
||||
smooth);
|
||||
smooth);
|
||||
else
|
||||
evas_gl_common_context_image_push(gc,
|
||||
im->tex,
|
||||
|
|
|
@ -17,8 +17,7 @@ _tex_adjust(Evas_GL_Context *gc, int *w, int *h)
|
|||
{
|
||||
unsigned int n;
|
||||
|
||||
// disable - has a bug somewhere
|
||||
// if (gc->shared->info.tex_npo2) return;
|
||||
if (gc->shared->info.tex_npo2) return;
|
||||
/*if (gc->shared->info.tex_rect) return;*/
|
||||
*w = _nearest_pow2(*w);
|
||||
*h = _nearest_pow2(*h);
|
||||
|
@ -27,8 +26,7 @@ _tex_adjust(Evas_GL_Context *gc, int *w, int *h)
|
|||
static int
|
||||
_tex_round_slot(Evas_GL_Context *gc, int h)
|
||||
{
|
||||
// disable. has a bug somewhere
|
||||
// if (!gc->shared->info.tex_npo2)
|
||||
if (!gc->shared->info.tex_npo2)
|
||||
h = _nearest_pow2(h);
|
||||
return (h + 15) >> 4;
|
||||
}
|
||||
|
@ -59,6 +57,7 @@ _pool_tex_new(Evas_GL_Context *gc, int w, int h, GLuint format)
|
|||
|
||||
pt = calloc(1, sizeof(Evas_GL_Texture_Pool));
|
||||
if (!pt) return NULL;
|
||||
h = _tex_round_slot(gc, h) << 4;
|
||||
_tex_adjust(gc, &w, &h);
|
||||
pt->gc = gc;
|
||||
pt->w = w;
|
||||
|
@ -131,7 +130,7 @@ _pool_tex_find(Evas_GL_Context *gc, int w, int h, GLuint format, int *u, int *v,
|
|||
|
||||
if ((w > 512) || (h > 512))
|
||||
{
|
||||
pt = _pool_tex_new(gc, w + 2, h + 1, format);
|
||||
pt = _pool_tex_new(gc, w, h, format);
|
||||
gc->shared->tex.whole = eina_list_prepend(gc->shared->tex.whole, pt);
|
||||
pt->slot = -1;
|
||||
pt->fslot = -1;
|
||||
|
@ -156,7 +155,8 @@ _pool_tex_find(Evas_GL_Context *gc, int w, int h, GLuint format, int *u, int *v,
|
|||
}
|
||||
}
|
||||
pt = _pool_tex_new(gc, atlas_w, h, format);
|
||||
gc->shared->tex.atlas[th][th2] = eina_list_prepend(gc->shared->tex.atlas[th][th2], pt);
|
||||
gc->shared->tex.atlas[th][th2] =
|
||||
eina_list_prepend(gc->shared->tex.atlas[th][th2], pt);
|
||||
pt->slot = th;
|
||||
pt->fslot = th2;
|
||||
*u = 0;
|
||||
|
@ -178,7 +178,7 @@ evas_gl_common_texture_new(Evas_GL_Context *gc, RGBA_Image *im)
|
|||
tex->gc = gc;
|
||||
tex->references = 1;
|
||||
// if (im->cache_entry.flags.alpha)
|
||||
tex->pt = _pool_tex_find(gc, im->cache_entry.w + 3,
|
||||
tex->pt = _pool_tex_find(gc, im->cache_entry.w + 2,
|
||||
im->cache_entry.h + 1, GL_RGBA,
|
||||
&u, &v, &l_after, 1024);
|
||||
// else
|
||||
|
|
Loading…
Reference in New Issue