mirror of https://github.com/OpenIPC/firmware.git
77 lines
3.8 KiB
C
77 lines
3.8 KiB
C
/* Copyright (c) 2018-2019 Sigmastar Technology Corp.
|
||
All rights reserved.
|
||
|
||
Unless otherwise stipulated in writing, any and all information contained
|
||
herein regardless in any format shall remain the sole proprietary of
|
||
Sigmastar Technology Corp. and be kept in strict confidence
|
||
(<28><>Sigmastar Confidential Information<6F><6E>) by the recipient.
|
||
Any unauthorized act including without limitation unauthorized disclosure,
|
||
copying, use, reproduction, sale, distribution, modification, disassembling,
|
||
reverse engineering and compiling of the contents of Sigmastar Confidential
|
||
Information is unlawful and strictly prohibited. Sigmastar hereby reserves the
|
||
rights to any and all damages, losses, costs and expenses resulting therefrom.
|
||
*/
|
||
#ifndef _MI_GFX_H_
|
||
#define _MI_GFX_H_
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
|
||
#include "mi_common.h"
|
||
#include "mi_gfx_datatype.h"
|
||
|
||
#define GFX_MAJOR_VERSION 2
|
||
#define GFX_SUB_VERSION 5
|
||
#define MACRO_TO_STR(macro) #macro
|
||
#define GFX_VERSION_STR(major_version,sub_version) ({char *tmp = sub_version/100 ? \
|
||
"mi_gfx_version_" MACRO_TO_STR(major_version)"." MACRO_TO_STR(sub_version) : sub_version/10 ? \
|
||
"mi_gfx_version_" MACRO_TO_STR(major_version)".0" MACRO_TO_STR(sub_version) : \
|
||
"mi_gfx_version_" MACRO_TO_STR(major_version)".00" MACRO_TO_STR(sub_version);tmp;})
|
||
#define MI_GFX_API_VERSION GFX_VERSION_STR(GFX_MAJOR_VERSION,GFX_SUB_VERSION)
|
||
|
||
/*-------------------------------------------------------------------------------------------
|
||
* Global Functions
|
||
-------------------------------------------------------------------------------------------*/
|
||
|
||
MI_S32 MI_GFX_Open(void);
|
||
MI_S32 MI_GFX_Close(void);
|
||
MI_S32 MI_GFX_WaitAllDone(MI_BOOL bWaitAllDone, MI_U16 u16TargetFence);
|
||
|
||
//-------------------------------------------------------------------------------------------------
|
||
/// Fill Rect
|
||
/// @param pstDst \b IN: Target Surface info
|
||
/// @param pstDstRect \b IN: Target Rect info
|
||
/// @param u32ColorVal \b IN: Color to fill
|
||
/// For all RGB color, the color set as the ARGB8888 format.\n
|
||
/// Each color component need to shift to high bit.\n
|
||
/// Use ARGB1555 as the example, the source color key as the following:\n
|
||
/// ARGB1555 --> ARRRRRGGGGGBBBBB (every character represents one bit)\n
|
||
/// For I8 format, the index set to b component\n
|
||
/// @param pu16Fence \b OUT: wait fence
|
||
/// @return MI_SUCCESS - Success
|
||
/// @return OTHER - Failure
|
||
//------------------------------------------------------------------------------------------------
|
||
MI_S32 MI_GFX_QuickFill(MI_GFX_Surface_t *pstDst, MI_GFX_Rect_t *pstDstRect,
|
||
MI_U32 u32ColorVal, MI_U16 *pu16Fence);
|
||
MI_S32 MI_GFX_GetAlphaThresholdValue(MI_U8 *pu8ThresholdValue);
|
||
MI_S32 MI_GFX_SetAlphaThresholdValue(MI_U8 u8ThresholdValue);
|
||
MI_S32 MI_GFX_BitBlit(MI_GFX_Surface_t *pstSrc, MI_GFX_Rect_t *pstSrcRect,
|
||
MI_GFX_Surface_t *pstDst, MI_GFX_Rect_t *pstDstRect, MI_GFX_Opt_t *pstOpt, MI_U16 *pu16Fence);
|
||
//-------------------------------------------------------------------------------------------------
|
||
/// Set Palette for Index Color format(I2/I4/I8)
|
||
/// @param eColorFmt \b IN: Index Color format(I2/I4/I8)
|
||
/// @param pstPalette \b IN: RGB color data array for corresponding Index Color
|
||
/// @return MI_SUCCESS - Success
|
||
/// @return OTHER - Failure,refer to error code
|
||
//------------------------------------------------------------------------------------------------
|
||
MI_S32 MI_GFX_SetPalette(MI_GFX_ColorFmt_e eColorFmt, MI_GFX_Palette_t* pstPalette);
|
||
|
||
MI_S32 MI_GFX_InitDev(MI_GFX_InitParam_t *pstInitParam);
|
||
MI_S32 MI_GFX_DeInitDev(void);
|
||
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|
||
|
||
#endif //_MI_GFX_H_
|