forked from enlightenment/efl
allow color allocation policy to be set in evas
SVN revision: 3473
This commit is contained in:
parent
f0563a7bfa
commit
ff01c864a4
|
@ -62,6 +62,7 @@ struct _Evas
|
||||||
Visual *visual;
|
Visual *visual;
|
||||||
Colormap colormap;
|
Colormap colormap;
|
||||||
int screen;
|
int screen;
|
||||||
|
int colors;
|
||||||
Imlib_Image image;
|
Imlib_Image image;
|
||||||
|
|
||||||
int drawable_width, drawable_height;
|
int drawable_width, drawable_height;
|
||||||
|
@ -252,6 +253,7 @@ void evas_get_viewport(Evas e, double *x, double *y, double *w, double *h);
|
||||||
/* the output settings */
|
/* the output settings */
|
||||||
void evas_set_output(Evas e, Display *disp, Drawable d, Visual *v, Colormap c);
|
void evas_set_output(Evas e, Display *disp, Drawable d, Visual *v, Colormap c);
|
||||||
void evas_set_output_image(Evas e, Imlib_Image image);
|
void evas_set_output_image(Evas e, Imlib_Image image);
|
||||||
|
void evas_set_output_colors(Evas e, int colors);
|
||||||
void evas_set_output_size(Evas e, int w, int h);
|
void evas_set_output_size(Evas e, int w, int h);
|
||||||
void evas_set_output_viewport(Evas e, double x, double y, double w, double h);
|
void evas_set_output_viewport(Evas e, double x, double y, double w, double h);
|
||||||
void evas_set_output_method(Evas e, Evas_Render_Method method);
|
void evas_set_output_method(Evas e, Evas_Render_Method method);
|
||||||
|
|
|
@ -2176,7 +2176,7 @@ __evas_gl_capable(Display *disp)
|
||||||
if (__evas_gl_cx) return 1;
|
if (__evas_gl_cx) return 1;
|
||||||
if (glXQueryExtension(disp, &eb, &evb))
|
if (glXQueryExtension(disp, &eb, &evb))
|
||||||
{
|
{
|
||||||
__evas_gl_init(disp, 0);
|
__evas_gl_init(disp, 0, 256);
|
||||||
if (__evas_gl_cx) return 1;
|
if (__evas_gl_cx) return 1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -2219,7 +2219,7 @@ __evas_gl_get_colormap(Display *disp, int screen)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
__evas_gl_init(Display *disp, int screen)
|
__evas_gl_init(Display *disp, int screen, int colors)
|
||||||
{
|
{
|
||||||
if (__evas_gl_cx) return;
|
if (__evas_gl_cx) return;
|
||||||
|
|
||||||
|
|
|
@ -196,7 +196,7 @@ void __evas_gl_gradient_draw(Evas_GL_Graident *gr, Display *disp, I
|
||||||
/***********/
|
/***********/
|
||||||
/* drawing */
|
/* drawing */
|
||||||
/***********/
|
/***********/
|
||||||
void __evas_gl_init(Display *disp, int screen);
|
void __evas_gl_init(Display *disp, int screen, int colors);
|
||||||
int __evas_gl_capable(Display *disp);
|
int __evas_gl_capable(Display *disp);
|
||||||
void __evas_gl_flush_draw(Display *disp, Imlib_Image dstim, Window win);
|
void __evas_gl_flush_draw(Display *disp, Imlib_Image dstim, Window win);
|
||||||
void __evas_gl_sync(Display *disp);
|
void __evas_gl_sync(Display *disp);
|
||||||
|
|
|
@ -792,7 +792,7 @@ __evas_image_get_colormap(Display *disp, int screen)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
__evas_image_init(Display *disp, int screen)
|
__evas_image_init(Display *disp, int screen, int colors)
|
||||||
{
|
{
|
||||||
static int initted = 0;
|
static int initted = 0;
|
||||||
|
|
||||||
|
@ -800,9 +800,9 @@ __evas_image_init(Display *disp, int screen)
|
||||||
{
|
{
|
||||||
imlib_set_font_cache_size(1024 * 1024);
|
imlib_set_font_cache_size(1024 * 1024);
|
||||||
imlib_set_cache_size(8 * 1024 * 1024);
|
imlib_set_cache_size(8 * 1024 * 1024);
|
||||||
imlib_set_color_usage(128);
|
|
||||||
initted = 1;
|
initted = 1;
|
||||||
}
|
}
|
||||||
|
imlib_set_color_usage(colors);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -100,7 +100,7 @@ void __evas_image_gradient_draw(Evas_Image_Graident *gr, Display
|
||||||
/***********/
|
/***********/
|
||||||
/* drawing */
|
/* drawing */
|
||||||
/***********/
|
/***********/
|
||||||
void __evas_image_init(Display *disp, int screen);
|
void __evas_image_init(Display *disp, int screen, int colors);
|
||||||
int __evas_image_capable(Display *disp);
|
int __evas_image_capable(Display *disp);
|
||||||
void __evas_image_flush_draw(Display *disp, Imlib_Image dstim, Window win);
|
void __evas_image_flush_draw(Display *disp, Imlib_Image dstim, Window win);
|
||||||
void __evas_image_sync(Display *disp);
|
void __evas_image_sync(Display *disp);
|
||||||
|
|
|
@ -715,7 +715,7 @@ __evas_imlib_get_colormap(Display *disp, int screen)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
__evas_imlib_init(Display *disp, int screen)
|
__evas_imlib_init(Display *disp, int screen, int colors)
|
||||||
{
|
{
|
||||||
static int initted = 0;
|
static int initted = 0;
|
||||||
|
|
||||||
|
@ -723,9 +723,9 @@ __evas_imlib_init(Display *disp, int screen)
|
||||||
{
|
{
|
||||||
imlib_set_font_cache_size(1024 * 1024);
|
imlib_set_font_cache_size(1024 * 1024);
|
||||||
imlib_set_cache_size(8 * 1024 * 1024);
|
imlib_set_cache_size(8 * 1024 * 1024);
|
||||||
imlib_set_color_usage(128);
|
|
||||||
initted = 1;
|
initted = 1;
|
||||||
}
|
}
|
||||||
|
imlib_set_color_usage(colors);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -100,7 +100,7 @@ void __evas_imlib_gradient_draw(Evas_Imlib_Graident *gr, Display
|
||||||
/***********/
|
/***********/
|
||||||
/* drawing */
|
/* drawing */
|
||||||
/***********/
|
/***********/
|
||||||
void __evas_imlib_init(Display *disp, int screen);
|
void __evas_imlib_init(Display *disp, int screen, int colors);
|
||||||
int __evas_imlib_capable(Display *disp);
|
int __evas_imlib_capable(Display *disp);
|
||||||
void __evas_imlib_flush_draw(Display *disp, Imlib_Image dstim, Window win);
|
void __evas_imlib_flush_draw(Display *disp, Imlib_Image dstim, Window win);
|
||||||
void __evas_imlib_sync(Display *disp);
|
void __evas_imlib_sync(Display *disp);
|
||||||
|
|
|
@ -18,7 +18,8 @@ evas_new(void)
|
||||||
e->current.viewport.y = 0.0;
|
e->current.viewport.y = 0.0;
|
||||||
e->current.viewport.w = 0.0;
|
e->current.viewport.w = 0.0;
|
||||||
e->current.viewport.h = 0.0;
|
e->current.viewport.h = 0.0;
|
||||||
e->current.render_method = RENDER_METHOD_3D_HARDWARE;
|
e->current.render_method = RENDER_METHOD_ALPHA_SOFTWARE;
|
||||||
|
e->current.colors = 128;
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -86,7 +86,7 @@ evas_render(Evas e)
|
||||||
void (*func_image_draw) (void *im, Display *disp, Imlib_Image dstim, Window w, int win_w, int win_h, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int dst_w, int dst_h, int cr, int cg, int cb, int ca);
|
void (*func_image_draw) (void *im, Display *disp, Imlib_Image dstim, Window w, int win_w, int win_h, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int dst_w, int dst_h, int cr, int cg, int cb, int ca);
|
||||||
void (*func_image_free) (void *im);
|
void (*func_image_free) (void *im);
|
||||||
void (*func_flush_draw) (Display *disp, Imlib_Image dstim, Window w);
|
void (*func_flush_draw) (Display *disp, Imlib_Image dstim, Window w);
|
||||||
void (*func_init) (Display *disp, int screen);
|
void (*func_init) (Display *disp, int screen, int colors);
|
||||||
int (*func_image_get_width) (void *im);
|
int (*func_image_get_width) (void *im);
|
||||||
int (*func_image_get_height) (void *im);
|
int (*func_image_get_height) (void *im);
|
||||||
void * (*func_text_font_new) (Display *disp, char *font, int size);
|
void * (*func_text_font_new) (Display *disp, char *font, int size);
|
||||||
|
@ -327,7 +327,7 @@ evas_render(Evas e)
|
||||||
evas_list_free(delete_objects);
|
evas_list_free(delete_objects);
|
||||||
}
|
}
|
||||||
|
|
||||||
func_init(e->current.display, e->current.screen);
|
func_init(e->current.display, e->current.screen, e->current.colors);
|
||||||
if (e->updates)
|
if (e->updates)
|
||||||
{
|
{
|
||||||
up = imlib_updates_merge_for_rendering(e->updates,
|
up = imlib_updates_merge_for_rendering(e->updates,
|
||||||
|
@ -744,6 +744,13 @@ evas_set_output_image(Evas e, Imlib_Image image)
|
||||||
e->changed = 1;
|
e->changed = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
evas_set_output_colors(Evas e, int colors)
|
||||||
|
{
|
||||||
|
e->current.colors = colors;
|
||||||
|
e->changed = 1;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
evas_set_output_size(Evas e, int w, int h)
|
evas_set_output_size(Evas e, int w, int h)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue