238 lines
7.6 KiB
C
Executable File
238 lines
7.6 KiB
C
Executable File
/**
|
|
Graphics Data definition.
|
|
|
|
Graphics Data definition.
|
|
|
|
@file GxData.h
|
|
@ingroup mIGxgfx
|
|
@note Nothing
|
|
IMAGE : Image
|
|
BITMAP : Image with Bitmap type object, contain memory for bitmap image (WORD align)
|
|
ICON : Image with Icon type object, contain memory for icon image (bit-compacted)
|
|
JPEG : Image with Jpeg stream type object, contain memory for jpeg stream image (only for Blt)
|
|
|
|
STRING : String
|
|
TCHAR : General string
|
|
WCHAR : Wide char (2-byte) string
|
|
|
|
Copyright Novatek Microelectronics Corp. 2012. All rights reserved.
|
|
*/
|
|
|
|
/*
|
|
*/
|
|
|
|
#ifndef _GX_DATA_H_
|
|
#define _GX_DATA_H_
|
|
|
|
|
|
#include "GxGfx/GxGfx.h"
|
|
#include "kwrap/platform.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
/**
|
|
@addtogroup mIGxgfx
|
|
*/
|
|
//@{
|
|
//GxData feature:
|
|
#define GX_SUPPORT_WCHAR 1 ///<switch of support 16-bit char
|
|
|
|
//--------------------------------------------------------------------------------------
|
|
// type - image
|
|
//--------------------------------------------------------------------------------------
|
|
/**
|
|
The parameter of image structure
|
|
*/
|
|
|
|
typedef struct _IMAGE {
|
|
DC dc; ///<Drawing canvas
|
|
IRECT rect; ///<Image area
|
|
UINT32 uiPixelSize; ///<pixel size
|
|
void *pDynamicBuf; ///<buffer addr
|
|
}
|
|
IMAGE;
|
|
|
|
//--------------------------------------------------------------------------------------
|
|
// function - image
|
|
//--------------------------------------------------------------------------------------
|
|
/**
|
|
Get Image size.
|
|
|
|
@param[in] pImage Pointer of image.
|
|
@return Image size.
|
|
*/
|
|
ISIZE IMAGE_GetSize(const IMAGE *pImage);
|
|
|
|
/**
|
|
Get Image active rectangel.
|
|
|
|
@param[in] pImage Pointer of image.
|
|
@param[out] pRect Pointer of active rectangle.
|
|
@return Image size.
|
|
*/
|
|
RESULT IMAGE_GetActiveRect(const IMAGE *pImage, IRECT *pRect);
|
|
|
|
/**
|
|
Set Image active rectangel.
|
|
|
|
@param[in] pImage Pointer of image.
|
|
@param[in] x1 The left point.
|
|
@param[in] y1 The top point.
|
|
@param[in] x2; The right point.
|
|
@param[in] y2; The bottom point.
|
|
@return
|
|
- @b GX_OK if success.
|
|
- @b GX_NULL_POINTER no image or rectangle pointer.
|
|
|
|
*/
|
|
RESULT IMAGE_SetActiveRect(IMAGE *pImage, LVALUE x1, LVALUE y1, LVALUE x2, LVALUE y2);
|
|
|
|
/**
|
|
Get Image DC.
|
|
|
|
@param[in] pImage Pointer of image.
|
|
@return Image DC.
|
|
|
|
*/
|
|
_INLINE DC *IMAGE_GetDC(IMAGE *pImage)
|
|
{
|
|
if (pImage == 0) {
|
|
return 0;
|
|
}
|
|
return &(pImage->dc);
|
|
}
|
|
//--------------------------------------------------------------------------------------
|
|
// type - string
|
|
//--------------------------------------------------------------------------------------
|
|
//char types:
|
|
|
|
typedef unsigned short WCHAR; ///<16-bits char
|
|
typedef CHAR TCHAR; ///<8-bits char
|
|
typedef WCHAR TCHAR_VALUE; ///<common char access type (maximal volume of all support char types)
|
|
|
|
#define GX_CHAR_T(str) (str) ///<8-bits character type
|
|
#define GX_WCHAR_T(str) (L ## str) ///<16-bits character type
|
|
|
|
#if (GX_SUPPORT_WCHAR)
|
|
#define CHAR_TYPE WCHAR ///<character type
|
|
#define _T(str) GX_WCHAR_T(str) ///<character string type
|
|
#else
|
|
#define CHAR_TYPE TCHAR ///<character type
|
|
#define _T(str) GX_CHAR_T(str) ///<character string type
|
|
#endif
|
|
|
|
//<enum>
|
|
#define FMT_WCHAR ((WCHAR)(0xFEFF)) ///<WCHAR signature
|
|
#define FMT_WCHAR_1ST ((CHAR)(0xFF)) ///<LOW BYTE
|
|
#define FMT_WCHAR_2ND ((CHAR)(0xFE)) ///<HIGH BYTE
|
|
#define FMT_WCHAR_SIZE 1 ///<one WCHAR
|
|
|
|
//--------------------------------------------------------------------------------------
|
|
// function - string
|
|
//--------------------------------------------------------------------------------------
|
|
/**
|
|
Get string length.
|
|
|
|
@param[in] pszSrc Pointer of string.
|
|
@return String length.
|
|
|
|
*/
|
|
INT16 STRING_GetLength(const TCHAR *pszSrc);
|
|
|
|
|
|
//--------------------------------------------------------------------------------------
|
|
// type - image table
|
|
//--------------------------------------------------------------------------------------
|
|
typedef UINT16 IVALUE; ///<table index value
|
|
typedef UINT32 IMAGE_TABLE; ///<image table
|
|
|
|
//--------------------------------------------------------------------------------------
|
|
// function - image table
|
|
//--------------------------------------------------------------------------------------
|
|
/**
|
|
Load image from image table.
|
|
|
|
@param[out] pImage Pointer of image
|
|
@param[in] pTable Pointer of image table
|
|
@param[in] id Image ID
|
|
@return
|
|
- @b GX_OK if success
|
|
- @b GX_NULL_POINTER no image pointer
|
|
*/
|
|
RESULT IMAGE_LoadFromTable(IMAGE *pImage, const IMAGE_TABLE *pTable, IVALUE id);
|
|
|
|
/**
|
|
Load image size from image table.
|
|
|
|
@param[in] pTable Pointer of image table
|
|
@param[in] id Image ID
|
|
@param[out] pImageSize Pointer of image size
|
|
|
|
@return
|
|
- @b GX_OK if success
|
|
- @b GX_NULL_POINTER no size pointer
|
|
- @b GX_NO_IMAGETABLE no image table
|
|
- @b GX_OUTOF_IMAGEID image id out of range
|
|
*/
|
|
RESULT IMAGE_GetSizeFromTable(const IMAGE_TABLE *pTable, IVALUE id, ISIZE *pImageSize);
|
|
|
|
//--------------------------------------------------------------------------------------
|
|
// type - string table
|
|
//--------------------------------------------------------------------------------------
|
|
|
|
typedef UINT32 STRING_TABLE; ///<stirng table
|
|
//--------------------------------------------------------------------------------------
|
|
// function - string table
|
|
//--------------------------------------------------------------------------------------
|
|
/**
|
|
Load string from string table.
|
|
|
|
@param[in] pTable Pointer of string table
|
|
@param[in] id string ID
|
|
@return Pointer of image
|
|
*/
|
|
const TCHAR *
|
|
STRING_LoadFromTable(const STRING_TABLE *pTable, IVALUE id);
|
|
|
|
/**
|
|
Get string size from string table.
|
|
|
|
@param[in] pTable Pointer of string table
|
|
@param[in] id String ID
|
|
@param[out] pStringLen Pointer of string length
|
|
|
|
@return
|
|
- @b GX_OK if success
|
|
- @b GX_NULL_POINTER no length pointer
|
|
- @b GX_NO_IMAGETABLE no string table
|
|
- @b GX_OUTOF_IMAGEID string id out of range
|
|
*/
|
|
RESULT STRING_GetLengthFromTable(const STRING_TABLE *pTable, IVALUE id, INT16 *pStringLen);
|
|
|
|
//--------------------------------------------------------------------------------------
|
|
// type - font
|
|
//--------------------------------------------------------------------------------------
|
|
typedef UINT32 FONT; ///<font type
|
|
//--------------------------------------------------------------------------------------
|
|
// function - font
|
|
//--------------------------------------------------------------------------------------
|
|
|
|
|
|
//--------------------------------------------------------------------------------------
|
|
// type - drawing table
|
|
//--------------------------------------------------------------------------------------
|
|
typedef UINT32 DRAWING_TABLE; ///<type of drawing table
|
|
|
|
//--------------------------------------------------------------------------------------
|
|
// function - drawing table
|
|
//--------------------------------------------------------------------------------------
|
|
//@}
|
|
|
|
|
|
#ifdef __cplusplus
|
|
} //extern "C"
|
|
#endif
|
|
|
|
#endif//_GX_DATA_H_
|