add embedded hdc image support
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@184 bbd45198-f89e-11dd-88c7-29a3b14d5316
This commit is contained in:
parent
de98f5dbcd
commit
4edb72147b
|
@ -115,7 +115,7 @@ struct rtgui_image* rtgui_image_create_from_file(const char* type, const char* f
|
||||||
return image;
|
return image;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct rtgui_image* rtgui_image_create_from_mem(const char* type, const rt_uint8_t* data, rt_size_t length)
|
struct rtgui_image* rtgui_image_create_from_mem(const char* type, const rt_uint8_t* data, rt_size_t length, rt_bool_t load)
|
||||||
{
|
{
|
||||||
struct rtgui_filerw* filerw;
|
struct rtgui_filerw* filerw;
|
||||||
struct rtgui_image_engine* engine;
|
struct rtgui_image_engine* engine;
|
||||||
|
@ -144,7 +144,7 @@ struct rtgui_image* rtgui_image_create_from_mem(const char* type, const rt_uint8
|
||||||
return RT_NULL;
|
return RT_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (engine->image_load(image, filerw, RT_TRUE) != RT_TRUE)
|
if (engine->image_load(image, filerw, load) != RT_TRUE)
|
||||||
{
|
{
|
||||||
/* close filerw context */
|
/* close filerw context */
|
||||||
rtgui_filerw_close(filerw);
|
rtgui_filerw_close(filerw);
|
||||||
|
|
|
@ -207,7 +207,7 @@ static void rtgui_image_hdc_blit(struct rtgui_image* image, struct rtgui_dc* dc,
|
||||||
|
|
||||||
for (y = 0; y < h; y ++)
|
for (y = 0; y < h; y ++)
|
||||||
{
|
{
|
||||||
rtgui_image_hdc_raw_hline((struct rtgui_dc_hw*)dc, ptr, dst_rect->x1, dst_rect->x2, dst_rect->y1 + y);
|
rtgui_image_hdc_raw_hline((struct rtgui_dc_hw*)dc, ptr, dst_rect->x1, dst_rect->x1 + w, dst_rect->y1 + y);
|
||||||
ptr += hdc->pitch;
|
ptr += hdc->pitch;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
#include <rtgui/rtgui_server.h>
|
#include <rtgui/rtgui_server.h>
|
||||||
#include <rtgui/widgets/window.h>
|
#include <rtgui/widgets/window.h>
|
||||||
|
|
||||||
#define RTGUI_EVENT_DEBUG
|
// #define RTGUI_EVENT_DEBUG
|
||||||
|
|
||||||
#ifdef __WIN32__
|
#ifdef __WIN32__
|
||||||
#define RTGUI_EVENT_DEBUG
|
#define RTGUI_EVENT_DEBUG
|
||||||
|
|
|
@ -189,9 +189,9 @@ static rtgui_image_t* close_unpressed = RT_NULL;
|
||||||
void rtgui_system_theme_init()
|
void rtgui_system_theme_init()
|
||||||
{
|
{
|
||||||
close_pressed = rtgui_image_create_from_mem("xpm",
|
close_pressed = rtgui_image_create_from_mem("xpm",
|
||||||
(const rt_uint8_t*)close_pressed_xpm, sizeof(close_pressed_xpm));
|
(const rt_uint8_t*)close_pressed_xpm, sizeof(close_pressed_xpm), RT_TRUE);
|
||||||
close_unpressed = rtgui_image_create_from_mem("xpm",
|
close_unpressed = rtgui_image_create_from_mem("xpm",
|
||||||
(const rt_uint8_t*)close_unpressed_xpm, sizeof(close_unpressed_xpm));
|
(const rt_uint8_t*)close_unpressed_xpm, sizeof(close_unpressed_xpm), RT_TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* window drawing */
|
/* window drawing */
|
||||||
|
@ -203,10 +203,10 @@ void rtgui_theme_draw_win(struct rtgui_topwin* win)
|
||||||
/* init close box image */
|
/* init close box image */
|
||||||
if (close_pressed == RT_NULL)
|
if (close_pressed == RT_NULL)
|
||||||
close_pressed = rtgui_image_create_from_mem("xpm",
|
close_pressed = rtgui_image_create_from_mem("xpm",
|
||||||
(const rt_uint8_t*)close_pressed_xpm, sizeof(close_pressed_xpm));
|
(const rt_uint8_t*)close_pressed_xpm, sizeof(close_pressed_xpm), RT_TRUE);
|
||||||
if (close_unpressed == RT_NULL)
|
if (close_unpressed == RT_NULL)
|
||||||
close_unpressed = rtgui_image_create_from_mem("xpm",
|
close_unpressed = rtgui_image_create_from_mem("xpm",
|
||||||
(const rt_uint8_t*)close_unpressed_xpm, sizeof(close_unpressed_xpm));
|
(const rt_uint8_t*)close_unpressed_xpm, sizeof(close_unpressed_xpm), RT_TRUE);
|
||||||
|
|
||||||
/* begin drawing */
|
/* begin drawing */
|
||||||
dc = rtgui_dc_begin_drawing(RTGUI_WIDGET(win->title));
|
dc = rtgui_dc_begin_drawing(RTGUI_WIDGET(win->title));
|
||||||
|
|
|
@ -50,7 +50,7 @@ typedef struct rtgui_image rtgui_image_t;
|
||||||
void rtgui_system_image_init(void);
|
void rtgui_system_image_init(void);
|
||||||
|
|
||||||
struct rtgui_image* rtgui_image_create_from_file(const char* type, const char* filename, rt_bool_t load);
|
struct rtgui_image* rtgui_image_create_from_file(const char* type, const char* filename, rt_bool_t load);
|
||||||
struct rtgui_image* rtgui_image_create_from_mem(const char* type, const rt_uint8_t* data, rt_size_t length);
|
struct rtgui_image* rtgui_image_create_from_mem(const char* type, const rt_uint8_t* data, rt_size_t length, rt_bool_t load);
|
||||||
void rtgui_image_destroy(struct rtgui_image* image);
|
void rtgui_image_destroy(struct rtgui_image* image);
|
||||||
|
|
||||||
/* register an image engine */
|
/* register an image engine */
|
||||||
|
|
Loading…
Reference in New Issue