|
代码:
- /******************************************************************************************/
- /* Decode main screen background jpeg. */
- /* The background jpeg is saved in the resource data in "raw" format, meaning it is still */
- /* a jpeg encoded graphic image. We need to decode and color space convert the raw jpeg */
- /* data to create a GUIX pixelmap before we can draw the image. */
- /******************************************************************************************/
- static VOID decode_main_screen_jpeg()
- {
- GX_IMAGE_READER reader;
- GX_PIXELMAP *map;
- /* get a pointer to the raw jpeg data */
- gx_context_pixelmap_get(GX_PIXELMAP_ID_HOME_BG, &map);
- /* create an image reader object */
- gx_image_reader_create(&reader, map->gx_pixelmap_data, map->gx_pixelmap_data_size, GX_COLOR_FORMAT_24XRGB, 0);
- /* decode and color space convert the jpeg to produce a GUIX compatible pixelmap image */
- gx_image_reader_start(&reader, &main_screen_bg);
- }
- /******************************************************************************************/
- /* Override the default draw function of "main_screen". */
- /******************************************************************************************/
- VOID main_screen_draw(GX_WINDOW *window)
- {
- gx_window_background_draw(window);
- /* If this is the first time drawing, then we need to decompress the raw jpeg
- image we use to paint the screen background
- */
- if (!main_screen_bg.gx_pixelmap_data)
- {
- decode_main_screen_jpeg();
- }
- /* unless something went wrong, the pixelmap data should now be populated in
- GUIX pixelmap format
- */
- if (main_screen_bg.gx_pixelmap_data)
- {
- /* Draw background map. */
- gx_canvas_pixelmap_draw(window->gx_widget_size.gx_rectangle_left,
- window->gx_widget_size.gx_rectangle_top, &main_screen_bg);
- }
- gx_widget_children_draw(window);
- }
复制代码
|
|