evas_engine.c | evas_engine.c | |||
---|---|---|---|---|
skipping to change at line 405 | skipping to change at line 405 | |||
image->cache_entry.w = sw; | image->cache_entry.w = sw; | |||
image->cache_entry.h = sh; | image->cache_entry.h = sh; | |||
image->image.data = pixels; | image->image.data = pixels; | |||
return 1; | return 1; | |||
} | } | |||
typedef void (*_cb_for_each_cutout_t)(IDirectFBSurface *surface, RGBA_Draw_ Context *dc, const DFBRegion *region, void *data); | typedef void (*_cb_for_each_cutout_t)(IDirectFBSurface *surface, RGBA_Draw_ Context *dc, const DFBRegion *region, void *data); | |||
static void | static void | |||
_dfb_surface_for_each_cutout(IDirectFBSurface *surface, RGBA_Draw_Context * dc, _cb_for_each_cutout_t cb, void *data) | _dfb_surface_for_each_cutout(IDirectFBSurface *surface, RGBA_Draw_Context * dc, _cb_for_each_cutout_t cb, void *data) | |||
{ | { | |||
Cutout_Rects *rects; | static Cutout_Rects *rects = NULL; | |||
int i; | int i; | |||
rects = evas_common_draw_context_apply_cutouts(dc); | rects = evas_common_draw_context_apply_cutouts(dc, rects); | |||
if (!rects) | if (!rects) | |||
{ | { | |||
DFBRegion cr; | DFBRegion cr; | |||
cr.x1 = 0; | cr.x1 = 0; | |||
cr.y1 = 0; | cr.y1 = 0; | |||
surface->GetSize(surface, &cr.x2, &cr.y2); | surface->GetSize(surface, &cr.x2, &cr.y2); | |||
cr.x2 -= 1; | cr.x2 -= 1; | |||
cr.y2 -= 1; | cr.y2 -= 1; | |||
surface->SetClip(surface, NULL); | surface->SetClip(surface, NULL); | |||
cb(surface, dc, &cr, data); | cb(surface, dc, &cr, data); | |||
skipping to change at line 436 | skipping to change at line 436 | |||
r = rects->rects + i; | r = rects->rects + i; | |||
cr.x1 = r->x; | cr.x1 = r->x; | |||
cr.y1 = r->y; | cr.y1 = r->y; | |||
cr.x2 = r->x + r->w - 1; | cr.x2 = r->x + r->w - 1; | |||
cr.y2 = r->y + r->h - 1; | cr.y2 = r->y + r->h - 1; | |||
surface->SetClip(surface, &cr); | surface->SetClip(surface, &cr); | |||
cb(surface, dc, &cr, data); | cb(surface, dc, &cr, data); | |||
} | } | |||
evas_common_draw_context_apply_clear_cutouts(rects); | ||||
} | } | |||
static void | static void | |||
_dfb_rect_set(DFBRectangle *r, int x, int y, int w, int h) | _dfb_rect_set(DFBRectangle *r, int x, int y, int w, int h) | |||
{ | { | |||
r->x = x; | r->x = x; | |||
r->y = y; | r->y = y; | |||
r->w = w; | r->w = w; | |||
r->h = h; | r->h = h; | |||
} | } | |||
skipping to change at line 1035 | skipping to change at line 1034 | |||
/* HACK!!! -- KLUDGE!!! | /* HACK!!! -- KLUDGE!!! | |||
* | * | |||
* This should really use IDirectFBFont and IDirectFBSurface::DrawString(), | * This should really use IDirectFBFont and IDirectFBSurface::DrawString(), | |||
* but to be edje-compatible IDirectFBFont::CreateFont() should be able to | * but to be edje-compatible IDirectFBFont::CreateFont() should be able to | |||
* load fonts from non-files, which it does not. | * load fonts from non-files, which it does not. | |||
* | * | |||
* Try to find a way to create own IDirectFBFont in future and load from | * Try to find a way to create own IDirectFBFont in future and load from | |||
* memory. | * memory. | |||
*/ | */ | |||
static void | static void | |||
evas_engine_dfb_font_draw(void *data, void *context, void *surface, void *f ont, int x, int y, int w __UNUSED__, int h __UNUSED__, int ow __UNUSED__, i nt oh __UNUSED__, const Evas_Text_Props *intl_props) | evas_engine_dfb_font_draw(void *data, void *context, void *surface, void *f ont, int x, int y, int w __UNUSED__, int h __UNUSED__, int ow __UNUSED__, i nt oh __UNUSED__, Evas_Text_Props *intl_props) | |||
{ | { | |||
DirectFB_Engine_Image_Entry *eim = surface; | DirectFB_Engine_Image_Entry *eim = surface; | |||
IDirectFBSurface *screen; | IDirectFBSurface *screen; | |||
Render_Engine *re = data; | Render_Engine *re = data; | |||
RGBA_Image *im; | RGBA_Image *im; | |||
im = (RGBA_Image *)eim->cache_entry.src; | im = (RGBA_Image *)eim->cache_entry.src; | |||
screen = eim->surface; | screen = eim->surface; | |||
if (!_dfb_lock_and_sync_image(screen, im, DSLF_READ | DSLF_WRITE)) | if (!_dfb_lock_and_sync_image(screen, im, DSLF_READ | DSLF_WRITE)) | |||
return; | return; | |||
evas_common_font_draw(im, context, font, x, y, intl_props); | evas_common_font_draw_prepare(intl_props); | |||
evas_common_font_draw(im, context, x, y, intl_props); | ||||
evas_common_cpu_end_opt(); | evas_common_cpu_end_opt(); | |||
im->image.data = NULL; | im->image.data = NULL; | |||
screen->Unlock(screen); | screen->Unlock(screen); | |||
} | } | |||
static void | static void | |||
_cb_draw_line(IDirectFBSurface *surface, RGBA_Draw_Context *dc __UNUSED__, const DFBRegion *region __UNUSED__, void *data) | _cb_draw_line(IDirectFBSurface *surface, RGBA_Draw_Context *dc __UNUSED__, const DFBRegion *region __UNUSED__, void *data) | |||
{ | { | |||
skipping to change at line 1551 | skipping to change at line 1551 | |||
deie->surface->Unlock(deie->surface); | deie->surface->Unlock(deie->surface); | |||
return; | return; | |||
error_src: | error_src: | |||
screen->Unlock(screen); | screen->Unlock(screen); | |||
} | } | |||
#endif | #endif | |||
static void | static void | |||
evas_engine_dfb_image_map_draw(void *data __UNUSED__, void *context, void * surface, void *image, int npoints, RGBA_Map_Point *p, int smooth, int level ) | evas_engine_dfb_image_map_draw(void *data __UNUSED__, void *context, void * surface, void *image, RGBA_Map *m, int smooth, int level) | |||
{ | { | |||
Render_Engine *re = (Render_Engine*) data; | Render_Engine *re = (Render_Engine*) data; | |||
DirectFB_Engine_Image_Entry *deie = image; | DirectFB_Engine_Image_Entry *deie = image; | |||
DirectFB_Engine_Image_Entry *eim = surface; | DirectFB_Engine_Image_Entry *eim = surface; | |||
IDirectFBSurface *screen; | IDirectFBSurface *screen; | |||
RGBA_Image *dst, *src; | RGBA_Image *dst, *src; | |||
if (!deie || !eim) return ; | if (!deie || !eim) return ; | |||
screen = eim->surface; | screen = eim->surface; | |||
dst = (RGBA_Image *) eim->cache_entry.src; | dst = (RGBA_Image *) eim->cache_entry.src; | |||
if (!_dfb_lock_and_sync_image(screen, dst, DSLF_READ | DSLF_WRITE)) | if (!_dfb_lock_and_sync_image(screen, dst, DSLF_READ | DSLF_WRITE)) | |||
return; | return; | |||
src = (RGBA_Image *)deie->cache_entry.src; | src = (RGBA_Image *)deie->cache_entry.src; | |||
if (!_dfb_lock_and_sync_image(deie->surface, src, DSLF_READ)) | if (!_dfb_lock_and_sync_image(deie->surface, src, DSLF_READ)) | |||
goto error_src; | goto error_src; | |||
evas_common_map_rgba(src, dst, context, 4, p, smooth, level); | evas_common_map_rgba(src, dst, context, 4, &m->pts[0], smooth, level); | |||
evas_common_cpu_end_opt(); | evas_common_cpu_end_opt(); | |||
screen->Unlock(screen); | screen->Unlock(screen); | |||
deie->surface->Unlock(deie->surface); | deie->surface->Unlock(deie->surface); | |||
return ; | return ; | |||
error_src: | error_src: | |||
screen->Unlock(screen); | screen->Unlock(screen); | |||
} | } | |||
End of changes. 7 change blocks. | ||||
7 lines changed or deleted | 7 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |