small change - not worth chglogging... make evas gl x11 header not

need xlib.h anymore... :)



SVN revision: 82378
This commit is contained in:
Carsten Haitzler 2013-01-08 03:49:49 +00:00
parent 240c0637fb
commit 478de3ec76
4 changed files with 76 additions and 14 deletions

View File

@ -58,6 +58,8 @@ struct _Render_Updates
static Eina_Bool
evas_render_updates_internal(Evas *eo_e, unsigned char make_updates, unsigned char do_draw, Evas_Render_Done_Cb done_func, void *done_data, Evas_Event_Cb updates_func, void *updates_data, Eina_Bool do_async);
static void
_evas_render_mode_eval(Evas_Public_Data *e);
EAPI void
evas_damage_rectangle_add(Evas *eo_e, int x, int y, int w, int h)
@ -1551,6 +1553,7 @@ evas_render_updates_internal(Evas *eo_e,
{
unsigned int offset = 0;
_evas_render_mode_eval(e);
while ((surface =
e->engine.func->output_redraws_next_update_get
(e->engine.data.output,
@ -2120,4 +2123,25 @@ evas_render_object_recalc(Evas_Object *eo_obj)
}
}
static void
_evas_render_mode_eval(Evas_Public_Data *e) // eo
{
Evas_Opset opset;
int i;
if (!e->engine.func) return;
if (!e->engine.func->opset_eval) return;
// XXX1: walk thru active objects - figure out render ops
for (i = 0; i < e->active_objects.count; ++i)
{
Evas_Object_Protected_Data *obj = eina_array_data_get(&e->active_objects, i); // eo
Evas_Object *eo_obj; // eo
if (!obj) continue;
eo_obj = obj->object; // eo
}
e->engine.func->opset_eval(e->engine.data.output, &opset);
}
/* vim:set ts=8 sw=3 sts=3 expandtab cino=>5n-2f0^-2{2(0W1st0 :*/

View File

@ -34,6 +34,7 @@ typedef struct _Evas_Font_Description Evas_Font_Description;
typedef struct _Evas_Data_Node Evas_Data_Node;
typedef struct _Evas_Func_Node Evas_Func_Node;
typedef RGBA_Image_Loadopts Evas_Image_Load_Opts;
typedef struct _Evas_Opset Evas_Opset;
typedef struct _Evas_Func Evas_Func;
typedef struct _Evas_Image_Load_Func Evas_Image_Load_Func;
typedef struct _Evas_Image_Save_Func Evas_Image_Save_Func;
@ -753,6 +754,42 @@ struct _Evas_Object_Func
int (*get_opaque_rect) (Evas_Object *obj, Evas_Object_Protected_Data *pd, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
int (*can_map) (Evas_Object *obj);
int (*opset_get) (Evas_Object *obj);
};
typedef enum _Evas_Optype
{
EVAS_OP_FILL_COLOR,
EVAS_OP_BLEND_COLOR,
EVAS_OP_COPY_PIXELS,
EVAS_OP_BLEND_PIXELS,
EVAS_OP_BLEND_ALPHA_MUL_PIXELS,
EVAS_OP_BLEND_COLOR_MUL_PIXELS,
EVAS_OP_SCALE_NEAREST_COPY_PIXELS,
EVAS_OP_BLEND_NEAREST_COPY_PIXELS,
EVAS_OP_SCALE_NEAREST_COPY_ALPHA_MUL_PIXELS,
EVAS_OP_BLEND_NEAREST_COPY_COLOR_MUL_PIXELS,
EVAS_OP_SCALE_SMOOTH_COPY_PIXELS,
EVAS_OP_BLEND_SMOOTH_COPY_PIXELS,
EVAS_OP_SCALE_SMOOTH_COPY_ALPHA_MUL_PIXELS,
EVAS_OP_BLEND_SMOOTH_COPY_COLOR_MUL_PIXELS,
EVAS_OP_BLEND_COLOR_ALPHA_MASK,
EVAS_OP_MAP_COPY_PIXELS,
EVAS_OP_MAP_BLEND_PIXELS,
EVAS_OP_MAP_COPY_ALPHA_MUL_PIXELS,
EVAS_OP_MAP_BLEND_COLOR_MUL_PIXELS,
EVAS_OP_MAP_90MUL_COPY_PIXELS,
EVAS_OP_MAP_90MUL_BLEND_PIXELS,
EVAS_OP_MAP_90MUL_COPY_ALPHA_MUL_PIXELS,
EVAS_OP_MAP_90MUL_BLEND_COLOR_MUL_PIXELS,
EVAS_OP_COUNT // marker for last one
// XXX: line? poly? or just made up of strips of the above?
} Evas_Optype;
struct _Evas_Opset
{
Eina_Bool ops[EVAS_OP_COUNT];
};
struct _Evas_Func
@ -899,6 +936,9 @@ struct _Evas_Func
/* max size query */
void (*image_max_size_get) (void *data, int *maxw, int *maxh);
/* pre-seed the engine with the kind of ops it will need */
void (*opset_eval) (void *data, Evas_Opset *ops);
};
struct _Evas_Image_Load_Func

View File

@ -3438,7 +3438,7 @@ ecore_evas_gl_x11_options_new_internal(const char *disp_name, Ecore_X_Window par
evas_output_size_set(ee->evas, w, h);
evas_output_viewport_set(ee->evas, 0, 0, w, h);
if (parent == 0) parent = DefaultRootWindow(ecore_x_display_get());
if (parent == 0) parent = ecore_x_window_root_first_get();
edata->win_root = parent;
if (edata->win_root != 0)

View File

@ -1,8 +1,6 @@
#ifndef _EVAS_ENGINE_GL_X11_H
#define _EVAS_ENGINE_GL_X11_H
#include <X11/Xlib.h>
typedef struct _Evas_Engine_Info_GL_X11 Evas_Engine_Info_GL_X11;
/* have this feature */
@ -25,21 +23,21 @@ struct _Evas_Engine_Info_GL_X11
/* engine specific data & parameters it needs to set up */
struct {
Display *display;
Drawable drawable;
Visual *visual;
Colormap colormap;
int depth;
int screen;
int rotation;
unsigned int destination_alpha : 1;
void *display;
unsigned long drawable;
void *visual;
unsigned long colormap;
int depth;
int screen;
int rotation;
unsigned int destination_alpha : 1;
} info;
/* engine specific function calls to query stuff about the destination */
/* engine (what visual & colormap & depth to use, performance info etc. */
struct {
Visual * (*best_visual_get) (Evas_Engine_Info_GL_X11 *einfo);
Colormap (*best_colormap_get) (Evas_Engine_Info_GL_X11 *einfo);
int (*best_depth_get) (Evas_Engine_Info_GL_X11 *einfo);
void *(*best_visual_get) (Evas_Engine_Info_GL_X11 *einfo);
unsigned long (*best_colormap_get) (Evas_Engine_Info_GL_X11 *einfo);
int (*best_depth_get) (Evas_Engine_Info_GL_X11 *einfo);
} func;
struct {