1. diable a bunch of engines from auto-detecting stuff. you have to manually

--enable gl, qtopia and directfb enigines - they are either incomplete, buggy
or simply used so little that its not worth building unless the user REALLY
wants the support.


SVN revision: 18424
This commit is contained in:
Carsten Haitzler 2005-11-11 06:09:46 +00:00
parent 8a632ab09c
commit 6f24506e8b
6 changed files with 82 additions and 0 deletions

View File

@ -188,6 +188,8 @@ PKG_CHECK_MODULES(
[ have_evas_software_xcb="yes" ],
[ have_evas_software_xcb="no" ])
## manually disable xcb engine by default - not auto detected.
have_evas_software_xcb="no"
## Manual override
AC_MSG_CHECKING(whether software xcb backend is to be built)
AC_ARG_ENABLE(software-xcb, [ --enable-software-xcb enable the Software XCB rendering backend], [
@ -239,6 +241,8 @@ PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.16,
[ have_evas_directfb="yes" ],
[ have_evas_directfb="no" ]
)
## manually disable directfb engine by default - not auto detected.
have_evas_directfb="no"
## Manual override
AC_MSG_CHECKING(whether directfb backend is to be built)
AC_ARG_ENABLE(directfb, [ --enable-directfb enable the DirectFB rendering backend], [
@ -352,6 +356,8 @@ AC_CHECK_HEADER(qdirectpainter_qws.h,
#include <qpainter.h>
]
)
## manually disable qtopia engine by default - not auto detected.
have_evas_qtopia="no"
## Manual override
AC_MSG_CHECKING(whether software qtopia backend is to be built)
AC_ARG_ENABLE(software-qtopia, [ --enable-software-qtopia enable the Software Qtopia rendering backend], [
@ -405,6 +411,8 @@ ENGINE_GL_X11_PRG="";
],
[ have_evas_gl_x11="no" ]
)
## manually disable gl engine by default - not auto detected.
have_evas_gl_x11="no"
## Manual override
AC_MSG_CHECKING(whether gl x11 backend is to be built)
AC_ARG_ENABLE(gl-x11, [ --enable-gl-x11 enable the OpenGL X11 display engine], [

View File

@ -2062,6 +2062,11 @@ setup(void)
ob = evas_object_image_add(evas);
evas_object_image_file_set(ob, IM "e_logo.png", NULL);
// evas_object_image_save(ob, "t.png", NULL, "compress=9");
// evas_object_image_save(ob, "t.jpg", NULL, "quality=20 compress=7");
// evas_object_image_save(ob, "t.eet", "key", "quality=50");
evas_object_image_size_get(ob, &iw, &ih);
evas_object_move(ob, (win_w - iw) / 2, 0);
evas_object_resize(ob, iw, ih);

View File

@ -388,6 +388,7 @@ extern "C" {
EAPI void evas_object_image_smooth_scale_set(Evas_Object *obj, Evas_Bool smooth_scale);
EAPI Evas_Bool evas_object_image_smooth_scale_get(Evas_Object *obj);
EAPI void evas_object_image_reload (Evas_Object *obj);
EAPI Evas_Bool evas_object_image_save (Evas_Object *obj, const char *file, const char *key, const char *flags);
EAPI Evas_Bool evas_object_image_pixels_import (Evas_Object *obj, Evas_Pixel_Import_Source *pixels);
EAPI void evas_object_image_pixels_get_callback_set(Evas_Object *obj, void (*func) (void *data, Evas_Object *o), void *data);
EAPI void evas_object_image_pixels_dirty_set (Evas_Object *obj, Evas_Bool dirty);

View File

@ -839,6 +839,72 @@ evas_object_image_reload(Evas_Object *obj)
evas_object_change(obj);
}
/**
* To be documented.
*
* FIXME: To be fixed.
*
*/
Evas_Bool
evas_object_image_save(Evas_Object *obj, const char *file, const char *key, const char *flags)
{
Evas_Object_Image *o;
DATA32 *data = NULL;
int quality = 80, compress = 9, ok = 0;
RGBA_Image *im;
MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
return 0;
MAGIC_CHECK_END();
o = (Evas_Object_Image *)(obj->object_data);
MAGIC_CHECK(o, Evas_Object_Image, MAGIC_OBJ_IMAGE);
return 0;
MAGIC_CHECK_END();
if (!o->engine_data) return 0;
o->engine_data = obj->layer->evas->engine.func->image_data_get(obj->layer->evas->engine.data.output,
o->engine_data,
0,
&data);
if (flags)
{
char *p, *pp;
char *tflags;
tflags = strdup(flags);
if (tflags)
{
p = tflags;
while (p)
{
pp = strchr(p, ' ');
if (pp) *pp = 0;
sscanf(p, "quality=%i", &quality);
sscanf(p, "compress=%i", &compress);
if (pp) p = pp + 1;
else break;
}
free(tflags);
}
}
im = evas_common_image_new();
if (im)
{
if (o->cur.has_alpha) im->flags |= RGBA_IMAGE_HAS_ALPHA;
im->image = evas_common_image_surface_new(im);
if (im->image)
{
im->image->data = data;
im->image->w = o->cur.image.w;
im->image->h = o->cur.image.h;
im->image->no_free = 1;
ok = evas_common_save_image_to_file(im, file, key, quality, compress);
}
evas_common_image_free(im);
}
return ok;
}
/**
* To be documented.
*

View File

@ -38,6 +38,7 @@ evas_font_main.c \
evas_font_query.c \
evas_gradient_main.c \
evas_image_load.c \
evas_image_save.c \
evas_image_main.c \
evas_line_main.c \
evas_polygon_main.c \

View File

@ -742,6 +742,7 @@ void evas_common_image_dirty (RGBA_Image *im);
RGBA_Image *evas_common_load_image_from_file (const char *file, const char *key);
void evas_common_load_image_data_from_file(RGBA_Image *im);
int evas_common_save_image_to_file (RGBA_Image *im, const char *file, const char *key, int quality, int compress);
/****/
void evas_common_rectangle_init (void);