/****************************************************************************** Copyright (c) 2004 Digital STREAM Technology Inc. All Rights Reserved FILE NAME GRP_Service.h VERSION Version 0.4 DESCRIPTION This file is for 2'D draw module be to used in Application . AUTHOR S/W 3 Team Jongki Jeong. HISTORY NAME DATE REMARKS Jongki jeong 03-09-2004 Created initial version 0.01 Jongki jeong 04-07-2004 modify 3d box¿Í shadow box ±×¸®´Â ºÎºÐ Jinsook Kim 05-19-2004 add GRP_DrawRectBoxEx() Jinsook Kim 06-11-2004 add GRP_Draw3DBox1Thick,GRP_Draw3DBox2Thick, add GRP_Draw3DBox2Thick,GRP_Draw3dBoxEx, add GRP_Draw3dEffectEx() Jinsook Kim 06-18-2004 add GRP_ShowScrollEx,GRP_GetTempCanvas, add GRP_FreeTempCanvas, Jinsook Kim 06-25-2004 Updated version : 0.01->0.1 Jinsook Kim 08-18-2004 Updated version : 0.1->0.2 Jong-ki Jeong 03-14-2005 CANVAS MODE °ü·Ã ±¸Á¶Ã¼ ¹× ÇÔ¼öÃß°¡ Jinsook Kim 03-30-2005 Updated version : 0.2->0.3 Jinsook Kim 04-21-2005 Updated version : 0.3->0.4 REMARK ******************************************************************************/ #ifndef GRP_SERVICE_H #define GRP_SERVICE_H /*---------------------------------------------------------------------------- * include files *----------------------------------------------------------------------------*/ #include "GRP_DDI.h" #ifdef __cplusplus extern "C" { #endif #define UINT8U UINT8 /*----------------------------------------------------------------------------- * type define of variable types *----------------------------------------------------------------------------*/ #define GRP_BCOLOR SINT32 //2bit bitmap À϶§¸¸ À¯È¿, 8bit bitmap À϶§´Â -1 //TLGraphicsUtils.h TL_PIXEL_FORMATS ÂüÁ¶ typedef enum { GRP_INDEX8 =0, GRP_RGB32 =1, GRP_INDEX8TORGB32 =2 }GRP_PIXEL_FORMAT; typedef enum { GRP_ARIB_MODE, //Arib »ç¿ë GRP_DIRECT_WRITE, //Display ¸Þ¸ð¸® ¿¡ ¹Ù·Î ¾¸ GRP_BUFFER_WRITE, //SYS ¹öÆÛ¸Þ¸ð¸® ¿¡ ¾¸ GRP_NUM_CANVAS_ACCESS //ÄÜÆ®·Ñ ¹æ¹ý °¹¼ö }GRP_CANVAS_ACCESS; /******* scroll ¹æÇâ *********************************************************/ typedef enum { GRP_LT2RT =0, GRP_RT2LT =1, GRP_TOP2BOT =2, GRP_BOT2TOP =3 }GRP_DIRECTION; /******* Point (X.Y) ºÎºÐ ****************************************************/ typedef struct { SINT32 x; SINT32 y; }GRP_POINT; /* typedef struct { UINT8 GRP_BLACK ; UINT8 GRP_WHITE ; UINT8 GRP_YELLOW; UINT8 GRP_RED; UINT8 GRP_GREEN; UINT8 GRP_BLUE; UINT8 GRP_CYAN; UINT8 GRP_MAGENTA; }GRP_8COLOR; */ /******* RGB ±¸Á¶Ã¼ **********************************************************/ typedef struct { UINT8 r ; UINT8 g ; UINT8 b ; UINT8 blend; }GRP_RGB; /******* OSD palette *********************************************************/ typedef struct { GRP_RGB *rgbs; UINT16 num_colors; //color ¼ö UINT8 tsp_index ; //transparent color #if 0 GRP_8COLOR colors; UINT32 mb_title_fill_color; //message box title fill color UINT32 mb_title_str_color; //messgae box title string color UINT32 mb_contents_fill_color; //message box contents fill color UINT32 mb_contents_str_color; //message box contents string color UINT32 mb_bar_color ; //message box bar back color UINT32 mb_bar_str_color; //message box bar string color #endif UINT32 _3d_black; //3D color ¸¦ ¸¸µé¶§ ±âº»ÀûÀ¸·Î »ç¿ëµÇ´Â BLACK UINT32 _3d_white; //3D color ¸¦ ¸¸µé¶§ ±âº»ÀûÀ¸·Î »ç¿ëµÇ´Â WHITE UINT32 _3d_black_gray; //3D color ¸¦ ¸¸µé¶§ ±âº»ÀûÀ¸·Î »ç¿ëµÇ´Â gray °èÅë BLACK UINT32 _3d_white_gray; //3D color ¸¦ ¸¸µé¶§ ±âº»ÀûÀ¸·Î »ç¿ëµÇ´Â gray °èÅë WHITE UINT32 shadow_color1; //shaodw box color ¸¸µé¶§ °¡Àå ³»ºÎ UINT32 shadow_color2; //shaodw box color ¸¸µé¶§ Áß°£À§Ä¡ÀÇ color UINT32 shadow_color3; //shaodw box color ¸¸µé¶§ °¡Àå ¹Ù±ù color }GRP_PALETTE; /******* bitmap À̹ÌÁö Á¤º¸ **************************************************/ typedef struct { UINT8 *bitdata; //bit map data SINT16 width; //bitmap ÀÇ width SINT16 height; //bitmap ÀÌ height // UINT16 bit_per_pix; //bit per pixel //iskang data type change. UINT8->UINT32 //±âÁ¸¿¡´Â compressed type±â¾ïÇϰí ÀÖÀ¸³ª //BCM 4bit¾ÐÃàÀ» Çϸ鼭 bitmap data Å©±â Á¤º¸¸¦ °¡Áö°Ô µÇ¾ú´Ù. //¾ÕÀÇ 3byte´Â bitmap data±æÀÌ, µÚÀÇ 1byte´Â compressed format type. UINT32 compressed; //if compressed => !0 }GRP_BBLK, GRP_LOGO; /******* bitmap À̹ÌÁö + ÇØ»óµµ Àû¿ëÀ̹ÌÁö ***********************************/ typedef union { GRP_BBLK *bblk[GRP_NUM_RESOLUTION] ; /* struct { GRP_BBLK *_960_bitmap; GRP_BBLK *_720_bitmap; GRP_BBLK *_480_bitmap; }res; */ }GRP_BBLK_RES; /******* bitmap À̹ÌÁö·Î ±¸¼ºµÈ frame ****************************************/ typedef struct { GRP_BBLK *lt_bone; //left bone GRP_BBLK *rt_bone; //right bone }GRP_LTRT_FRAME; typedef struct { GRP_BBLK *top_bone; //top bone GRP_BBLK *bot_bone; //bottom bone }GRP_TOPBOT_FRAME; typedef struct { GRP_BBLK *lt_bone; //left bone GRP_BBLK *rt_bone; //right bone GRP_BBLK *top_bone; //top bone GRP_BBLK *bot_bone; //bottom bone }GRP_RECT_FRAME; typedef struct { GRP_BBLK *lt_bone; //left bone GRP_BBLK *rt_bone; //right bone GRP_BBLK *top_bone; //top bone GRP_BBLK *bot_bone; //bottom bone GRP_BBLK *center; //center bitmap }GRP_RECT_CENTER_FRAME; typedef struct { GRP_BBLK *lt_top_edge; //ÁÂÃø À§ ±ÍÅüÀÌ bitmap GRP_BBLK *rt_top_edge; //¿ìÃø À§ ±ÍÅüÀÌ bitmap GRP_BBLK *lt_bot_edge; //ÁÂÃø ¾Æ·¡ ±ÍÅüÀÌ bitmap GRP_BBLK *rt_bot_edge; //¿ìÃø ¾Æ·¡ ±ÍÅüÀÌ bitmap GRP_BBLK *lt_bone; //left bone GRP_BBLK *rt_bone; //right bone GRP_BBLK *top_bone; //top bone GRP_BBLK *bot_bone; //bottom bone }GRP_EDGE_FRAME; /******* Á¤·Ä Á¾·ù ***********************************************************/ typedef enum { GRP_CENTER =0, //¿µ¿ªÀÇ Á¤Áß¾Ó GRP_CENTER_TOP , //Á¿ì center, À§ÂÊ Á¤·Ä GRP_CENTER_BOT , //Á¿ì center, ¾Æ·¡ÂÊ Á¤·Ä GRP_CENTER_LEFT , //»óÇÏ center, ÁÂÃø Á¤·Ä GRP_CENTER_RIGHT, //»óÇÏ center, ¿ìÃø Á¤·Ä GRP_CENTER_LONG_ITEM, //ITEMÁß °¡Àå ±ä ITEMÀ» ±âÁØÀ¸·Î CENTER ALIGN ÇÒ¶§»ç¿ë. GRP_NUM_JUSTIFY }GRP_JUSTIFY; /****************************************************************************/ typedef struct { UINT32 str_color; UINT32 str_bak_color; }GRP_STRING_COLOR; /****************************************************************************/ typedef struct { SINT8 *str[GRP_NUM_NATION];//0 :¹Ì±¹ 1 :ÇÑ±Û UINT32 str_color ; UINT32 str_bak_color ; }GRP_TEXT_STRING; /****************************************************************************/ /* typedef struct { SINT8 *str[GRP_NUM_NATION]; //0 :¹Ì±¹ 1 :ÇÑ±Û GFN_FONT_ATTR font_attr; //font ¼Ó¼º }GRP_TEXT_ATTR; */ typedef struct { SINT8 *str[GRP_NUM_NATION]; //0:¹Ì±¹, 1:ÇÑ±Û }GRP_STRINGS; /****************************************************************************/ typedef struct { SINT32 px ,py; GRP_BBLK *image; }GRP_MOUSE_IMAGE; /******* BITMAP font data map ÀÌ ¾î¶»°Ô ±¸¼ºµÇ¾îÀִ°¡¸¦ ³ªÅ¸³¿ ***************/ /******* »ç¿ëÇÒ canvas *******************************************************/ /* */ /* ¿©±â¼± ÇÑ plane À» ÇÑcanvas ·Î ¼³Á¤Çسõ¾Ò´Ù */ /* ÇÑ plane ³»¿¡ ¿©·¯ canvas ¸¦ ¼³Á¤ÇÒ¼öÀÖÁö¸¸ program »ó */ /* º°·Î È¿¿ë¼ºÀÌ ¶³¾îÁ® ¿©±â¼± 1°³ÀÇ canvas ¸¦ »ç¿ëÇß´Ù */ /* Application ¿¡¼­´Â ÂüÁ¶ÇÒÇÊ¿ä¾ø´Ù */ /*****************************************************************************/ typedef struct CANVAS_tag { PIXEL_MAP *pixel_map; PIXEL_MAP *buf_map; SINT8 plane; SINT32 h_scale; SINT32 v_scale; GRP_RESOLUTION resolution; SINT32 x,y,w,h; //canvas size GRP_PALETTE *palette; //ÇöÀç»ç¿ëÁßÀÎ palette, °è¼Óº¯ÇÒ ¼ö ÀÖÀ½ GRP_PALETTE *org_palette; //»ç¿ëÀÚ°¡ µî·ÏÇÑ palette, not modified GRP_PIXEL_FORMAT pixel_fmt; // UINT32 nation; //menu osd ¿ë GRP_RECT refresh_r; //ÀÚµ¿À¸·Î refresh ¸¦ ÇϱâÀ§ÇÔ GRP_RECT *rmask; //rmask not used /* ¾Æ·¡´Â ÆùÆ®°ü·Ã ÇÑ ºÎºÐ */ UINT32 font_nation; //epg, info µî ½ºÆ®¸²ÀÇ nation À» µû¶ó¾ßÇÏ´Â °æ¿ì¿¡ »ç¿ë. ¾ÆÁ÷ »ç¿ëÇÏÁö ¸¶¼¼¿ä UINT32 font_mode; void *font_attr; void *font_inside; //*true_finfo; //true font info void *user_finfo; //current user font void *user_flist; /* void *fixed_user_font;*/ //³ªÁß¿¡ Ãß°¡»ç¿ëÇÏÁöµµ ¸ð¸§ void *dst_hfinfo; void *dst_hflist; /* UINT32 ctrl_msg_task_aborted; UITN32 ctrl_msg_task_spawned; OS_SEMAPHORE_ID ctrl_msg_sema; */ struct CANVAS_tag *next; }_CANVAS_; typedef struct CANVAS_tag CANVAS ; /******* functions for canvas or plane ***************************************/ void GRP_AutoRefreshPlane(CANVAS *cv); void GRP_CanvasInitialize(UINT32 num_plane); void GRP_CanvasInitializeEx(UINT32 num_plane, GRP_PIXEL_FORMAT pixel_fmt); void GRP_CanvasTerminate(void); void GRP_Close(void); void GRP_ClearCanvas(CANVAS *cv); void GRP_ClearPlain(CANVAS *cv, SINT32 x, SINT32 y, SINT32 w, SINT32 h ); #define GRP_ClearPlainR(cv, r) GRP_ClearPlain( cv,(SINT32)((r)->x), (SINT32)((r)->y), (SINT32)((r)->w),(SINT32)((r)->h)) CANVAS *GRP_GetCanvas(UINT32 plane); void GRP_GetCanvasSize(CANVAS *cv, SINT32 *width, SINT32 *height); CANVAS *GRP_GetLastCanvas(void ); SINT32 GRP_GetPlaneIndex(CANVAS *cv ); void GRP_Open(GRP_RESOLUTION osd_resolution); void GRP_OpenEx(GRP_RESOLUTION osd_resolution,GRP_PIXEL_FORMAT pixel_fmt); void GRP_RefreshCanvas(CANVAS *cv); void GRP_RefreshPlane(CANVAS *cv, UINT16 x, UINT16 y, UINT16 w, UINT16 h); #define GRP_RefreshPlaneR(cv,r) GRP_RefreshPlane(cv,(SINT32)((r)->x), (SINT32)((r)->y), (SINT32)((r)->w),(SINT32)((r)->h)) void GRP_SetCanvasMode(GRP_CANVAS_ACCESS access_mode ); void GRP_ShowCursor(CANVAS *cv,int x,int y, BOOLEAN bErase); void GRP_UsedScaleTopology(GRP_RESOLUTION resolution, int h_scale, int v_scale); GRP_CANVAS_ACCESS GRP_GetCanvasMode(void); /******* functions for temp canvas *******************************************/ CANVAS *GRP_GetTempCanvas(CANVAS *cv, SINT32 w, SINT32 h); CANVAS *GRP_GetTempCanvasEx(CANVAS *cv, SINT32 w, SINT32 h, GRP_PIXEL_FORMAT pixel_fmt); void GRP_FreeTempCanvas( CANVAS **cv ); /******* functions for Palette ***********************************************/ void GRP_ResetPalette(CANVAS *cv ); void GRP_UpdateBlend(CANVAS *cv, UINT8 blend_value ); void GRP_UpdateBlendPercentage(CANVAS *cv, UINT8 percentage);//Ãß°¡--040513 void GRP_UpdateBlendRange(CANVAS *cv, UINT8 blend_value, SINT32 from_index, SINT32 to_index ); void GRP_UpdatePalette(CANVAS *cv , GRP_PALETTE *palette ); void GRP_UpdatePaletteRange(CANVAS *cv, GRP_RGB *rgbs, SINT32 from_index, SINT32 to_index ); void GRP_SetDefaultPalette(CANVAS *cv , GRP_PALETTE *palette ); /******* functions for 2D Draw ***********************************************/ void GRP_DrawBox(CANVAS *cv, SINT32 x, SINT32 y, SINT32 w, SINT32 h, UINT32 pal_index); #define GRP_DrawBoxR(cv, r, col) GRP_DrawBox( cv,(SINT32)((r)->x), (SINT32)((r)->y), (SINT32)((r)->w),(SINT32)((r)->h), (UINT32)col) void GRP_DrawEllipse (CANVAS *cv , SINT32 xcenter, SINT32 ycenter, SINT32 radx, SINT32 rady , UINT32 pal_index); void GRP_DrawFEllipse ( CANVAS *cv ,SINT32 xcenter, SINT32 ycenter, SINT32 radx, SINT32 rady , UINT32 pal_index ); void GRP_DrawOEllipse ( CANVAS *cv ,SINT32 xcenter, SINT32 ycenter, SINT32 radx, SINT32 rady, UINT32 opal_index , UINT32 ipal_index ); void GRP_DrawHLine(CANVAS *cv ,SINT32 x, SINT32 y, SINT32 w, UINT32 pal_index); void GRP_DrawRect(CANVAS *cv ,SINT32 x, SINT32 y, SINT32 w, SINT32 h, UINT32 pal_index); #define GRP_DrawRectR(cv, r, col) GRP_DrawRect( cv,(SINT32)((r)->x), (SINT32)((r)->y), (SINT32)((r)->w),(SINT32)((r)->h), (UINT32)col) void GRP_DrawRectEx(CANVAS *cv ,SINT32 x, SINT32 y, SINT32 w, SINT32 h, UINT32 pal_index, SINT32 line_num, SINT32 line_gap); #define GRP_DrawRectExR(cv, r, col, line_num, line_gap) GRP_DrawRectEx(cv,(SINT32)((r)->x), (SINT32)((r)->y), (SINT32)((r)->w),(SINT32)((r)->h), (UINT32)col, (SINT32)line_num, (SINT32)line_gap) void GRP_DrawVLine(CANVAS *cv ,SINT32 x, SINT32 y, SINT32 h, UINT32 pal_index); /******* functions for Bitmap Draw *******************************************/ SINT32 GRP_Draw2ColorBitmap(CANVAS *cv, SINT32 x,SINT32 y,GRP_BBLK *bblk,GRP_BCOLOR pal_index); SINT32 GRP_Draw2ColorCenterBitmap(CANVAS *cv, SINT32 x, SINT32 y, SINT32 w, SINT32 h, GRP_BBLK *bblk, GRP_BCOLOR pal_index); #define GRP_Draw2ColorCenterBitmapR(cv, r, bblk,pal_index) GRP_Draw2ColorCenterBitmap( cv,(SINT32)((r)->x), (SINT32)((r)->y), (SINT32)((r)->w),(SINT32)((r)->h), bblk,pal_index) SINT32 GRP_DrawBitmap(CANVAS *cv, SINT32 x , SINT32 y, GRP_BBLK *bblk); SINT32 GRP_DrawCenterBitmap(CANVAS *cv, SINT32 x, SINT32 y, SINT32 w, SINT32 h, GRP_BBLK *bblk); #define GRP_DrawCenterBitmapR(cv, r, bblk) GRP_DrawCenterBitmap( cv,(SINT32)((r)->x), (SINT32)((r)->y), (SINT32)((r)->w),(SINT32)((r)->h), bblk) void GRP_DrawEdgeFrame(CANVAS *cv, GRP_RECT *out,GRP_RECT *in, GRP_EDGE_FRAME *frame, UINT32 fill_color); void GRP_DrawLtRtFrame(CANVAS *cv, GRP_RECT *out,GRP_RECT *in, GRP_LTRT_FRAME *frame, UINT32 fill_color); void GRP_DrawRectCenterFrame(CANVAS *cv, GRP_RECT *out,GRP_RECT *in, GRP_RECT_CENTER_FRAME *frame, UINT32 bak_color); void GRP_DrawRectFrame(CANVAS *cv, GRP_RECT *out,GRP_RECT *in, GRP_RECT_FRAME *frame, UINT32 fill_color); void GRP_DrawTopBotFrame(CANVAS *cv, GRP_RECT *out,GRP_RECT *in, GRP_TOPBOT_FRAME *frame, UINT32 fill_color); SINT32 GRP_FillBBlk(CANVAS *cv, SINT32 x, SINT32 y, SINT32 w, SINT32 h, GRP_BBLK *bblk); #define GRP_FillBBlkR(cv, r, bblk) GRP_FillBBlk( cv,(SINT32)((r)->x), (SINT32)((r)->y), (SINT32)((r)->w),(SINT32)((r)->h), bblk) SINT32 GRP_HorCopyBBlk( CANVAS *cv, SINT32 x ,SINT32 y, SINT32 w, GRP_BBLK *bblk); SINT32 GRP_VerCopyBBlk(CANVAS *cv, SINT32 x, SINT32 y, SINT32 h, GRP_BBLK *bblk); #define GetResImage(cv, image) (image)->bblk[cv->resolution] //#define GetResImage(cv, image) (image)->bblk[(cv->resolution==GRP_1366_768p?GRP_1280_720p:cv->resolution)] /******* functions for image *************************************************/ void GRP_ImageFree(void **bblk); void *GRP_GetImage(CANVAS *cv, SINT32 x ,SINT32 y , SINT32 w,SINT32 h); #define GRP_GetImageR(cv, r) GRP_GetImage( cv,(SINT32)((r)->x), (SINT32)((r)->y), (SINT32)((r)->w),(SINT32)((r)->h)) SINT32 GRP_PutImage(CANVAS *cv, SINT32 x ,SINT32 y , void *bit_block); SINT32 GRP_RestoreImage(CANVAS *cv, void *bblk); /******* functions for scroll ************************************************/ void GRP_HideScroll( CANVAS *cv , GRP_RECT *roi , int step_size, GRP_DIRECTION direction, SINT32 time ); void GRP_OneStepScroll( CANVAS *cv , GRP_RECT *roi , int step_size, GRP_DIRECTION direction, UINT32 fill_color); void GRP_ShowScroll( CANVAS *cv, GRP_RECT *roi, int step_size, GRP_DIRECTION direction, SINT32 time ); void GRP_ShowScrollEx(CANVAS *des_cv, CANVAS *src_cv, GRP_RECT *des_roi, GRP_RECT *src_roi, SINT32 step_size, GRP_DIRECTION direction, SINT32 time); /******* functions for etc util **********************************************/ #define GRP_GetResolution(cv) ((cv)->resolution) void GRP_CurrResolution(CANVAS *cv , GRP_RESOLUTION *resolution); void GRP_GetRect(GRP_RECT *r, SINT32 x, SINT32 y, SINT32 w, SINT32 h); void GRP_MsDelay( int milli_second ); void GRP_RecoordinateR(CANVAS *cv, GRP_RECT *r); void GRP_Recoordinate(CANVAS *cv, SINT32 *x , SINT32 *y); void GRP_RecoordinateREx(GRP_RESOLUTION resolution , GRP_RECT *r ); void GRP_RGB2YCbCr(GRP_RGB *rgb ,UINT32 *ycbcr); void GRP_SetCorrectRatio(GRP_RESOLUTION resolution, float coord_x, float coord_y); void GRP_SetReferencCoordinate(GRP_RESOLUTION resolution ); void GRP_GetReferenceCoordinate( GRP_RESOLUTION *resolution ); #define GRP_INRANGE_R(r, px,py) ((((r)->x <=(px))&& ((r)->x+(r)->w >(px) )&&((r)->y <=(py))&& ((r)->y+(r)->h>(py))) ?1 :0) #define GRP_INRANGE(range_x,range_y,range_w,range_h, x,y) (((range_x <=x)&& (range_x+range_w >x )&&(range_y <=y)&& (range_y+range_h>y)) ?1 :0) /******* nation info *********************************************************/ GRP_NATION GRP_GetNation(CANVAS *cv); void GRP_SetNation(CANVAS *cv, GRP_NATION nation); /******* *******************************************************/ // functions for 3D Box or Rect Draw /******************************************/ void GRP_Draw3dBox(CANVAS *cv,GRP_RECT *r, UINT32 fill_color, SINT32 _3d_thick, UINT32 _3d_type, SINT32 shadow_thick); void GRP_Draw3dBoxEx(CANVAS *cv, GRP_RECT *r, UINT32 fill_color, SINT32 _3d_thick, SINT32 shadow_thick, UINT32 _3d_out_lt_color, UINT32 _3d_out_rb_color, UINT32 _3d_mid_lt_color, UINT32 _3d_mid_rb_color, UINT32 _3d_in_lt_color, UINT32 _3d_in_rb_color); void GRP_Draw3dEffect(CANVAS *cv,GRP_RECT *r, SINT32 _3d_thick, SINT32 _3d_type, SINT32 shadow_thick); void GRP_Draw3dEffectEx(CANVAS *cv, GRP_RECT *r, SINT32 _3d_thick, SINT32 shadow_thick, UINT32 _3d_out_lt_color, UINT32 _3d_out_rb_color, UINT32 _3d_mid_lt_color, UINT32 _3d_mid_rb_color, UINT32 _3d_in_lt_color, UINT32 _3d_in_rb_color); void GRP_Draw3DBox1Thick(CANVAS *cv, GRP_RECT *r, UINT32 fill_color, SINT32 shadow_thick, UINT32 _3d_out_lt_color, UINT32 _3d_out_rb_color); void GRP_Draw3DBox2Thick(CANVAS *cv, GRP_RECT *r, UINT32 fill_color, SINT32 shadow_thick, UINT32 _3d_out_lt_color, UINT32 _3d_out_rb_color, UINT32 _3d_in_lt_color, UINT32 _3d_in_rb_color); void GRP_Draw3DBox3Thick(CANVAS *cv, GRP_RECT *r, UINT32 fill_color, SINT32 shadow_thick, UINT32 _3d_out_lt_color, UINT32 _3d_out_rb_color, UINT32 _3d_mid_lt_color, UINT32 _3d_mid_rb_color, UINT32 _3d_in_lt_color, UINT32 _3d_in_rb_color); void GRP_DrawRectBox(CANVAS *cv, GRP_RECT *r, SINT32 rect_thick, SINT32 shadow_thick, UINT32 rect_color, UINT32 fill_color); void GRP_DrawRectBoxEx(CANVAS *cv,GRP_RECT *r, SINT32 rect_thick, SINT32 shadow_thick, UINT32 rect_lt_color, UINT32 rect_rb_color, UINT32 fill_color); #ifdef __cplusplus } #endif #endif //-----------------------------------------end of file