1469 lines
		
	
	
		
			47 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			1469 lines
		
	
	
		
			47 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| /**
 | |
|     Gfx drawing lib.
 | |
| 
 | |
|     Graphics lib for drawing shape, image & text.
 | |
| 
 | |
|     @file       GxGfx.h
 | |
|     @ingroup    mIGxgfx
 | |
|     @note       Nothing
 | |
| 
 | |
|                 DC : Drawing Canvas object, a bitmap use as a drawing target/source
 | |
| 
 | |
|                 BRUSH: Draw brush, a property-set to help DC drawing
 | |
| 
 | |
|                 VAR: Draw variable, a variable array to help DC drawing custom items
 | |
| 
 | |
|     Copyright   Novatek Microelectronics Corp. 2012.  All rights reserved.
 | |
| */
 | |
| 
 | |
| #ifndef _GX_GRAPHICS_H_
 | |
| #define _GX_GRAPHICS_H_
 | |
| 
 | |
| #include "GxCommon.h"
 | |
| #include "GxGfx/GxDC.h"
 | |
| #include "GxGfx/GxData.h"
 | |
| #include "GxGfx/GxColor.h"
 | |
| 
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| /**
 | |
|     @addtogroup mIGxgfx
 | |
| */
 | |
| //@{
 | |
| //--------------------------------------------------------------------------------------
 | |
| //  enum - brush
 | |
| //--------------------------------------------------------------------------------------
 | |
| /**
 | |
|      @name BRUSH for shape setting
 | |
| */
 | |
| //@{
 | |
| #define BR_SHAPELINESTYLE       0x00  ///< shape line style: line style, brush weight, brush type //(TODO) line style
 | |
| #define BR_SHAPEFILLSTYLE       0x01  ///< shape rect style: draw line, fill inner
 | |
| #define BR_SHAPEFORECOLOR       0x02  ///< shape fore color (line color)
 | |
| #define BR_SHAPEBACKCOLOR       0x03  ///< shape back color (fill color)
 | |
| #define BR_SHAPEMAPPING         0x04  ///< shape color mapping table
 | |
| #define BR_SHAPELAYOUT          0x05  ///< shape layout style (TODO)
 | |
| #define BR_SHAPEALIGN           0x06  ///< shape alignment control (TODO)
 | |
| //#define BR_SHAPETABLE           0x07  ///< shape table (TODO)
 | |
| //@}
 | |
| 
 | |
| /**
 | |
|      @name BRUSH for image setting
 | |
| */
 | |
| //@{
 | |
| #define BR_IMAGEROP             0x08  ///< image ROP
 | |
| #define BR_IMAGEPARAM           0x09  ///< image parameters for ROP
 | |
| #define BR_IMAGEPALETTE         0x0A  ///< image palette = color LUT for mapping index to color
 | |
| #define BR_IMAGEMAPPING         0x0B  ///< image mapping = index LUT for mapping index to index
 | |
| #define BR_IMAGELAYOUT          0x0C  ///< image layout (TODO)
 | |
| #define BR_IMAGEALIGN           0x0D  ///< image align
 | |
| #define BR_IMAGETABLE           0x0E  ///< image table
 | |
| //@}
 | |
| 
 | |
| /**
 | |
|      @name BRUSH for text setting
 | |
| */
 | |
| //@{
 | |
| #define BR_TEXTFONT             0x0F  ///< text font table
 | |
| #define BR_TEXTFONTSTYLE        0x10  ///< text font style: font style, font effect //(TODO) font style
 | |
| #define BR_TEXTFONTSIZE         0x11  ///< text font size (TODO)
 | |
| #define BR_TEXTFORECOLOR1       0x12  ///< text font face color
 | |
| #define BR_TEXTFORECOLOR2       0x13  ///< text font shadow color
 | |
| #define BR_TEXTFORECOLOR3       0x14  ///< text font line color (TODO)
 | |
| #define BR_TEXTLAYOUT           0x15  ///< text layout: Line-break, Use-Margin
 | |
| #define BR_TEXTALIGN            0x16  ///< text align: line, vertical, horizontal
 | |
| #define BR_TEXTLINEHEIGHT       0x17  ///< text line height
 | |
| #define BR_TEXTLETTERSPACE      0x18  ///< text letter space
 | |
| #define BR_TEXTINDENTSPACE      0x19  ///< text indent space (TODO)
 | |
| #define BR_TEXTSTRINGTABLE      0x1A  ///< text string table
 | |
| #define BR_TEXTCOLORMAPPING     0x1B  ///< text color mapping table
 | |
| //@}
 | |
| 
 | |
| //--------------------------------------------------------------------------------------
 | |
| //  enum - brush value
 | |
| //--------------------------------------------------------------------------------------
 | |
| /**
 | |
|      @name value for BR_SHAPELINESTYLE
 | |
| */
 | |
| //@{
 | |
| #define LINESTYLE_LINE          0  ///< line style : ----------------
 | |
| #if 0
 | |
| #define LINESTYLE_DOT           1  ///< line style : . . . . . . . .
 | |
| #define LINESTYLE_DASH          2  ///< line style : -- -- -- -- --
 | |
| #define LINESTYLE_DOTDASH       3  ///< line style : . -- . -- . -- .
 | |
| #define LINESTYLE_DOTDOTDASH    4  ///< line style : . . -- . . -- .
 | |
| #define LINESTYLE_DOTDASHDASH   5  ///< line style : . -- -- . -- --
 | |
| #define LINESTYLE_SPARSEDOT     6  ///< line style : .   .   .   .
 | |
| #define LINESTYLE_SPARSEDASH    7  ///< line style : --  --  --  --
 | |
| #endif
 | |
| #define LINESTYLE_MAX           7  ///< line style max value
 | |
| #define LINEBRUSH_CIRCLE        0x00000000 ///< line brush : circle
 | |
| #define LINEBRUSH_SQUARE        0x00000010 ///< line brush : square
 | |
| #define LINEBRUSH_MAX           0x000000f0 ///< line brush max value
 | |
| #define LINEWEIGHT_MAX          31 ///< line weight max value
 | |
| //@}
 | |
| 
 | |
| /**
 | |
|      @name Mask for BR_SHAPELINESTYLE
 | |
| */
 | |
| //@{
 | |
| #define DSF_LS_MASK             0x00000007 ///< Mask for accessing LINESTYLE in BR_SHAPELINESTYLE
 | |
| #define DSF_LB_MASK             0x000000f0 ///< Mask for accessing LINEBRUSH in BR_SHAPELINESTYLE
 | |
| #define DSF_LW_MASK             0x0000ff00 ///< Mask for accessing LINEWEIGHT in BR_SHAPELINESTYLE
 | |
| //@}
 | |
| 
 | |
| /**
 | |
|      Generate LINESTYLE value of BR_SHAPELINESTYLE.
 | |
| 
 | |
|      Generate LINESTYLE value of BR_SHAPELINESTYLE.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in] ls              LINESTYLE_XXX.
 | |
|      @return                    Value of BR_SHAPELINESTYLE.
 | |
| */
 | |
| #define LINESTYLE(ls)           ((UINT32)(ls) & 0x07)
 | |
| 
 | |
| /**
 | |
|      Get LINESTYLE value of BR_SHAPELINESTYLE.
 | |
| 
 | |
|      Get LINESTYLE value of BR_SHAPELINESTYLE.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in] ls               Value of BR_SHAPELINESTYLE.
 | |
|      @return                    LINESTYLE_XXX.
 | |
| */
 | |
| #define GET_LINESTYLE(ls)       ((ls) & DSF_LS_MASK)
 | |
| 
 | |
| /**
 | |
|      Generate LINEBRUSH value of BR_SHAPELINESTYLE.
 | |
| 
 | |
|      Generate LINEBRUSH value of BR_SHAPELINESTYLE.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in] lt              LINEBRUSH_XXX.
 | |
|      @return                    Value of BR_SHAPELINESTYLE.
 | |
| */
 | |
| #define LINEBRUSH(lt)           (((UINT32)(lt) & 0x0f)<<4)
 | |
| 
 | |
| /**
 | |
|      Get LINEBRUSH value of BR_SHAPELINESTYLE.
 | |
| 
 | |
|      Get LINEBRUSH value of BR_SHAPELINESTYLE.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in] lb               Value of BR_SHAPELINESTYLE.
 | |
|      @return                    LINEBRUSH_XXX.
 | |
| */
 | |
| #define GET_LINEBRUSH(lb)       (((lb) & DSF_LB_MASK) >> 4)
 | |
| 
 | |
| /**
 | |
|      Generate LINEWEIGHT value of BR_SHAPELINESTYLE.
 | |
| 
 | |
|      Generate LINEWEIGHT value of BR_SHAPELINESTYLE.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in] lw              LINEWEIGHT_XXX.
 | |
|      @return                    Value of BR_SHAPELINESTYLE.
 | |
| */
 | |
| #define LINEWEIGHT(lw)          (((UINT32)(lw) & 0xff)<<8)
 | |
| 
 | |
| /**
 | |
|      Get LINEWEIGHT value of BR_SHAPELINESTYLE.
 | |
| 
 | |
|      Get LINEWEIGHT value of BR_SHAPELINESTYLE.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in] lw               Value of BR_SHAPELINESTYLE.
 | |
|      @return                    LINEWEIGHT_XXX.
 | |
| */
 | |
| #define GET_LINEWEIGHT(lw)      (((lw) & DSF_LW_MASK) >> 8)
 | |
| 
 | |
| /**
 | |
|      @name value for BR_SHAPEFILLSTYLE
 | |
| */
 | |
| //@{
 | |
| #define FILLSTYLE_FILL          0x00000000  ///< fill style: enable fill color at rect background
 | |
| #define FILLSTYLE_BORDER        0x00000000  ///< fill style: enable draw frame at rect conner
 | |
| #define FILLSTYLE_EMPTY         0x00000001  ///< fill style: disable fill color
 | |
| #define FILLSTYLE_NOBORDER      0x00000002  ///< fill style: disable draw frame
 | |
| #define FILLSTYLE_FILLALPHA     0x00000010  ///< fill style: fill alpha channel
 | |
| #define FILLSTYLE_FILLRED       0x00000020  ///< fill style: fill color.r channel
 | |
| #define FILLSTYLE_FILLGREEN     0x00000040  ///< fill style: fill color.g channel
 | |
| #define FILLSTYLE_FILLBLUE      0x00000080  ///< fill style: fill color.b channel
 | |
| #define FILLSTYLE_FILLCOLOR     (FILLSTYLE_FILLRED|FILLSTYLE_FILLGREEN|FILLSTYLE_FILLBLUE) ///< fill style: fill color.rgb channel
 | |
| //@}
 | |
| 
 | |
| /**
 | |
|      @name value for BR_IMAGEROP
 | |
| */
 | |
| //@{
 | |
| #ifndef ROP_COPY    //the same as linux fb.h
 | |
| #define ROP_COPY                0x00000000 ///< image rop: COPY (Support INDEX,YUV format)
 | |
| #endif
 | |
| /*
 | |
| #define ROP_NOT                 0x01000000 ///< image rop: NOT (Support INDEX,YUV format)
 | |
| #define ROP_AND                 0x02000000 ///< image rop: AND (Support INDEX,YUV format)
 | |
| #define ROP_OR                  0x03000000 ///< image rop: OR (Support INDEX,YUV format)
 | |
| #define ROP_XOR                 0x04000000 ///< image rop: XOR (Support INDEX,YUV format)
 | |
| */
 | |
| #define ROP_KEY                 0x05000000 ///< image rop: KEY (Support INDEX,YUV format) param: color = 0x0~0xfffff
 | |
| //#define ROP_DESTNOT             0x06000000 ///< image rop: DESTNOT (Support INDEX,YUV format)
 | |
| //#define ROP_DESTKEY             0x07000000 ///< image rop: DESTKEY (Support INDEX,YUV format) param: color = 0x0~0xfffff
 | |
| #define ROP_DESTFILL            0x08000000 ///< image rop: DESTFILL (Support INDEX,YUV format) param: color = 0x0~0xfffff
 | |
| /*
 | |
| #define ROP_ADD                 0x10000000 ///< image rop: ADD (Support YUV format only)  sub-type: SRC_DIV***
 | |
| #define ROP_SUB                 0x11000000 ///< image rop: SUB (Support YUV format only)  sub-type: SRC_DIV***
 | |
| #define ROP_ABSSUB              0x12000000 ///< image rop: ABSSUB (Support YUV format only)  sub-type: SRC_DIV***
 | |
| #define ROP_MUL                 0x13000000 ///< image rop: MUL (Support YUV format only)  sub-type: OUT_DIV***
 | |
| */
 | |
| #define ROP_MUL_CNST_ALPHA      0x13000000 ///< image rop: MUL  alpha a constant value,stand alone ROP
 | |
| #define ROP_BLEND               0x14000000 ///< image rop: BLEND (alpha plan blenging)
 | |
| #define ROP_BLEND_CNST_ALPHA    0x15000000 ///< image rop: ROP_BLEND_CNST_ALPHA (constant alpha)
 | |
| #define ROP_FONT                0x20000000 ///< image rop: FONT (Support INDEX format only) [always rop=ROP_KEY and colorkey =0]
 | |
| #define ROP_ROTATE              0x40000000 ///< image rop: ROTATE (Support INDEX,YUV format) sub-type: SRC_RCW***,SRC_RCCW***,SRC_MRR***
 | |
| #define ROP_MASK                0xFF000000 ///< image rop mask
 | |
| #define ROP_SUB_MASK            0x00ff0000
 | |
| #define SRC_CNST_ALPHA(a)       (ROP_MUL_CNST_ALPHA>>8 | ((a)&0x000000ff)) ///< image src: ALPHA (subtype for ROP_COPY, ROP_KEY,ROP_BLEND with ARGB image)
 | |
| 
 | |
| #define SRC_RCW_90              0x00000000 ///< image src: rotate CW 90 degree (subtype for ROP_ROTATE)
 | |
| #define SRC_RCW_180             0x01000000 ///< image src: rotate CW 180 degree (subtype for ROP_ROTATE)
 | |
| #define SRC_RCW_270             0x02000000 ///< image src: rotate CW 270 degree (subtype for ROP_ROTATE)
 | |
| #define SRC_RCW_360             0x10000000 ///< image src: rotate CW 360 degree (subtype for ROP_ROTATE)
 | |
| #define SRC_MRR_X               0x04000000 ///< image src: mirror in x (horizontal flip) (subtype for ROP_ROTATE)
 | |
| #define SRC_MRR_Y               0x08000000 ///< image src: mirror in y (vertical flip) (subtype for ROP_ROTATE)
 | |
| #define SRC_RCCW_90             SRC_RCW_270 ///< image src: rotate CCW 270 degree (subtype for ROP_ROTATE)
 | |
| #define SRC_RCCW_180            SRC_RCW_180 ///< image src: rotate CCW 180 degree (subtype for ROP_ROTATE)
 | |
| #define SRC_RCCW_270            SRC_RCW_90 ///< image src: rotate CCW 90 degree (subtype for ROP_ROTATE)
 | |
| #define FILTER_NONE             0x00000000 ///< image filter: NONE (subtype for scaling API)
 | |
| #define FILTER_PIXEL            0x00400000 ///< image filter: PIXEL (TODO) (subtype for scaling API)
 | |
| #define FILTER_LINEAR           0x00800000 ///< image filter: LINEAR (subtype for scaling API)
 | |
| #define FILTER_CUBIC            0x00C00000 ///< image filter: CUBIC (TODO) (subtype for scaling API)
 | |
| #define FILTER_MASK             0x00C00000 ///< image filter mask (subtype for scaling API)
 | |
| #define FILTER_SHIFT            22 ///< image filter shift
 | |
| //@}
 | |
| 
 | |
| /**
 | |
|      @name value for BR_SHAPELAYOUT, BR_IMAGELAYOUT, BR_TEXTLAYOUT
 | |
| */
 | |
| //@{
 | |
| #define LAYOUT_NORMAL           0x00000000 ///< layout : NORMAL
 | |
| #define LAYOUT_LINEBREAK        0x00000100 ///< layout : LINEBREAK
 | |
| #define LAYOUT_LINEWRAP         0x00000200 ///< layout : LINEWRAP
 | |
| #if 0 //TODO
 | |
| #define LAYOUT_ROTATE_L         0x00000001
 | |
| #define LAYOUT_ROTATE_R         0x00000002
 | |
| #define LAYOUT_MIRROR_X         0x00000004
 | |
| #define LAYOUT_MIRROR_Y         0x00000008
 | |
| #define LAYOUT_REPEAT_X         0x00000010
 | |
| #define LAYOUT_REPEAT_Y         0x00000020
 | |
| #define LAYOUT_MARGIN           0x00000400
 | |
| #endif //TODO
 | |
| #define LAYOUT_CLIPPING         0x00000800 ///< layout : CLIPPING
 | |
| //@}
 | |
| 
 | |
| /**
 | |
|      @name value for BR_SHAPEALIGN, BR_IMAGEALIGN, BR_TEXTALIGN
 | |
| */
 | |
| //@{
 | |
| #define ALIGN_LEFT              0x00000000  ///< alignment: horizontal align to left
 | |
| #define ALIGN_CENTER            0x00000001  ///< alignment: horizontal align to center
 | |
| #define ALIGN_RIGHT             0x00000002  ///< alignment: horizontal align to right
 | |
| #define ALIGN_JUSTIFY           0x00000003  ///< alignment: horizontal align to justify (distributed) (TODO)
 | |
| #define ALIGN_H_MASK            0x00000003  ///< alignment horizontal mask
 | |
| #define ALIGN_TOP               0x00000000  ///< alignment: vertical align to top
 | |
| #define ALIGN_MIDDLE            0x00000010  ///< alignment: vertical align to middle
 | |
| #define ALIGN_BOTTOM            0x00000020  ///< alignment: vertical align to bottom
 | |
| #define ALIGN_V_MASK            0x00000030  ///< alignment vertical mask
 | |
| //@}
 | |
| 
 | |
| 
 | |
| /**
 | |
|      @name value for BR_TEXTFONT
 | |
| */
 | |
| //@{
 | |
| //scale
 | |
| #define SCALE_1X                0     ///< font scale=1.00
 | |
| #if 0 //TODO
 | |
| #define SCALE_2X                100   ///< font scale=2.00
 | |
| #define SCALE_3X                200   ///< font scale=3.00
 | |
| #define SCALE_4X                300   ///< font scale=4.00
 | |
| #endif //TODO
 | |
| //@}
 | |
| 
 | |
| /**
 | |
|      @name value for BR_TEXTFONTSTYLE
 | |
| */
 | |
| //@{
 | |
| #define FONTSTYLE_NORMAL        0x00000000  ///< font style : normal (use color index 1)
 | |
| #if 0 //TODO
 | |
| #define FONTSTYLE_ITALIC        0x00000001  ///< font style : italic (use color index 1)
 | |
| #define FONTSTYLE_BOLD          0x00000002  ///< font style : bold  (use color index 1)
 | |
| #define FONTSTYLE_UNDERLINE     0x00000004  ///< font style : underline (use color index 3)
 | |
| #define FONTSTYLE_STRIKEOUT     0x00000008  ///< font style : strikeout (use color index 3)
 | |
| #define DSF_FS(fs)              (((UINT32)(fs) & 0x000000ff))
 | |
| #define DSF_FS_MASK             0x000000ff
 | |
| #endif //TODO
 | |
| #define FONTEFFECT_NONE         0x00000000  ///< font effect : none
 | |
| #define FONTEFFECT_SHADOW       0x00000100  ///< font effect : shadow (use color index 2)
 | |
| #define FONTEFFECT_SHADOW2      0x00000200  ///< font effect : shadow2 (use color index 2)
 | |
| #define FONTEFFECT_HIGHLIGHT    0x00000300  ///< font effect : highlight (use color index 2)
 | |
| #define FONTEFFECT_HIGHLIGHT2   0x00000400  ///< font effect : highlight2 (use color index 2)
 | |
| #define FONTEFFECT_OUTLINE      0x00000500  ///< font effect : outline (use color index 2)
 | |
| #define FONTEFFECT_OUTLINE2     0x00000600  ///< font effect : outline2 (use color index 2)
 | |
| #define F_NOEXTEND              0x00008000  ///< font effect : no auto extend
 | |
| #define DSF_FE(fs)              ((((UINT32)(fs) & 0x00007f00))>>8)
 | |
| #define DSF_FE_MASK             0x0000ff00
 | |
| //@}
 | |
| 
 | |
| /**
 | |
|      @name value for BR_TEXTALIGN
 | |
| */
 | |
| //@{
 | |
| #define LETTERALIGN_TOP         0x00000000  ///< letter alignment : text letter align to top
 | |
| #define LETTERALIGN_BASELINE    0x00000100  ///< letter alignment : text letter align to baseline = (bottom-2)
 | |
| #define LETTERALIGN_BOTTOM      0x00000200  ///< letter alignment : text letter align to bottom
 | |
| #define LETTERALIGN_MASK        0x00000300  ///< letter alignment text letter mask
 | |
| #define STREAMALIGN_FORWARD     0x00000000  ///< stream alignment : text stream is forward
 | |
| #define STREAMALIGN_BACKWARD    0x00000400  ///< stream alignment : text stream is backward (reverse order) (Ex: Arabic, Persian and Hebrew)
 | |
| #define STREAMALIGN_MASK        0x00000400  ///< stream alignment text stream mask
 | |
| //@}
 | |
| 
 | |
| //--------------------------------------------------------------------------------------
 | |
| //  enum - brush default value
 | |
| //--------------------------------------------------------------------------------------
 | |
| /**
 | |
|      @name default value for shape
 | |
| */
 | |
| //@{
 | |
| #define SHAPELINESTYLE_DEFAULT  (LINESTYLE_LINE|LINEBRUSH_CIRCLE|LINEWEIGHT(0)) ///< default value
 | |
| #define SHAPEFILLSTYLE_DEFAULT  (FILLSTYLE_FILL|FILLSTYLE_BORDER) ///< default value
 | |
| #define SHAPEFORECOLOR_DEFAULT  0 ///< default value
 | |
| #define SHAPEBACKCOLOR_DEFAULT  0 ///< default value
 | |
| #define SHAPEMAPPING_DEFAULT    0 ///< default value
 | |
| #define SHAPELAYOUT_DEFAULT     0 ///< default value (TODO)
 | |
| #define SHAPEALIGN_DEFAULT      0 ///< default value (TODO)
 | |
| //@}
 | |
| 
 | |
| /**
 | |
|      @name default value for image
 | |
| */
 | |
| //@{
 | |
| #define IMAGEROP_DEFAULT        (ROP_COPY|FILTER_NONE) ///< default value
 | |
| #define IMAGEPARAM_DEFAULT      0 ///< default value
 | |
| #define IMAGEPALETTE_DEFAULT    0 ///< default value
 | |
| #define IMAGEMAPPING_DEFAULT    0 ///< default value
 | |
| #define IMAGELAYOUT_DEFAULT     (LAYOUT_NORMAL) ///< default value (TODO)
 | |
| #define IMAGEALIGN_DEFAULT      (ALIGN_LEFT|ALIGN_TOP) ///< default value
 | |
| #define IMAGETABLE_DEFAULT      0  ///< default value
 | |
| 
 | |
| /**
 | |
|      @name default value for text
 | |
| */
 | |
| //@{
 | |
| #define TEXTFONT_DEFAULT        0  ///< default value
 | |
| #define TEXTFONTSTYLE_DEFAULT   (FONTSTYLE_NORMAL|FONTEFFECT_NONE) ///< default value
 | |
| #define TEXTFONTSIZE_DEFAULT    SCALE_1X ///< default value (TODO)
 | |
| #define TEXTFORECOLOR1_DEFAULT  0  ///< default value
 | |
| #define TEXTFORECOLOR2_DEFAULT  0  ///< default value
 | |
| #define TEXTFORECOLOR3_DEFAULT  0  ///< default value
 | |
| #define TEXTLAYOUT_DEFAULT      (LAYOUT_NORMAL)  ///< default value
 | |
| #define TEXTALIGN_DEFAULT       (LETTERALIGN_TOP|ALIGN_LEFT|ALIGN_TOP)  ///< default value
 | |
| #define TEXTLINEHEIGHT_DEFAULT  SCALE_1X  ///< default value
 | |
| #define TEXTLETTERSPACE_DEFAULT 0  ///< default value
 | |
| #define TEXTINDENTSPACE_DEFAULT 0  ///< default value (TODO)
 | |
| #define TEXTSTRINGTABLE_DEFAULT 0   ///< default value
 | |
| //@}
 | |
| 
 | |
| //--------------------------------------------------------------------------------------
 | |
| //  type - brush
 | |
| //--------------------------------------------------------------------------------------
 | |
| /**
 | |
|     bursh property value
 | |
| */
 | |
| typedef UINT32  BVALUE;
 | |
| 
 | |
| #define BR_STATE_NUM            0x20 ///<- total brush state numbers
 | |
| 
 | |
| /**
 | |
|      BRUSH info.
 | |
| 
 | |
|      BRUSH info.
 | |
|      @note Nothing.
 | |
| */
 | |
| typedef struct _BRUSH {
 | |
| 	BVALUE uiState[BR_STATE_NUM]; ///<- state array
 | |
| } BRUSH, *PBRUSH;
 | |
| 
 | |
| #define FLOAT_TO_BVALUE(fv)     (*(BVALUE*)&(fv))       ///< convert float to BVALUE
 | |
| 
 | |
| /**
 | |
|     config string buffer size,used for GxGfx_Config
 | |
| */
 | |
| #define CFG_STRING_BUF_SIZE     0x00000001
 | |
| 
 | |
| /**
 | |
|      Config gfx.
 | |
| 
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in] cfg           configure item
 | |
|      @param[in] vale          configure vale.
 | |
| */
 | |
| RESULT GxGfx_Config(UINT32 cfg, UINT32 vale);
 | |
| 
 | |
| //--------------------------------------------------------------------------------------
 | |
| //  function - init/exit
 | |
| //--------------------------------------------------------------------------------------
 | |
| /**
 | |
|      Initialize gfx.
 | |
| 
 | |
|      Initialize gfx.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in] pWorkBuf        Working buffer address. (NOTE: need word alignment)
 | |
|      @param[in] nWorkBufSize    Working buffer size.
 | |
| */
 | |
| RESULT GxGfx_Init(UINT32 *pWorkBuf, UINT32 nWorkBufSize);
 | |
| 
 | |
| /**
 | |
|      Uninitialize gfx.
 | |
| 
 | |
|      Uninitialize gfx.
 | |
|      @note Nothing.
 | |
| */
 | |
| RESULT GxGfx_Exit(void);
 | |
| 
 | |
| /**
 | |
|      Reset working stack.
 | |
| 
 | |
|      Reset working stack.
 | |
|      @note The memory space is using working buffer.
 | |
| */
 | |
| void GxGfx_ResetStack(void);
 | |
| 
 | |
| /**
 | |
|      Alloc space from stack.
 | |
| 
 | |
|      Alloc space from stack.
 | |
|      @note The memory space is using working buffer.
 | |
| 
 | |
|      @param[in] uiSize          Buffer size.
 | |
|      @return                    Buffer address.
 | |
| */
 | |
| UINT32 *GxGfx_PushStack(UINT32 uiSize);
 | |
| 
 | |
| /**
 | |
|      Free space to stack.
 | |
| 
 | |
|      Free space to stack.
 | |
|      @note The memory space is using working buffer.
 | |
| */
 | |
| void GxGfx_PopStack(void);
 | |
| 
 | |
| /**
 | |
|      Alloc DC from stack.
 | |
| 
 | |
|      Alloc DC from stack.
 | |
|      @note The memory space is using working buffer.
 | |
| 
 | |
|      @param[in,out] pDC         Pointer to DC.
 | |
|      @param[in] uiType          Type. (ex: TYPE_XXX).
 | |
|      @param[in] uiPxlfmt        Format (ex: PXLFMT_XXX).
 | |
|      @param[in] uiWidth         Buffer width (in pixels).
 | |
|      @param[in] uiHeight        Buffer height (in pixels).
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b GX_ERROR_TYPE:    Failed, not support format with this type.
 | |
|               GX_ERROR_FORMAT:  Failed, not support format.
 | |
|               GX_NULL_POINTER:  Failed, not given pDC pointer.
 | |
|               GX_NULL_BUF:      Failed, not enough memory space in stack.
 | |
|               GX_ERROR_SIZEZERO:  Failed, buffer size (width, height, pitch) is zero.
 | |
|               GX_ERROR_SIZEALIGN:  Failed, not match size align requirement.
 | |
| */
 | |
| RESULT GxGfx_PushStackDC(DC *pDC, UINT16 uiType, UINT16 uiPxlfmt, UINT32 uiWidth, UINT32 uiHeight);
 | |
| 
 | |
| /**
 | |
|      Free DC to stack.
 | |
| 
 | |
|      Free DC to stack.
 | |
|      @note The memory space is using working buffer.
 | |
| 
 | |
|      @param[in,out] pDC         Pointer to DC.
 | |
| */
 | |
| void GxGfx_PopStackDC(DC *pDC);
 | |
| 
 | |
| 
 | |
| /**
 | |
|      Lock GxGfx resource.
 | |
| 
 | |
|      Font table,color mapping and index mapping resource should be access by 1 task.
 | |
|      Different task access should lock/unlock.
 | |
| 
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_Lock(void);
 | |
| 
 | |
| 
 | |
| /**
 | |
|      Unlock GxGfx resource.
 | |
| 
 | |
|      Font table,color mapping and index mapping resource should be access by 1 task.
 | |
|      Different task access should lock/unlock.
 | |
| 
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_Unlock(void);
 | |
| 
 | |
| //--------------------------------------------------------------------------------------
 | |
| //  function - set/get brush state and variable
 | |
| //--------------------------------------------------------------------------------------
 | |
| /**
 | |
|      Get all brush state.
 | |
| 
 | |
|      Get all brush state.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in] pBrush          Pointer to BRUSH.
 | |
| */
 | |
| void GxGfx_GetAll(BRUSH *pBrush);
 | |
| 
 | |
| /**
 | |
|      Set all brush state.
 | |
| 
 | |
|      Set all brush state.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in] pBrush          Pointer to BRUSH.
 | |
| */
 | |
| void GxGfx_SetAll(const BRUSH *pBrush);
 | |
| 
 | |
| /**
 | |
|      Set all brush state to default.
 | |
| 
 | |
|      Set all brush state to default.
 | |
|      @note Nothing.
 | |
| */
 | |
| void GxGfx_SetAllDefault(void);
 | |
| 
 | |
| /**
 | |
|      internal function.
 | |
| 
 | |
|      internal function.
 | |
|      @note User should not call this function.
 | |
| */
 | |
| void BR_SetP(UINT8 uiBrush, BVALUE uiValue);
 | |
| 
 | |
| /**
 | |
|      internal function.
 | |
| 
 | |
|      internal function.
 | |
|      @note User should not call this function.
 | |
| */
 | |
| BVALUE BR_GetP(UINT8 uiBrush);
 | |
| 
 | |
| /**
 | |
|      Set BRUSH state.
 | |
| 
 | |
|      Set BRUSH state.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in] n         Property (ex: BR_XXX).
 | |
|      @param[in] p         value.
 | |
| */
 | |
| //void   GxGfx_Set                (UINT8 uiProperty, BVALUE uiValue);
 | |
| #define GxGfx_Set(n, p)         BR_SetP(n, (BVALUE)(p))
 | |
| 
 | |
| /**
 | |
|      Get BRUSH state.
 | |
| 
 | |
|      Get BRUSH state.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in] n               Property (ex: BR_XXX).
 | |
|      @return                    value.
 | |
| */
 | |
| //BVALUE GxGfx_Get                (UINT8 uiProperty);
 | |
| #define GxGfx_Get(n)            BR_GetP(n)
 | |
| 
 | |
| /**
 | |
|      internal function.
 | |
| 
 | |
|      internal function.
 | |
|      @note User should not call this function.
 | |
| */
 | |
| void VAR_SetV(UINT8 nVarId, BVALUE nValue);
 | |
| 
 | |
| /**
 | |
|      internal function.
 | |
| 
 | |
|      internal function.
 | |
|      @note User should not call this function.
 | |
| */
 | |
| BVALUE VAR_GetV(UINT8 nVarId);
 | |
| 
 | |
| /**
 | |
|      Set variable.
 | |
| 
 | |
|      Set variable.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in] n           variable Id.
 | |
|      @param[in] v           value.
 | |
| */
 | |
| //void GxGfx_SetVar               (UINT8 nVarId, BVALUE nValue);
 | |
| #define GxGfx_SetVar(n, v)      VAR_SetV(n, (BVALUE)(v))
 | |
| 
 | |
| /**
 | |
|      Get variable.
 | |
| 
 | |
|      Get variable.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in] n               variable Id (ex: BR_XXX).
 | |
|      @return                    value.
 | |
| */
 | |
| //BVALUE GxGfx_GetVar             (UINT8 nVarId);
 | |
| #define GxGfx_GetVar(n)         VAR_GetV(n)
 | |
| 
 | |
| //--------------------------------------------------------------------------------------
 | |
| //  function - set dc unit/origin/window/pos
 | |
| //--------------------------------------------------------------------------------------
 | |
| /*
 | |
| Xfm Relation:
 | |
| Loc/Size -> Orig -> 0 -> Coord
 | |
|             Win  -> 0 -> Coord
 | |
| */
 | |
| 
 | |
| /**
 | |
|      Set origin point of DC.
 | |
| 
 | |
|      Set origin point of DC.
 | |
|      @note Origin point is used to support transform (shift).
 | |
| 
 | |
|      @param[in,out] pDC         Pointer to DC.
 | |
|      @param[in] x               x of origin point.
 | |
|      @param[in] y               y of origin point.
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_SetOrigin(DC *pDC, LVALUE x, LVALUE y);
 | |
| 
 | |
| /**
 | |
|      Get origin point of DC.
 | |
| 
 | |
|      Get origin point of DC.
 | |
|      @note Origin point is used to support transform (shift).
 | |
| 
 | |
|      @param[in,out] pDC         Pointer to DC.
 | |
|      @return                    Origin point.
 | |
| */
 | |
| IPOINT GxGfx_GetOrigin(const DC *pDC);
 | |
| 
 | |
| /**
 | |
|      Set coordinate system of DC.
 | |
| 
 | |
|      Set coordinate system of DC.
 | |
|      @note Coordinate system is used to support transform (shift+scale).
 | |
| 
 | |
|      @param[in,out] pDC         Pointer to DC.
 | |
|      @param[in] vw              Virtual width.
 | |
|      @param[in] vh              Virtual height.
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_SetCoord(DC *pDC, LVALUE vw, LVALUE vh);
 | |
| 
 | |
| /**
 | |
|      Set coordinate system of DC.
 | |
| 
 | |
|      Set coordinate system of DC.
 | |
|      @note Coordinate system is used to support transform (shift+scale).
 | |
| 
 | |
|      @param[in,out] pDC         Pointer to DC.
 | |
|      @param[in] vw              Virtual width.
 | |
|      @param[in] vh              Virtual height.
 | |
|      @param[in] rx              Real x (base on buffer coordinate).
 | |
|      @param[in] ry              Real y (base on buffer coordinate).
 | |
|      @param[in] rw              Real width (base on buffer coordinate).
 | |
|      @param[in] rh              Real height (base on buffer coordinate).
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_SetCoordEx(DC *pDC, LVALUE vw, LVALUE vh, LVALUE rx, LVALUE ry, LVALUE rw, LVALUE rh);
 | |
| 
 | |
| /**
 | |
|      Get coordinate system of DC.
 | |
| 
 | |
|      Get coordinate system of DC.
 | |
|      @note Coordinate system is used to support transform (shift+scale).
 | |
| 
 | |
|      @param[in,out] pDC         Pointer to DC.
 | |
|      @return                    Virtual width, height.
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| ISIZE GxGfx_GetCoord(const DC *pDC);
 | |
| 
 | |
| /**
 | |
|      Get coordinate system of DC.
 | |
| 
 | |
|      Get coordinate system of DC.
 | |
|      @note Coordinate system is used to support transform (shift+scale).
 | |
| 
 | |
|      @param[in,out] pDC         Pointer to DC.
 | |
|      @return                    Real x,y,width,height (base on buffer coordinate).
 | |
| */
 | |
| IRECT GxGfx_GetCoordEx(const DC *pDC);
 | |
| 
 | |
| /**
 | |
|      Set clipping window of DC.
 | |
| 
 | |
|      Set clipping window of DC.
 | |
|      @note Clipping window is used to skip drawing action on non-crop range.
 | |
| 
 | |
|      @param[in,out] pDC         Pointer to DC.
 | |
|      @param[in] x1              Left of window.
 | |
|      @param[in] y1              Top of window.
 | |
|      @param[in] x2              Right of window.
 | |
|      @param[in] y2              Bottom of window.
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_SetWindow(DC *pDC, LVALUE x1, LVALUE y1, LVALUE x2, LVALUE y2);
 | |
| 
 | |
| /**
 | |
|      Get clipping window of DC.
 | |
| 
 | |
|      Get clipping window of DC.
 | |
|      @note Clipping window is used to skip drawing action on non-crop range.
 | |
| 
 | |
|      @param[in,out] pDC         Pointer to DC.
 | |
|      @return                    The window
 | |
| */
 | |
| IRECT GxGfx_GetWindow(const DC *pDC);
 | |
| 
 | |
| /**
 | |
|      Move cursor of DC to new location.
 | |
| 
 | |
|      Move cursor of DC to new location.
 | |
|      @note Each DC has an cursor to record last drawing location.
 | |
| 
 | |
|      @param[in,out] pDC         Pointer to DC.
 | |
|      @param[in] x               x of cursor.
 | |
|      @param[in] y               y of cursor.
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_MoveTo(DC *pDC, LVALUE x, LVALUE y);
 | |
| 
 | |
| /**
 | |
|      Move cursor of DC to previous location.
 | |
| 
 | |
|      Move cursor of DC to previous location.
 | |
|      @note Each DC has an cursor to record last drawing location.
 | |
| 
 | |
|      @param[in,out] pDC         Pointer to DC.
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_MoveBack(DC *pDC);
 | |
| 
 | |
| /**
 | |
|      Get cursor location of DC.
 | |
| 
 | |
|      Get cursor location of DC.
 | |
|      @note Each DC has an cursor to record last drawing location.
 | |
| 
 | |
|      @param[in,out] pDC         Pointer to DC.
 | |
|      @return                    Current location.
 | |
| */
 | |
| IPOINT GxGfx_GetPos(const DC *pDC);
 | |
| 
 | |
| /**
 | |
|      Get last cursor movement of DC.
 | |
| 
 | |
|      Get last cursor movement of DC.
 | |
|      @note Each DC has an cursor to record last drawing location.
 | |
| 
 | |
|      @param[in,out] pDC         Pointer to DC.
 | |
|      @return                    Last movement (vector).
 | |
| */
 | |
| ISIZE GxGfx_GetLastMove(const DC *pDC);
 | |
| 
 | |
| //--------------------------------------------------------------------------------------
 | |
| //  function - clear/copy/convert dc
 | |
| //--------------------------------------------------------------------------------------
 | |
| //dc clear/copy/convert
 | |
| /**
 | |
|      Clear DC.
 | |
| 
 | |
|      Clear DC to zero or black color.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in,out] pDestDC     Pointer to destination DC.
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_Clear(DC *pDestDC);
 | |
| 
 | |
| /**
 | |
|      Copy DC to another DC.
 | |
| 
 | |
|      Copy DC to another DC.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in,out] pDestDC     Pointer to destination DC.
 | |
|      @param[in] pSrcDC          Pointer to source DC.
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_Copy(DC *pDestDC, const DC *pSrcDC);
 | |
| 
 | |
| /**
 | |
|      Enhanced copy DC to another DC.
 | |
| 
 | |
|      Enhanced copy DC to another DC.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in,out] pDestDC     Pointer to destination DC.
 | |
|      @param[in] pSrcDC          Pointer to source DC.
 | |
|      @param[in] uiRop           Raster OP.
 | |
|      @param[in] uiParam         Raster parameter.
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_CopyEx(DC *pDestDC, const DC *pSrcDC, UINT32 uiRop, UINT32 uiParam);
 | |
| 
 | |
| /**
 | |
|      Convert DC format to another DC format.
 | |
| 
 | |
|      Convert DC format to another DC format.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in,out] pDestDC     Pointer to destination DC.
 | |
|      @param[in] pSrcDC          Pointer to source DC.
 | |
|      @param[in] pConvertTable   Reference convert table.
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_Convert(DC *pDestDC, const DC *pSrcDC, const void *pConvertTable);
 | |
| 
 | |
| //--------------------------------------------------------------------------------------
 | |
| //  function - draw shape on dc
 | |
| //--------------------------------------------------------------------------------------
 | |
| /**
 | |
|      Set shape stroke.
 | |
| 
 | |
|      Set shape stroke: line style and fill scale.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in] uiLineStyle     Line style. (ex: LINESTYLE_XXX|LINEBRUSH_XXX|LINEWEIGHT(n))
 | |
|      @param[in] uiFillStyle     Fill style (ex: FILLSTYLE_XXX).
 | |
| */
 | |
| void GxGfx_SetShapeStroke(BVALUE uiLineStyle, BVALUE uiFillStyle);
 | |
| 
 | |
| /**
 | |
|      Set shape color.
 | |
| 
 | |
|      Set shape color: fore-color, back-color and index mapping table.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in] uiForeColor     Fore-color (ex: index color or y-cb-cr color).
 | |
|      @param[in] uiBackColor     Back-color (ex: index color or y-cb-cr color).
 | |
|      @param[in] pTable          Index mapping table.
 | |
| */
 | |
| void GxGfx_SetShapeColor(BVALUE uiForeColor, BVALUE uiBackColor, const MAPPING_ITEM *pTable);
 | |
| 
 | |
| /**
 | |
|      Set shape layout.
 | |
| 
 | |
|      Set shape layout: shape layout, shape alignment.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in] uiLayout        Shape layout (ex: LAYOUT_XXX). (TODO)
 | |
|      @param[in] uiAlignment     Shape alignment (ex: ALIGN_XXX). (TODO)
 | |
| */
 | |
| void GxGfx_SetShapeLayout(BVALUE uiLayout, BVALUE uiAlignment);
 | |
| 
 | |
| /**
 | |
|      Draw point shape to DC.
 | |
| 
 | |
|      Draw point shape to DC.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in,out] pDestDC     Pointer to DC.
 | |
|      @param[in] x               x of point.
 | |
|      @param[in] y               y of point.
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_Point(DC *pDestDC, LVALUE x, LVALUE y);
 | |
| 
 | |
| /**
 | |
|      Draw line shape to DC.
 | |
| 
 | |
|      Draw line shape to DC.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in,out] pDestDC     Pointer to DC.
 | |
|      @param[in] x1              x of start point.
 | |
|      @param[in] y1              y of start point.
 | |
|      @param[in] x2              x of end point.
 | |
|      @param[in] y2              y of end point.
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_Line(DC *pDestDC, LVALUE x1, LVALUE y1, LVALUE x2, LVALUE y2);
 | |
| 
 | |
| /**
 | |
|      Draw line shape to DC. (from last cursor)
 | |
| 
 | |
|      Draw line shape to DC. (from last cursor)
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in,out] pDestDC     Pointer to DC.
 | |
|      @param[in] x               x of end point.
 | |
|      @param[in] y               y of end point.
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_LineTo(DC *pDestDC, LVALUE x, LVALUE y);
 | |
| 
 | |
| /**
 | |
|      Draw fill-only rectangle shape to DC.
 | |
| 
 | |
|      Draw fill-only rectangle shape to DC.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in,out] pDestDC     Pointer to DC.
 | |
|      @param[in] x1              x of start point.
 | |
|      @param[in] y1              y of start point.
 | |
|      @param[in] x2              x of end point.
 | |
|      @param[in] y2              y of end point.
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_FillRect(DC *pDestDC, LVALUE x1, LVALUE y1, LVALUE x2, LVALUE y2);
 | |
| 
 | |
| /**
 | |
|      Draw frame-only rectangle shape to DC.
 | |
| 
 | |
|      Draw frame-only rectangle shape to DC.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in,out] pDestDC     Pointer to DC.
 | |
|      @param[in] x1              x of start point.
 | |
|      @param[in] y1              y of start point.
 | |
|      @param[in] x2              x of end point.
 | |
|      @param[in] y2              y of end point.
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_FrameRect(DC *pDestDC, LVALUE x1, LVALUE y1, LVALUE x2, LVALUE y2);
 | |
| 
 | |
| /**
 | |
|      Draw color-inverted rectangle shape to DC.
 | |
| 
 | |
|      Draw color-inverted rectangle shape to DC.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in,out] pDestDC     Pointer to DC.
 | |
|      @param[in] x1              x of start point.
 | |
|      @param[in] y1              y of start point.
 | |
|      @param[in] x2              x of end point.
 | |
|      @param[in] y2              y of end point.
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| //RESULT GxGfx_InvertRect         (DC* pDestDC, LVALUE x1, LVALUE y1, LVALUE x2, LVALUE y2);
 | |
| 
 | |
| /**
 | |
|      Draw font-connverted to DC.
 | |
| 
 | |
|      Draw rectangle _pSrcDC to _pDestDC to do font-connverted.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in,out] _pDestDC     Pointer to destination DC.
 | |
|      @param[in,out] _pSrcDC     Pointer to source DC.
 | |
|      @param[in] pColorTable     Pointer of palette table.
 | |
| 
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_ConvertFont(DC *_pDestDC,  const DC *_pSrcDC, const PALETTE_ITEM *pColorTable);
 | |
| 
 | |
| /**
 | |
|      Draw rectangle shape to DC.
 | |
| 
 | |
|      Draw rectangle shape to DC.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in,out] pDestDC     Pointer to DC.
 | |
|      @param[in] x1              x of start point.
 | |
|      @param[in] y1              y of start point.
 | |
|      @param[in] x2              x of end point.
 | |
|      @param[in] y2              y of end point.
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_Rectangle(DC *pDestDC, LVALUE x1, LVALUE y1, LVALUE x2, LVALUE y2);
 | |
| 
 | |
| /**
 | |
|      Draw rectangle shape to DC. (from last cursor)
 | |
| 
 | |
|      Draw rectangle shape to DC. (from last cursor)
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in,out] pDestDC     Pointer to DC.
 | |
|      @param[in] x               x of end point.
 | |
|      @param[in] y               y of end point.
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_RectTo(DC *pDestDC, LVALUE x, LVALUE y);              //like GxGfx_Rectangle()
 | |
| 
 | |
| /**
 | |
|      Draw ellipse shape to DC.
 | |
| 
 | |
|      Draw ellipse shape to DC.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in,out] pDestDC     Pointer to DC.
 | |
|      @param[in] x1              x of start point.
 | |
|      @param[in] y1              y of start point.
 | |
|      @param[in] x2              x of end point.
 | |
|      @param[in] y2              y of end point.
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_Ellipse(DC *pDestDC, LVALUE x1, LVALUE y1, LVALUE x2, LVALUE y2);
 | |
| 
 | |
| /**
 | |
|      Draw round-conner rectangle shape to DC.
 | |
| 
 | |
|      Draw round-conner rectangle shape to DC.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in,out] pDestDC     Pointer to DC.
 | |
|      @param[in] x1              x of start point.
 | |
|      @param[in] y1              y of start point.
 | |
|      @param[in] x2              x of end point.
 | |
|      @param[in] y2              y of end point.
 | |
|      @param[in] rw              Diameter of x of round-conner.
 | |
|      @param[in] rh              Diameter of y of round-conner.
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_RoundRect(DC *pDestDC, LVALUE x1, LVALUE y1, LVALUE x2, LVALUE y2, LVALUE rw, LVALUE rh);
 | |
| 
 | |
| //NOT SUPPORT ANY MORE!
 | |
| //RESULT GxGfx_ShapeInRect        (DC* pDestDC, LVALUE x1, LVALUE y1, LVALUE x2, LVALUE y2, UINT8 uiShapeType);
 | |
| 
 | |
| //--------------------------------------------------------------------------------------
 | |
| //  function - draw image on dc
 | |
| //--------------------------------------------------------------------------------------
 | |
| /**
 | |
|      Set image stroke.
 | |
| 
 | |
|      Set image stroke: raster OP and related parameter.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in] uiRop           Raster OP (ex: ROP_XXX or ROP_XXX|SRC_XXX or ROP_XXX|OUT_XXX or ROP_XXX|FILTER_XXX).
 | |
|      @param[in] uiParam         Parameter.
 | |
| */
 | |
| void GxGfx_SetImageStroke(BVALUE uiRop, BVALUE uiParam);
 | |
| 
 | |
| /**
 | |
|      Set text color.
 | |
| 
 | |
|      Set text color: color palette and index mapping table.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in] pPalette        Color palette.
 | |
|      @param[in] pTable          Index mapping table.
 | |
| */
 | |
| void GxGfx_SetImageColor(const PALETTE_ITEM *pPalette, const MAPPING_ITEM *pTable);
 | |
| 
 | |
| /**
 | |
|      Set image layout.
 | |
| 
 | |
|      Set image layout: image layout, image alignment.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in] uiLayout        Image layout (ex: LAYOUT_XXX).
 | |
|      @param[in] uiAlignment     Image alignment (ex: ALIGN_XXX).
 | |
| */
 | |
| void GxGfx_SetImageLayout(BVALUE uiLayout, BVALUE uiAlignment);
 | |
| 
 | |
| /**
 | |
|      Set image current IMAGE_TABLE.
 | |
| 
 | |
|      Set image current IMAGE_TABLE.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in] pTable          Text IMAGE_TABLE resource.
 | |
| */
 | |
| void GxGfx_SetImageTable(const IMAGE_TABLE *pTable);
 | |
| 
 | |
| /**
 | |
|      Get image size from current IMAGE_TABLE.
 | |
| 
 | |
|      Get image size from current IMAGE_TABLE.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in] img_id          Image id.
 | |
|      @param[out] pImageSize     Size w,h of this image.
 | |
|      @return                    Image of current IMAGE_TABLE with given id.
 | |
| */
 | |
| RESULT GxGfx_GetImageIDSize(IVALUE img_id, ISIZE *pImageSize);     //(refe to current IMAGE_TABLE)
 | |
| 
 | |
| /**
 | |
|      Get image from current IMAGE_TABLE.
 | |
| 
 | |
|      Get image from current IMAGE_TABLE.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in] img_id          Image id.
 | |
|      @return                    Image of current IMAGE_TABLE with given id.
 | |
| */
 | |
| const IMAGE *GxGfx_GetImageID(IVALUE img_id);
 | |
| 
 | |
| /**
 | |
|      Get sub-image from current IMAGE_TABLE.
 | |
| 
 | |
|      Get sub-image from current IMAGE_TABLE.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in] img_id          Image id.
 | |
|      @param[in] x1              Left of sub-image rectangle (base on image coordinate).
 | |
|      @param[in] y1              Top of sub-image rectangle (base on image coordinate).
 | |
|      @param[in] x2              Right of sub-image rectangle (base on image coordinate).
 | |
|      @param[in] y2              Bottom of sub-image rectangle (base on image coordinate).
 | |
|      @return                    Image of current IMAGE_TABLE with given id.
 | |
| */
 | |
| const IMAGE *GxGfx_GetImageIDEx(IVALUE img_id, LVALUE x1, LVALUE y1, LVALUE x2, LVALUE y2);
 | |
| 
 | |
| /**
 | |
|      Draw image to DC.
 | |
| 
 | |
|      Draw image to DC.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in,out] pDestDC     Pointer to DC.
 | |
|      @param[in] x               x of Left-Top point.
 | |
|      @param[in] y               y of Left-Top point.
 | |
|      @param[in] pImage          Pointer to image resource.
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_Image(DC *pDestDC, LVALUE x, LVALUE y, const IMAGE *pImage);
 | |
| 
 | |
| /**
 | |
|      Draw scaling image to DC.
 | |
| 
 | |
|      Draw scaling image to DC.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in,out] pDestDC     Pointer to DC.
 | |
|      @param[in] x               x of Left-Top point.
 | |
|      @param[in] y               y of Left-Top point.
 | |
|      @param[in] w               Width of scaling image.
 | |
|      @param[in] h               Height of scaling image.
 | |
|      @param[in] pImage          Pointer to image resource.
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_ImageScale(DC *pDestDC, LVALUE x, LVALUE y, LVALUE w, LVALUE h, const IMAGE *pImage);
 | |
| 
 | |
| /**
 | |
|      Draw image inside rectangle to DC.
 | |
| 
 | |
|      Draw image inside rectangle to DC.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in,out] pDestDC     Pointer to DC.
 | |
|      @param[in] x1              x of start point.
 | |
|      @param[in] y1              y of start point.
 | |
|      @param[in] x2              x of end point.
 | |
|      @param[in] y2              y of end point.
 | |
|      @param[in] pImage          Pointer to image resource.
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_ImageInRect(DC *pDestDC, LVALUE x1, LVALUE y1, LVALUE x2, LVALUE y2, const IMAGE *pImage);
 | |
| 
 | |
| /**
 | |
|      Draw scaling image inside rectangle to DC.
 | |
| 
 | |
|      Draw scaling image inside rectangle to DC.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in,out] pDestDC     Pointer to DC.
 | |
|      @param[in] x1              x of start point.
 | |
|      @param[in] y1              y of start point.
 | |
|      @param[in] x2              x of end point.
 | |
|      @param[in] y2              y of end point.
 | |
|      @param[in] w               Width of scaling image.
 | |
|      @param[in] h               Height of scaling image.
 | |
|      @param[in] pImage          Pointer to image resource.
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_ImageScaleInRect(DC *pDestDC, LVALUE x1, LVALUE y1, LVALUE x2, LVALUE y2, LVALUE w, LVALUE h, const IMAGE *pImage);
 | |
| 
 | |
| //--------------------------------------------------------------------------------------
 | |
| //  function - draw text on dc
 | |
| //--------------------------------------------------------------------------------------
 | |
| /**
 | |
|      Set text stroke.
 | |
| 
 | |
|      Set text stroke: current FONT, font style and font scale.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in] pFont           Text FONT resource.
 | |
|      @param[in] uiFontStyle     Style (ex: FONTSTYLE_XXX).
 | |
|      @param[in] uiScale         Scale (ex: SCALE_XXX).
 | |
| */
 | |
| void GxGfx_SetTextStroke(const FONT *pFont, BVALUE uiFontStyle, BVALUE uiScale);
 | |
| 
 | |
| /**
 | |
|      Set text color.
 | |
| 
 | |
|      Set text color: font fore-color1, fore-color2 and fore-color3.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in] uiForeColor1     Fore-color1 (ex: index color or y-cb-cr color).
 | |
|      @param[in] uiForeColor2     Fore-color2 (ex: index color or y-cb-cr color).
 | |
|      @param[in] uiForeColor3     Fore-color3 (ex: index color or y-cb-cr color).
 | |
| */
 | |
| void GxGfx_SetTextColor(BVALUE uiForeColor1, BVALUE uiForeColor2, BVALUE uiForeColor3);
 | |
| 
 | |
| /**
 | |
|      Set text color mapping.
 | |
| 
 | |
|      Set text color mapping,according font format.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in] pColorTabl     color mapping table.
 | |
| */
 | |
| 
 | |
| void GxGfx_SetTextColorMapping(const PALETTE_ITEM* pColorTabl);
 | |
| 
 | |
| 
 | |
| /**
 | |
|      Get text color mapping.
 | |
| 
 | |
|      Get text color mapping,according font format.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @return      current color mapping table.
 | |
| */
 | |
| 
 | |
| PALETTE_ITEM* GxGfx_GetTextColorMapping(void);
 | |
| 
 | |
| /**
 | |
|      Set text layout.
 | |
| 
 | |
|      Set text layout: text layout, text alignment, line height, character space and ident space.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in] uiLayout        Text layout (ex: LAYOUT_XXX).
 | |
|      @param[in] uiAlignment     Text alignment (ex: ALIGN_XXX).
 | |
|      @param[in] lh              Line height (in pixels, 0=current font height).
 | |
|      @param[in] cs              Character space (in pixels).
 | |
|      @param[in] is              Ident space (in pixels)(TODO).
 | |
| */
 | |
| void GxGfx_SetTextLayout(BVALUE uiLayout, BVALUE uiAlignment, BVALUE lh, BVALUE cs, BVALUE is);
 | |
| 
 | |
| /**
 | |
|      Set text current STRING_TABLE.
 | |
| 
 | |
|      Set text current STRING_TABLE.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in] pTable          Text STRING_TABLE resource.
 | |
| */
 | |
| void GxGfx_SetStringTable(const STRING_TABLE *pTable);
 | |
| 
 | |
| /**
 | |
|      Get font average size.
 | |
| 
 | |
|      Get font average size.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[out] pFontSize      Get average character size w,h of current FONT.
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_GetFontSize(ISIZE *pFontSize);
 | |
| 
 | |
| /**
 | |
|      Get font character size.
 | |
| 
 | |
|      Get font character size.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in] chr_id          Character id.
 | |
|      @param[out] pCharSize      Get given character size w,h of current FONT.
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_GetFontCharSize(IVALUE chr_id, ISIZE *pCharSize);
 | |
| 
 | |
| /**
 | |
|      Get string from current STRING_TABLE.
 | |
| 
 | |
|      Get string from current STRING_TABLE.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in] str_id          String id.
 | |
|      @return                    String of current STRING_TABLE with given id.
 | |
| */
 | |
| const TCHAR *GxGfx_GetStringID(IVALUE str_id);
 | |
| 
 | |
| /**
 | |
|      Draw character to DC.
 | |
| 
 | |
|      Draw character to DC.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in,out] pDestDC     Pointer to DC.
 | |
|      @param[in] x               x of Left-Top point.
 | |
|      @param[in] y               y of Left-Top point.
 | |
|      @param[in] id              Character id (of current FONT).
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_Char(DC *pDestDC, LVALUE x, LVALUE y, IVALUE id);
 | |
| 
 | |
| /**
 | |
|      Draw text to DC.
 | |
| 
 | |
|      Draw text to DC.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in,out] pDestDC     Pointer to DC.
 | |
|      @param[in] x               x of Left-Top point.
 | |
|      @param[in] y               y of Left-Top point.
 | |
|      @param[in] pszSrc          Pointer to string resource.
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_Text(DC *pDestDC, LVALUE x, LVALUE y, const TCHAR *pszSrc);                //no ESC command (fast)
 | |
| 
 | |
| /**
 | |
|      Draw text to DC. (with printf format)
 | |
| 
 | |
|      Draw text to DC. (with printf format)
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in,out] pDestDC     Pointer to DC.
 | |
|      @param[in] x               x of Left-Top point.
 | |
|      @param[in] y               y of Left-Top point.
 | |
|      @param[in] pszSrc          Pointer to string resource.
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_TextPrint(DC *pDestDC, LVALUE x, LVALUE y, const TCHAR *pszSrc, ...);           //no ESC command (fast)
 | |
| 
 | |
| /**
 | |
|      Draw text inside rectangle to DC.
 | |
| 
 | |
|      Draw text inside rectangle to DC.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in,out] pDestDC     Pointer to DC.
 | |
|      @param[in] x1              x of start point.
 | |
|      @param[in] y1              y of start point.
 | |
|      @param[in] x2              x of end point.
 | |
|      @param[in] y2              y of end point.
 | |
|      @param[in] pszSrc          Pointer to string resource.
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_TextInRect(DC *pDestDC, LVALUE x1, LVALUE y1, LVALUE x2, LVALUE y2, const TCHAR *pszSrc);          //support ESC command
 | |
| 
 | |
| /**
 | |
|      Draw text inside rectangle to DC. (with printf format)
 | |
| 
 | |
|      Draw text inside rectangle to DC. (with printf format)
 | |
|      @note Nothing.
 | |
| 
 | |
|      @param[in,out] pDestDC     Pointer to DC.
 | |
|      @param[in] x1              x of start point.
 | |
|      @param[in] y1              y of start point.
 | |
|      @param[in] x2              x of end point.
 | |
|      @param[in] y2              y of end point.
 | |
|      @param[in] pszSrc          Pointer to string resource.
 | |
|      @return
 | |
|          - @b GX_OK:            Successed
 | |
|          - @b Other:            Failed.
 | |
| */
 | |
| RESULT GxGfx_TextPrintInRect(DC *pDestDC, LVALUE x1, LVALUE y1, LVALUE x2, LVALUE y2, const TCHAR *pszSrc, ...);     //support ESC command
 | |
| 
 | |
| /**
 | |
|      Get last text location.
 | |
| 
 | |
|      Get last text location.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @return                    Last text location
 | |
| */
 | |
| IPOINT GxGfx_GetTextLastLoc(void);
 | |
| 
 | |
| /**
 | |
|      Get last text size.
 | |
| 
 | |
|      Get last text size.
 | |
|      @note Nothing.
 | |
| 
 | |
|      @return                    Last text size
 | |
| */
 | |
| ISIZE GxGfx_GetTextLastSize(void);
 | |
| 
 | |
| //@}
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| } //extern "C"
 | |
| #endif
 | |
| 
 | |
| #endif //_GX_GRAPHICS_H_
 | 
