diff options
| author | [email protected] <[email protected]> | 2010-06-01 00:07:59 +0000 |
|---|---|---|
| committer | [email protected] <[email protected]> | 2010-06-01 00:07:59 +0000 |
| commit | 3a13964efa13c2d28936cb341da672c48d5658f6 (patch) | |
| tree | a3e42cdb85bfd01fd18faedf2548c86a0458b946 /components/rtgui/common/dc_buffer.c | |
| parent | a1ee019309d171f9dc641c7ef09d545a49edc1a1 (diff) | |
move dc operations as dc engine.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@756 bbd45198-f89e-11dd-88c7-29a3b14d5316
Diffstat (limited to 'components/rtgui/common/dc_buffer.c')
| -rw-r--r-- | components/rtgui/common/dc_buffer.c | 32 |
1 files changed, 15 insertions, 17 deletions
diff --git a/components/rtgui/common/dc_buffer.c b/components/rtgui/common/dc_buffer.c index b924084aec..71391761f1 100644 --- a/components/rtgui/common/dc_buffer.c +++ b/components/rtgui/common/dc_buffer.c @@ -50,33 +50,31 @@ static rtgui_gc_t* rtgui_dc_buffer_get_gc(struct rtgui_dc* dc); static rt_bool_t rtgui_dc_buffer_get_visible(struct rtgui_dc* dc); static void rtgui_dc_buffer_get_rect(struct rtgui_dc* dc, rtgui_rect_t* rect); -static void rtgui_dc_buffer_init(struct rtgui_dc_buffer* dc) +const static struct rtgui_dc_engine dc_buffer_engine = { - if (dc == RT_NULL) return; + rtgui_dc_buffer_draw_point, + rtgui_dc_buffer_draw_color_point, + rtgui_dc_buffer_draw_vline, + rtgui_dc_buffer_draw_hline, + rtgui_dc_buffer_fill_rect, + rtgui_dc_buffer_blit, - dc->parent.type = RTGUI_DC_BUFFER; - dc->parent.draw_point = rtgui_dc_buffer_draw_point; - dc->parent.draw_color_point = rtgui_dc_buffer_draw_color_point; - dc->parent.draw_hline = rtgui_dc_buffer_draw_hline; - dc->parent.draw_vline = rtgui_dc_buffer_draw_vline; - dc->parent.fill_rect = rtgui_dc_buffer_fill_rect; - dc->parent.blit = rtgui_dc_buffer_blit; + rtgui_dc_buffer_set_gc, + rtgui_dc_buffer_get_gc, - dc->parent.set_gc = rtgui_dc_buffer_set_gc; - dc->parent.get_gc = rtgui_dc_buffer_get_gc; + rtgui_dc_buffer_get_visible, + rtgui_dc_buffer_get_rect, - dc->parent.get_visible= rtgui_dc_buffer_get_visible; - dc->parent.get_rect = rtgui_dc_buffer_get_rect; - - dc->parent.fini = rtgui_dc_buffer_fini; -} + rtgui_dc_buffer_fini, +}; struct rtgui_dc* rtgui_dc_buffer_create(int w, int h) { struct rtgui_dc_buffer* dc; dc = (struct rtgui_dc_buffer*)rtgui_malloc(sizeof(struct rtgui_dc_buffer)); - rtgui_dc_buffer_init(dc); + dc->parent.type = RTGUI_DC_BUFFER; + dc->parent.engine = &dc_buffer_engine; dc->gc.foreground = default_foreground; dc->gc.background = default_background; dc->gc.font = rtgui_font_default(); |
