Restore gwin base class image function

ugfx_release_2.6
inmarket 2013-07-04 00:54:25 +10:00
parent 21e52bc859
commit a7198b53ff
2 changed files with 41 additions and 0 deletions

View File

@ -720,6 +720,35 @@ extern "C" {
void gwinFillConvexPoly(GHandle gh, coord_t tx, coord_t ty, const point *pntarray, unsigned cnt);
#endif
/*-------------------------------------------------
* Image functions
*-------------------------------------------------*/
#if GDISP_NEED_IMAGE || defined(__DOXYGEN__)
/**
* @brief Draw the image
* @return GDISP_IMAGE_ERR_OK (0) on success or an error code.
*
* @param[in] gh The window handle
* @param[in] img The image structure
* @param[in] x,y The window location to draw the image
* @param[in] cx,cy The area on the screen to draw
* @param[in] sx,sy The image position to start drawing at
*
* @pre gdispImageOpen() must have returned successfully.
*
* @note If sx,sy + cx,cy is outside the image boundaries the area outside the image
* is simply not drawn.
* @note If @p gdispImageCache() has been called first for this frame, this routine will draw using a
* fast blit from the cached frame. If not, it reads the input and decodes it as it
* is drawing. This may be significantly slower than if the image has been cached (but
* uses a lot less RAM)
*
* @api
*/
gdispImageError gwinImageDraw(GHandle gh, gdispImage *img, coord_t x, coord_t y, coord_t cx, coord_t cy, coord_t sx, coord_t sy);
#endif
#ifdef __cplusplus
}
#endif

View File

@ -501,6 +501,18 @@ void gwinBlitArea(GHandle gh, coord_t x, coord_t y, coord_t cx, coord_t cy, coor
}
#endif
#if GDISP_NEED_IMAGE
gdispImageError gwinImageDraw(GHandle gh, gdispImage *img, coord_t x, coord_t y, coord_t cx, coord_t cy, coord_t sx, coord_t sy) {
if (!((gh->flags & GWIN_FLG_VISIBLE)))
return GDISP_IMAGE_ERR_OK;
#if GDISP_NEED_CLIP
gdispSetClip(gh->x, gh->y, gh->width, gh->height);
#endif
return gdispImageDraw(img, gh->x+x, gh->y+y, cx, cy, sx, sy);
}
#endif
#endif /* GFX_USE_GWIN */
/** @} */