1848 lines
81 KiB
C
Executable File
1848 lines
81 KiB
C
Executable File
/* Copyright (c) 2006 NVIDIA Corporation. All rights reserved.
|
||
*
|
||
* NVIDIA Corporation and its licensors retain all intellectual property
|
||
* and proprietary rights in and to this software, related documentation
|
||
* and any modifications thereto. Any use, reproduction, disclosure or
|
||
* distribution of this software and related documentation without an
|
||
* express license agreement from NVIDIA Corporation is strictly prohibited.
|
||
*/
|
||
|
||
/** @file GFDx.h
|
||
GFSDK Display Initialization API header file.
|
||
*/
|
||
|
||
#ifndef GF_DX_H
|
||
#define GF_DX_H
|
||
|
||
#include "GFDispCmdData.h"
|
||
|
||
#ifdef __cplusplus
|
||
extern "C"
|
||
{
|
||
#endif /* __cplusplus */
|
||
|
||
/** @addtogroup groupDx DxAPI Display Initialization API
|
||
<ul>
|
||
<li> @ref pageDxAppNotes
|
||
<ul>
|
||
<li> @ref pageDxAppNotes1
|
||
</ul>
|
||
</ul>
|
||
*/
|
||
/*@{*/
|
||
|
||
/** GFDxAPI color info to be used during programming GFDxErase*/
|
||
#define GFDX_COLOR_RED 0xF800F800
|
||
#define GFDX_COLOR_GREEN 0x07E007E0
|
||
#define GFDX_COLOR_BLUE 0x001F001F
|
||
|
||
|
||
|
||
/** GFDxAPI error code: Function not supported. */
|
||
#define GFDX_ERROR_NO_SUPPORT (GFDX_ERROR | 2)
|
||
/** GFDxAPI error code: Invalid attribute ID for GFDxSetAttribute() / GFDxGetAttribute(). */
|
||
#define GFDX_ERROR_INVALID_ATTRIBUTE (GFDX_ERROR | 6)
|
||
|
||
/**
|
||
This struct is used by GFDxGetProperty().
|
||
* */
|
||
typedef struct _GFDXPROPERTY
|
||
{
|
||
/** standard GF property, following info is available as cap */
|
||
GFPROPERTY Prop;
|
||
/** Not supported */
|
||
NvU16 LcdWidth;
|
||
/** Not supported */
|
||
NvU16 LcdHeight;
|
||
/** Not supported */
|
||
NvU16 LcdIndex;
|
||
/** Not supported */
|
||
char LcdName[18];
|
||
/** Not supported */
|
||
NvU16 SubLcdWidth;
|
||
/** Not supported */
|
||
NvU16 SubLcdHeight;
|
||
/** Not supported */
|
||
NvU16 SubLcdIndex;
|
||
/** Not supported */
|
||
char SubLcdName[18];
|
||
|
||
} GFDXPROPERTY, *PGFDXPROPERTY;
|
||
|
||
#define DC_P_A_BLEND_2WIN_B DC_P_B_BLEND_2WIN_A
|
||
#define DC_P_A_BLEND_2WIN_C DC_P_B_BLEND_2WIN_C
|
||
|
||
#define DC_P_C_BLEND_2WIN_A DC_P_B_BLEND_2WIN_A
|
||
#define DC_P_C_BLEND_2WIN_B DC_P_B_BLEND_2WIN_C
|
||
|
||
//#define DC_P_B_BLEND_2WIN_B DC_P_B_BLEND_2WIN_C
|
||
#define P_B_CKEY_ENABLE_2WIN_B_CKEY0 P_B_CKEY_ENABLE_2WIN_C_CKEY0
|
||
#define P_B_CKEY_ENABLE_2WIN_B_CKEY1 P_B_CKEY_ENABLE_2WIN_C_CKEY1
|
||
#define P_B_BLEND_CONTROL_2WIN_B_MASK P_B_BLEND_CONTROL_2WIN_C_MASK
|
||
#define P_B_BLEND_CONTROL_2WIN_B_ALPHA_WEIGHT P_B_BLEND_CONTROL_2WIN_C_ALPHA_WEIGHT
|
||
#define P_B_BLEND_CONTROL_2WIN_B_DEPENDENT_WEIGHT P_B_BLEND_CONTROL_2WIN_C_DEPENDENT_WEIGHT
|
||
#define P_B_BLEND_WEIGHT0_2WIN_B_MASK P_B_BLEND_WEIGHT0_2WIN_C_MASK
|
||
#define P_B_BLEND_WEIGHT0_2WIN_B_SHIFT P_B_BLEND_WEIGHT0_2WIN_C_SHIFT
|
||
#define P_B_BLEND_WEIGHT1_2WIN_B_MASK P_B_BLEND_WEIGHT1_2WIN_C_MASK
|
||
#define P_B_BLEND_WEIGHT1_2WIN_B_SHIFT P_B_BLEND_WEIGHT1_2WIN_C_SHIFT
|
||
|
||
//#define DC_P_B_BLEND_3WIN_AB DC_P_B_BLEND_3WIN_AC
|
||
#define DC_P_A_BLEND_3WIN_BC DC_P_B_BLEND_3WIN_AC
|
||
#define P_B_CKEY_ENABLE_3WIN_AB_CKEY0 P_B_CKEY_ENABLE_3WIN_AC_CKEY0
|
||
#define P_B_CKEY_ENABLE_3WIN_AB_CKEY1 P_B_CKEY_ENABLE_3WIN_AC_CKEY1
|
||
#define P_B_BLEND_CONTROL_3WIN_AB_MASK P_B_BLEND_CONTROL_3WIN_AC_MASK
|
||
#define P_B_BLEND_CONTROL_3WIN_AB_ALPHA_WEIGHT P_B_BLEND_CONTROL_3WIN_AC_ALPHA_WEIGHT
|
||
#define P_B_BLEND_CONTROL_3WIN_AB_DEPENDENT_WEIGHT P_B_BLEND_CONTROL_3WIN_AC_DEPENDENT_WEIGHT
|
||
#define P_B_BLEND_WEIGHT0_3WIN_AB_MASK P_B_BLEND_WEIGHT0_3WIN_AC_MASK
|
||
#define P_B_BLEND_WEIGHT0_3WIN_AB_SHIFT P_B_BLEND_WEIGHT0_3WIN_AC_SHIFT
|
||
#define P_B_BLEND_WEIGHT1_3WIN_AB_MASK P_B_BLEND_WEIGHT1_3WIN_AC_MASK
|
||
#define P_B_BLEND_WEIGHT1_3WIN_AB_SHIFT P_B_BLEND_WEIGHT1_3WIN_AC_SHIFT
|
||
|
||
//#define DC_P_B_BLEND_3WIN_BC DC_P_B_BLEND_3WIN_AC
|
||
#define DC_P_C_BLEND_3WIN_AB DC_P_B_BLEND_3WIN_AC
|
||
#define P_B_CKEY_ENABLE_3WIN_BC_CKEY0 P_B_CKEY_ENABLE_3WIN_AC_CKEY0
|
||
#define P_B_CKEY_ENABLE_3WIN_BC_CKEY1 P_B_CKEY_ENABLE_3WIN_AC_CKEY1
|
||
#define P_B_BLEND_CONTROL_3WIN_BC_MASK P_B_BLEND_CONTROL_3WIN_AC_MASK
|
||
#define P_B_BLEND_CONTROL_3WIN_BC_ALPHA_WEIGHT P_B_BLEND_CONTROL_3WIN_AC_ALPHA_WEIGHT
|
||
#define P_B_BLEND_CONTROL_3WIN_BC_DEPENDENT_WEIGHT P_B_BLEND_CONTROL_3WIN_AC_DEPENDENT_WEIGHT
|
||
#define P_B_BLEND_WEIGHT0_3WIN_BC_MASK P_B_BLEND_WEIGHT0_3WIN_AC_MASK
|
||
#define P_B_BLEND_WEIGHT0_3WIN_BC_SHIFT P_B_BLEND_WEIGHT0_3WIN_AC_SHIFT
|
||
#define P_B_BLEND_WEIGHT1_3WIN_BC_MASK P_B_BLEND_WEIGHT1_3WIN_AC_MASK
|
||
#define P_B_BLEND_WEIGHT1_3WIN_BC_SHIFT P_B_BLEND_WEIGHT1_3WIN_AC_SHIFT
|
||
|
||
/**
|
||
Definition of attribute ids for Set/GetAttributes()
|
||
*/
|
||
typedef enum _GFDXATTRIBUTES
|
||
{
|
||
/** Width of the LCD fixed (240 for a 240x320 panel) */
|
||
GFDX_ATTR_LCDWIDTH,
|
||
/** Height of the LCD fixed (320 for a 240x320 panel) */
|
||
GFDX_ATTR_LCDHEIGHT,
|
||
/** NVIDIA panel index, This function overwrites environment panel Index setting */
|
||
GFDX_ATTR_LCDTYPE,
|
||
/** Name of the panel (upto 16 chars,"PHILIPS_LP7123A") */
|
||
GFDX_ATTR_LCDNAME,
|
||
/** Width of the display area usually same as LCDWIDTH,
|
||
Parameters: W[15:0] */
|
||
GFDX_ATTR_WIDTH,
|
||
/** Height of the display area, can be less if emulating smaller size,
|
||
Parameters: H[15:0] */
|
||
GFDX_ATTR_HEIGHT,
|
||
/** set/gets width height together to avoid artifacts,
|
||
Parameters: W[15:0], H[31:16] */
|
||
GFDX_ATTR_WH_WA,
|
||
/** set/gets x, y start position of window A,
|
||
Parameters: X[15:0], Y[31:16] */
|
||
GFDX_ATTR_XY_POS_WA,
|
||
/** Color Depth Bits per pixel: 1,2,4,8,12,15(RGB555),16(RGB565), 32(ARGB888),
|
||
GFDX_COLOR_DEPTH_YCbCr422,
|
||
GFDX_COLOR_DEPTH_YUV422,
|
||
GFDX_COLOR_DEPTH_YCbCr420P,
|
||
GFDX_COLOR_DEPTH_YUV420P,
|
||
GFDX_COLOR_DEPTH_YUV422P,
|
||
GFDX_COLOR_DEPTH_YCbCr422P,
|
||
GFDX_COLOR_DEPTH_YCbCr422R,
|
||
GFDX_COLOR_DEPTH_YUV422R,
|
||
GFDX_COLOR_DEPTH_YCbCr422RA,
|
||
GFDX_COLOR_DEPTH_YUV422RA,
|
||
*/
|
||
GFDX_ATTR_BPP_WA,
|
||
/** On/Off Horizontal & Vertical Pixel Doubling for window A,
|
||
Parameters: GFDXA_PIX_DBL_H, GFDXA_PIX_DBL_V or 0-Disable */
|
||
GFDX_ATTR_PIXEL_DBL_WA,
|
||
/** Start Address for Window A Buffer 0 */
|
||
GFDX_ATTR_ADDR_WA_B0,
|
||
/** Start Address for Window A Buffer 1 */
|
||
GFDX_ATTR_ADDR_WA_B1,
|
||
/** Stride for Window A Buffer 0 */
|
||
GFDX_ATTR_STRIDE_WA_B0,
|
||
/** Stride for Window A Buffer 1 */
|
||
GFDX_ATTR_STRIDE_WA_B1,
|
||
/** Enable/Disable Windows A, Parameters: 1-Enable 0-Disable */
|
||
GFDX_ATTR_ENABLE_WA,
|
||
/** Enable/Disable Buf0, Buf1, VI, GE Double Buffer (see def),
|
||
Parameters: GFDXA_DB_BUF0, GFDXA_DB_BUF1, GFDXA_DB_GE, GFDXA_DB_VI,
|
||
GFDXA_DB_EPP, GFDXA_DB_MPEGE, GFDXA_DB_HOST
|
||
*/
|
||
GFDX_ATTR_DBL_BUF_WA,
|
||
/** Sets/Gets GC Rotate bits for window A, for internal use only */
|
||
GFDX_ATTR_ROTATE_BIT_WA,
|
||
/** Set/Get H Direction Increment/Decrement for window A, for internal use only */
|
||
GFDX_ATTR_H_DIRECTION_WA,
|
||
/** Set/Get V Direction Increment/Decrement for window A, for internal use only */
|
||
GFDX_ATTR_V_DIRECTION_WA,
|
||
/** Enable/Disable Palette for WinA */
|
||
GFDX_ATTR_PALETTE_EN_WA,
|
||
/** Set/Get Palette 666 R[31-24], G[23-16], B[15-8], Index[7-0] WinA */
|
||
GFDX_ATTR_PALETTE_WA,
|
||
/** Set/Get Palette 888 R[31-24], G[23-16], B[15-8], Index[7-0] WinA */
|
||
GFDX_ATTR_PALETTE888_WA,
|
||
/** Enable/Disable DV WinA ,
|
||
Parameters: GFDX_ATTR_DV_ENABLE, GFDX_ATTR_DV_DISABLE
|
||
*/
|
||
GFDX_ATTR_DV_CONTROL_EN_WA,
|
||
/** Set/Get DV Control R[26-24], G[18-16], B[10-8] WinA */
|
||
GFDX_ATTR_DV_CONTROL_WA,
|
||
/** Color Key0 Lower range for overlay, there are two sets of color keys KEY0 & KEY1,
|
||
Parameters: R[23-16],G[15-8],B[7-0], Each KEY has Lower and Upper range */
|
||
GFDX_ATTR_COLOR_KEY0_LOWER_RANGE,
|
||
/** Color Key0 Upper range for overlay, there are two sets of color keys KEY0 & KEY1,
|
||
Parameters: R[23-16],G[15-8],B[7-0], Each KEY has Lower and Upper range */
|
||
GFDX_ATTR_COLOR_KEY0_UPPER_RANGE,
|
||
/** Color Key1 Lower range for overlay, there are two sets of color keys KEY0 & KEY1,
|
||
Parameters: R[23-16],G[15-8],B[7-0], Each KEY has Lower and Upper range */
|
||
GFDX_ATTR_COLOR_KEY1_LOWER_RANGE,
|
||
/** Color Key1 Upper range for overlay, there are two sets of color keys KEY0 & KEY1,
|
||
Parameters: R[23-16],G[15-8],B[7-0], Each KEY has Lower and Upper range */
|
||
GFDX_ATTR_COLOR_KEY1_UPPER_RANGE,
|
||
/** Color Key enbled but pixel color is not in range,
|
||
Parameters: GFDXA_BLEND_CONTROL_NOKEY_ALPHA_WEIGHT else 0 for Fix Weight */
|
||
GFDX_ATTR_COLOR_NOKEY_WA,
|
||
/** Weight0 for Color Key not match area,
|
||
Parameters: Weight0 value[7:0], if 1-bit Alpha Weight0 value = 0 */
|
||
GFDX_ATTR_COLOR_NOKEY_WEIGHT0_WA,
|
||
/** Weight1 for Color Key not match area,
|
||
Parameters: Weight1 value[7:0], if 1-bit Alpha Weight1 value = 1 */
|
||
GFDX_ATTR_COLOR_NOKEY_WEIGHT1_WA,
|
||
/** Color Key0 Enble/Disable for WinA,
|
||
Parameters: GFDXA_BLEND_COLOR_KEY0_ENABLE or GFDXA_BLEND_COLOR_KEY0_DISABLE */
|
||
GFDX_ATTR_COLOR_KEY0_1WIN_WA,
|
||
/** Color Key1 Enble/Disable for WinA,
|
||
Parameters: GFDXA_BLEND_COLOR_KEY1_ENABLE or GFDXA_BLEND_COLOR_KEY1_DISABLE */
|
||
GFDX_ATTR_COLOR_KEY1_1WIN_WA,
|
||
/** Blend Control for WinA where does not Overlap with other Window,
|
||
Parameters: GFDXA_BLEND_CONTROL_nWIN_ALPHA_WEIGHT or 0 for Fix Weight */
|
||
GFDX_ATTR_COLOR_1WIN_WA,
|
||
/** Win Blend Weight0 for CKey disabled or CKey enabled w key match area or 1-bit Alpha, Alpha 0 uses Weight0,
|
||
Parameters: Weight0 value[7:0], if 1-bit Alpha Weight0 value = 0 */
|
||
GFDX_ATTR_COLOR_1WIN_WEIGHT0_WA,
|
||
/** Win Blend Weight1 for CKey disabled or CKey enabled w key match area or 1-bit Alpha, Alpha 1 uses Weight1,
|
||
Parameters: Weight1 value[7:0], if 1-bit Alpha Weight1 value = 1 */
|
||
GFDX_ATTR_COLOR_1WIN_WEIGHT1_WA,
|
||
/** Color Key0 Enble/Disable for WinA, Overlap with WinB,
|
||
Parameters: GFDXA_BLEND_COLOR_KEY0_ENABLE (if 2WIN_A_CKEY1 enbled then ENABLE_2WIN_A_CKEY01
|
||
else 2WIN_A_CKEY0)
|
||
GFDXA_BLEND_COLOR_KEY0_DISABLE (if 2WIN_A_CKEY1 enbled then ENABLE_2WIN_A_CKEY1
|
||
else 2WIN_A_NOKEY)
|
||
*/
|
||
GFDX_ATTR_COLOR_KEY0_2WIN_B_WA,
|
||
/** Color Key1 Enble/Disable for WinA, Overlap with WinB,
|
||
Parameters: GFDXA_BLEND_COLOR_KEY1_ENABLE (if 2WIN_A_CKEY1 enbled then ENABLE_2WIN_A_CKEY01
|
||
else 2WIN_A_CKEY1)
|
||
GFDXA_BLEND_COLOR_KEY1_DISABLE (if 2WIN_A_CKEY1 enbled then ENABLE_2WIN_A_CKEY0
|
||
else 2WIN_A_NOKEY)
|
||
*/
|
||
GFDX_ATTR_COLOR_KEY1_2WIN_B_WA,
|
||
/** Blend Control for WinA area that overlap with WinB only
|
||
Parameters: GFDXA_BLEND_CONTROL_nWIN_ALPHA_WEIGHT or GFDXA_BLEND_CONTROL_nWIN_DEPENDENT_WEIGHT
|
||
or 0 for FIX WEIGHT
|
||
*/
|
||
GFDX_ATTR_COLOR_2WIN_B_WA,
|
||
/** Win Blend Weight0 for CKey disabled or CKey enabled w key match area or 1-bit Alpha, Alpha 0 uses Weight0
|
||
Parameters: Weight0 value[7:0], if 1-bit Alpha Weight0 value = 0 */
|
||
GFDX_ATTR_COLOR_2WIN_B_WEIGHT0_WA,
|
||
/** Win Blend Weight1 for CKey disabled or CKey enabled w key match area or 1-bit Alpha, Alpha 1 uses Weight1
|
||
Parameters: Weight1 value[7:0], if 1-bit Alpha Weight1 value = 1 */
|
||
GFDX_ATTR_COLOR_2WIN_B_WEIGHT1_WA,
|
||
/** Color Key0 Enble/Disable for WinA, Overlap with WinC
|
||
Parameters: GFDXA_BLEND_COLOR_KEY0_ENABLE (if 2WIN_A_CKEY1 enbled then ENABLE_2WIN_A_CKEY01
|
||
else 2WIN_A_CKEY0)
|
||
GFDXA_BLEND_COLOR_KEY0_DISABLE (if 2WIN_A_CKEY1 enbled then ENABLE_2WIN_A_CKEY1
|
||
else 2WIN_A_NOKEY)
|
||
*/
|
||
GFDX_ATTR_COLOR_KEY0_2WIN_C_WA,
|
||
/** Color Key1 Enble/Disable for WinA, Overlap with WinC
|
||
Parameters: GFDXA_BLEND_COLOR_KEY1_ENABLE (if 2WIN_A_CKEY1 enbled then ENABLE_2WIN_A_CKEY01
|
||
else 2WIN_A_CKEY1)
|
||
GFDXA_BLEND_COLOR_KEY1_DISABLE (if 2WIN_A_CKEY1 enbled then ENABLE_2WIN_A_CKEY0
|
||
else 2WIN_A_NOKEY)
|
||
*/
|
||
GFDX_ATTR_COLOR_KEY1_2WIN_C_WA,
|
||
/** Blend Control for WinA area that overlap with WinC only
|
||
Parameters: GFDXA_BLEND_CONTROL_nWIN_ALPHA_WEIGHT or GFDXA_BLEND_CONTROL_nWIN_DEPENDENT_WEIGHT
|
||
or 0 for FIX WEIGHT
|
||
*/
|
||
GFDX_ATTR_COLOR_2WIN_C_WA,
|
||
/** Win Blend Weight0 for CKey disabled or CKey enabled w key match area or 1-bit Alpha, Alpha 0 uses Weight0
|
||
Parameters: Weight0 value[7:0], if 1-bit Alpha Weight0 value = 0 */
|
||
GFDX_ATTR_COLOR_2WIN_C_WEIGHT0_WA,
|
||
/** Win Blend Weight1 for CKey disabled or CKey enabled w key match area or 1-bit Alpha, Alpha 1 uses Weight1
|
||
Parameters: Weight1 value[7:0], if 1-bit Alpha Weight1 value = 1 */
|
||
GFDX_ATTR_COLOR_2WIN_C_WEIGHT1_WA,
|
||
/** Color Key0 Enble/Disable for WinA, Overlap with WinA & WinC Only
|
||
Parameters: GFDXA_BLEND_COLOR_KEY0_ENABLE (if 3WIN_AC_CKEY1 enbled then ENABLE_3WIN_AC_CKEY01
|
||
else 3WIN_AC_CKEY0)
|
||
GFDXA_BLEND_COLOR_KEY0_DISABLE (if 3WIN_AC_CKEY1 enbled then ENABLE_3WIN_AC_CKEY1
|
||
else 3WIN_AC_NOKEY)
|
||
*/
|
||
GFDX_ATTR_COLOR_KEY0_3WIN_BC_WA,
|
||
/** Color Key1 Enble/Disable for WinA, Overlap with WinA & WinC
|
||
Parameters: GFDXA_BLEND_COLOR_KEY1_ENABLE (if 3WIN_AC_CKEY1 enbled then ENABLE_3WIN_AC_CKEY01
|
||
else 3WIN_AC_CKEY1)
|
||
GFDXA_BLEND_COLOR_KEY1_DISABLE (if 3WIN_AC_CKEY1 enbled then ENABLE_3WIN_AC_CKEY0
|
||
else 3WIN_AC_NOKEY)
|
||
*/
|
||
GFDX_ATTR_COLOR_KEY1_3WIN_BC_WA,
|
||
/** Blend Control for WinA area that overlap with WinA & WinC only
|
||
Parameters: GFDXA_BLEND_CONTROL_nWIN_ALPHA_WEIGHT or GFDXA_BLEND_CONTROL_nWIN_DEPENDENT_WEIGHT
|
||
or 0 for FIX WEIGHT
|
||
*/
|
||
GFDX_ATTR_COLOR_3WIN_BC_WA,
|
||
/** Win Blend Weight0 for CKey disabled or CKey enabled w key match area or 1-bit Alpha, Alpha 0 uses Weight0
|
||
Parameters: Weight0 value[7:0], if 1-bit Alpha Weight0 value = 0 */
|
||
GFDX_ATTR_COLOR_3WIN_BC_WEIGHT0_WA,
|
||
/** Win Blend Weight1 for CKey disabled or CKey enabled w key match area or 1-bit Alpha, Alpha 1 uses Weight1
|
||
Parameters: Weight1 value[7:0], if 1-bit Alpha Weight1 value = 1 */
|
||
GFDX_ATTR_COLOR_3WIN_BC_WEIGHT1_WA,
|
||
/** set/gets width height together to avoid artifacts */
|
||
GFDX_ATTR_WH_WB,
|
||
/** set/gets source width height together to avoid artifacts,
|
||
Parameters: W[15:0], H[31:16] */
|
||
GFDX_ATTR_SRC_WH_WB,
|
||
/** set/gets x, y start position of window B,
|
||
Parameters: X[15:0], Y[31:16] */
|
||
GFDX_ATTR_XY_POS_WB,
|
||
/** Color Depth Bits per pixel: 1,2,4,8,12,15(RGB555),16(RGB565), 32(ARGB888),
|
||
GFDX_COLOR_DEPTH_YCbCr422,
|
||
GFDX_COLOR_DEPTH_YUV422,
|
||
GFDX_COLOR_DEPTH_YCbCr420P,
|
||
GFDX_COLOR_DEPTH_YUV420P,
|
||
GFDX_COLOR_DEPTH_YUV422P,
|
||
GFDX_COLOR_DEPTH_YCbCr422P,
|
||
GFDX_COLOR_DEPTH_YCbCr422R,
|
||
GFDX_COLOR_DEPTH_YUV422R,
|
||
GFDX_COLOR_DEPTH_YCbCr422RA,
|
||
GFDX_COLOR_DEPTH_YUV422RA,
|
||
*/
|
||
GFDX_ATTR_BPP_WB,
|
||
/** On/Off Horizontal & Vertical Pixel Doubling for Window B,
|
||
Parameters: GFDXA_PIX_DBL_H, GFDXA_PIX_DBL_V or 0-Disable */
|
||
GFDX_ATTR_PIXEL_DBL_WB,
|
||
/** Upscales/Downscales window */
|
||
GFDX_ATTR_SCALE_WB,
|
||
/** Start Address for Window B Buffer 0 */
|
||
GFDX_ATTR_ADDR_WB_B0,
|
||
/** U Start Address for Window B Buffer 0 */
|
||
GFDX_ATTR_ADDR_U_WB_B0,
|
||
/** V Start Address for Window B Buffer 0 */
|
||
GFDX_ATTR_ADDR_V_WB_B0,
|
||
/** Stride for Window B Buffer 0 */
|
||
GFDX_ATTR_STRIDE_WB_B0,
|
||
/** UV Stride for Window B Buffer 0 */
|
||
GFDX_ATTR_STRIDE_UV_WB_B0,
|
||
/** Start Address for Window B Buffer 1 */
|
||
GFDX_ATTR_ADDR_WB_B1,
|
||
/** U Start Address for Window B Buffer 1 */
|
||
GFDX_ATTR_ADDR_U_WB_B1,
|
||
/** V Start Address for Window B Buffer 1 */
|
||
GFDX_ATTR_ADDR_V_WB_B1,
|
||
/** Stride for Window B Buffer 1 */
|
||
GFDX_ATTR_STRIDE_WB_B1,
|
||
/** UV Stride for Window B Buffer 1 */
|
||
GFDX_ATTR_STRIDE_UV_WB_B1,
|
||
/** Enable/Disable Windows B, Parameters: 1-Enable 0-Disable */
|
||
GFDX_ATTR_ENABLE_WB,
|
||
/** Enable/Disable Buf0, Buf1, VI, GE Double Buffer (see def),
|
||
Parameters: GFDXA_DB_BUF0, GFDXA_DB_BUF1, GFDXA_DB_GE, GFDXA_DB_VI,
|
||
GFDXA_DB_EPP, GFDXA_DB_MPEGE, GFDXA_DB_HOST
|
||
*/
|
||
GFDX_ATTR_DBL_BUF_WB,
|
||
/** Sets/Gets GC Rotate bits for window B, for internal use only */
|
||
GFDX_ATTR_ROTATE_BIT_WB,
|
||
/** Set/Get H Direction Increment/Decrement for window B, for internal use only */
|
||
GFDX_ATTR_H_DIRECTION_WB,
|
||
/** Set/Get V Direction Increment/Decrement for window B, for internal use only */
|
||
GFDX_ATTR_V_DIRECTION_WB,
|
||
/** Enable/Disable Palette for WinB */
|
||
GFDX_ATTR_PALETTE_EN_WB,
|
||
/** Set/Get Palette 666 R[31-24], G[23-16], B[15-8], Index[7-0] WinB */
|
||
GFDX_ATTR_PALETTE_WB,
|
||
/** Set/Get Palette 888 R[31-24], G[23-16], B[15-8], Index[7-0] WinB */
|
||
GFDX_ATTR_PALETTE888_WB,
|
||
/** Enable/Disable DV WinB ,
|
||
Parameters: GFDX_ATTR_DV_ENABLE, GFDX_ATTR_DV_DISABLE
|
||
*/
|
||
GFDX_ATTR_DV_CONTROL_EN_WB,
|
||
/** Set/Get DV Control R[26-24], G[18-16], B[10-8] WinB */
|
||
GFDX_ATTR_DV_CONTROL_WB,
|
||
/** Color Key enbled but pixel color is not in range
|
||
Parameters: GFDXA_BLEND_CONTROL_NOKEY_ALPHA_WEIGHT else 0 for Fix Weight */
|
||
GFDX_ATTR_COLOR_NOKEY_WB,
|
||
/** Weight0 for Color Key not match area
|
||
Parameters: Weight0 value[7:0], if 1-bit Alpha Weight0 value = 0 */
|
||
GFDX_ATTR_COLOR_NOKEY_WEIGHT0_WB,
|
||
/** Weight1 for Color Key not match area
|
||
Parameters: Weight1 value[7:0], if 1-bit Alpha Weight1 value = 1 */
|
||
GFDX_ATTR_COLOR_NOKEY_WEIGHT1_WB,
|
||
/** Color Key0 Enble/Disable for WinB
|
||
Parameters: GFDXA_BLEND_COLOR_KEY0_ENABLE or GFDXA_BLEND_COLOR_KEY0_DISABLE */
|
||
GFDX_ATTR_COLOR_KEY0_1WIN_WB,
|
||
/** Color Key1 Enble/Disable for WinB
|
||
Parameters: GFDXA_BLEND_COLOR_KEY1_ENABLE or GFDXA_BLEND_COLOR_KEY1_DISABLE */
|
||
GFDX_ATTR_COLOR_KEY1_1WIN_WB,
|
||
/** Blend Control for WinB where does not Overlap with other Window
|
||
Parameters: GFDXA_BLEND_CONTROL_nWIN_ALPHA_WEIGHT or 0 for Fix Weight */
|
||
GFDX_ATTR_COLOR_1WIN_WB,
|
||
/** Win Blend Weight0 for CKey disabled or CKey enabled w key match area or 1-bit Alpha, Alpha 0 uses Weight0
|
||
Parameters: Weight0 value[7:0], if 1-bit Alpha Weight0 value = 0 */
|
||
GFDX_ATTR_COLOR_1WIN_WEIGHT0_WB,
|
||
/** Win Blend Weight1 for CKey disabled or CKey enabled w key match area or 1-bit Alpha, Alpha 1 uses Weight1
|
||
Parameters: Weight1 value[7:0], if 1-bit Alpha Weight1 value = 1 */
|
||
GFDX_ATTR_COLOR_1WIN_WEIGHT1_WB,
|
||
/** Color Key0 Enble/Disable for WinB, Overlap with WinA
|
||
Parameters: GFDXA_BLEND_COLOR_KEY0_ENABLE (if 2WIN_B_CKEY1 enbled then ENABLE_2WIN_B_CKEY01
|
||
else 2WIN_B_CKEY0)
|
||
GFDXA_BLEND_COLOR_KEY0_DISABLE (if 2WIN_B_CKEY1 enbled then ENABLE_2WIN_B_CKEY1
|
||
else 2WIN_B_NOKEY)
|
||
*/
|
||
GFDX_ATTR_COLOR_KEY0_2WIN_A_WB,
|
||
/** Color Key1 Enble/Disable for WinB, Overlap with WinA
|
||
Parameters: GFDXA_BLEND_COLOR_KEY1_ENABLE (if 2WIN_B_CKEY1 enbled then ENABLE_2WIN_B_CKEY01
|
||
else 2WIN_B_CKEY1)
|
||
GFDXA_BLEND_COLOR_KEY1_DISABLE (if 2WIN_B_CKEY1 enbled then ENABLE_2WIN_B_CKEY0
|
||
else 2WIN_B_NOKEY)
|
||
*/
|
||
GFDX_ATTR_COLOR_KEY1_2WIN_A_WB,
|
||
/** Blend Control for WinB where does not Overlap with other Window
|
||
Parameters: GFDXA_BLEND_CONTROL_nWIN_ALPHA_WEIGHT or GFDXA_BLEND_CONTROL_nWIN_DEPENDENT_WEIGHT
|
||
or 0 for FIX WEIGHT
|
||
*/
|
||
GFDX_ATTR_COLOR_2WIN_A_WB,
|
||
/** Win Blend Weight0 for CKey disabled or CKey enabled w key match area or 1-bit Alpha, Alpha 0 uses Weight0
|
||
Parameters: Weight0 value[7:0], if 1-bit Alpha Weight0 value = 0 */
|
||
GFDX_ATTR_COLOR_2WIN_A_WEIGHT0_WB,
|
||
/** Win Blend Weight1 for CKey disabled or CKey enabled w key match area or 1-bit Alpha, Alpha 1 uses Weight1
|
||
Parameters: Weight1 value[7:0], if 1-bit Alpha Weight1 value = 1 */
|
||
GFDX_ATTR_COLOR_2WIN_A_WEIGHT1_WB,
|
||
/** Color Key0 Enble/Disable for WinB, Overlap with WinC
|
||
Parameters: GFDXA_BLEND_COLOR_KEY0_ENABLE (if 2WIN_B_CKEY1 enbled then ENABLE_2WIN_B_CKEY01
|
||
else 2WIN_B_CKEY0)
|
||
GFDXA_BLEND_COLOR_KEY0_DISABLE (if 2WIN_B_CKEY1 enbled then ENABLE_2WIN_B_CKEY1
|
||
else 2WIN_B_NOKEY)
|
||
*/
|
||
GFDX_ATTR_COLOR_KEY0_2WIN_C_WB,
|
||
/** Color Key1 Enble/Disable for WinB, Overlap with WinC
|
||
Parameters: GFDXA_BLEND_COLOR_KEY1_ENABLE (if 2WIN_B_CKEY1 enbled then ENABLE_2WIN_B_CKEY01
|
||
else 2WIN_B_CKEY1)
|
||
GFDXA_BLEND_COLOR_KEY1_DISABLE (if 2WIN_B_CKEY1 enbled then ENABLE_2WIN_B_CKEY0
|
||
else 2WIN_B_NOKEY)
|
||
*/
|
||
GFDX_ATTR_COLOR_KEY1_2WIN_C_WB,
|
||
/** Blend Control for WinB area that overlap with WinC only
|
||
Parameters: GFDXA_BLEND_CONTROL_nWIN_ALPHA_WEIGHT or GFDXA_BLEND_CONTROL_nWIN_DEPENDENT_WEIGHT
|
||
or 0 for FIX WEIGHT
|
||
*/
|
||
GFDX_ATTR_COLOR_2WIN_C_WB,
|
||
/** Win Blend Weight0 for CKey disabled or CKey enabled w key match area or 1-bit Alpha, Alpha 0 uses Weight0
|
||
Parameters: Weight0 value[7:0], if 1-bit Alpha Weight0 value = 0 */
|
||
GFDX_ATTR_COLOR_2WIN_C_WEIGHT0_WB,
|
||
/** Win Blend Weight1 for CKey disabled or CKey enabled w key match area or 1-bit Alpha, Alpha 1 uses Weight1
|
||
Parameters: Weight1 value[7:0], if 1-bit Alpha Weight1 value = 1 */
|
||
GFDX_ATTR_COLOR_2WIN_C_WEIGHT1_WB,
|
||
/** Color Key0 Enble/Disable for WinB, Overlap with WinA & WinC Only
|
||
Parameters: GFDXA_BLEND_COLOR_KEY0_ENABLE (if 3WIN_BC_CKEY1 enbled then ENABLE_3WIN_BC_CKEY01
|
||
else 3WIN_BC_CKEY0)
|
||
GFDXA_BLEND_COLOR_KEY0_DISABLE (if 3WIN_BC_CKEY1 enbled then ENABLE_3WIN_BC_CKEY1
|
||
else 3WIN_BC_NOKEY)
|
||
*/
|
||
GFDX_ATTR_COLOR_KEY0_3WIN_AC_WB,
|
||
/** Color Key1 Enble/Disable for WinB, Overlap with WinA & WinC
|
||
Parameters: GFDXA_BLEND_COLOR_KEY1_ENABLE (if 3WIN_BC_CKEY1 enbled then ENABLE_3WIN_BC_CKEY01
|
||
else 3WIN_BC_CKEY1)
|
||
GFDXA_BLEND_COLOR_KEY1_DISABLE (if 3WIN_BC_CKEY1 enbled then ENABLE_3WIN_BC_CKEY0
|
||
else 3WIN_BC_NOKEY)
|
||
*/
|
||
GFDX_ATTR_COLOR_KEY1_3WIN_AC_WB,
|
||
/** Blend Control for WinB area that overlap with WinA & WinC only
|
||
Parameters: GFDXA_BLEND_CONTROL_nWIN_ALPHA_WEIGHT or GFDXA_BLEND_CONTROL_nWIN_DEPENDENT_WEIGHT
|
||
or 0 for FIX WEIGHT
|
||
*/
|
||
GFDX_ATTR_COLOR_3WIN_AC_WB,
|
||
/** Win Blend Weight0 for CKey disabled or CKey enabled w key match area or 1-bit Alpha, Alpha 0 uses Weight0
|
||
Parameters: Weight0 value[7:0], if 1-bit Alpha Weight0 value = 0 */
|
||
GFDX_ATTR_COLOR_3WIN_AC_WEIGHT0_WB,
|
||
/** Win Blend Weight1 for CKey disabled or CKey enabled w key match area or 1-bit Alpha, Alpha 1 uses Weight1
|
||
Parameters: Weight1 value[7:0], if 1-bit Alpha Weight1 value = 1 */
|
||
GFDX_ATTR_COLOR_3WIN_AC_WEIGHT1_WB,
|
||
|
||
/** set/gets width height together to avoid artifacts */
|
||
GFDX_ATTR_WH_WC,
|
||
/** set/gets source width height together to avoid artifacts,
|
||
Parameters: W[15:0], H[31:16] */
|
||
GFDX_ATTR_SRC_WH_WC,
|
||
/** set/gets x, y start position of window C,
|
||
Parameters: X[15:0], Y[31:16] */
|
||
GFDX_ATTR_XY_POS_WC,
|
||
/** Color Depth Bits per pixel: 1,2,4,8,12,15(RGB555),16(RGB565), 32(ARGB888),
|
||
GFDX_COLOR_DEPTH_YCbCr422,
|
||
GFDX_COLOR_DEPTH_YUV422,
|
||
GFDX_COLOR_DEPTH_YCbCr420P,
|
||
GFDX_COLOR_DEPTH_YUV420P,
|
||
GFDX_COLOR_DEPTH_YUV422P,
|
||
GFDX_COLOR_DEPTH_YCbCr422P,
|
||
GFDX_COLOR_DEPTH_YCbCr422R,
|
||
GFDX_COLOR_DEPTH_YUV422R,
|
||
GFDX_COLOR_DEPTH_YCbCr422RA,
|
||
GFDX_COLOR_DEPTH_YUV422RA,
|
||
*/
|
||
GFDX_ATTR_BPP_WC,
|
||
/** Set Trigger for encode window, 0- Disable, 1- Enable, 2-single Shot*/
|
||
GFDX_ATTR_TRIGGER_WENC,
|
||
/** On/Off Horizontal & Vertical Pixel Doubling for Window C,
|
||
Parameters: GFDXA_PIX_DBL_H, GFDXA_PIX_DBL_V or 0-Disable */
|
||
GFDX_ATTR_PIXEL_DBL_WC,
|
||
/** Upscales/Downscales window */
|
||
GFDX_ATTR_SCALE_WC,
|
||
/** Start Address for window C Buffer 0 */
|
||
GFDX_ATTR_ADDR_WC_B0,
|
||
/** U Start Address for window C Buffer 0 */
|
||
GFDX_ATTR_ADDR_U_WC_B0,
|
||
/** V Start Address for window C Buffer 0 */
|
||
GFDX_ATTR_ADDR_V_WC_B0,
|
||
/** Stride for window C Buffer 0 */
|
||
GFDX_ATTR_STRIDE_WC_B0,
|
||
/** UV Stride for window C Buffer 0 */
|
||
GFDX_ATTR_STRIDE_UV_WC_B0,
|
||
/** Start Address for window C Buffer 1 */
|
||
GFDX_ATTR_ADDR_WC_B1,
|
||
/** U Start Address for window C Buffer 1 */
|
||
GFDX_ATTR_ADDR_U_WC_B1,
|
||
/** V Start Address for window C Buffer 1 */
|
||
GFDX_ATTR_ADDR_V_WC_B1,
|
||
/** Stride for window C Buffer 1 */
|
||
GFDX_ATTR_STRIDE_WC_B1,
|
||
/** UV Stride for window C Buffer 1 */
|
||
GFDX_ATTR_STRIDE_UV_WC_B1,
|
||
/** Enable/Disable Windows C, Parameters: 1-Enable 0-Disable */
|
||
GFDX_ATTR_ENABLE_WC,
|
||
/** Enable/Disable Buf0, Buf1, VI, GE Double Buffer (see def),
|
||
Parameters: GFDXA_DB_BUF0, GFDXA_DB_BUF1, GFDXA_DB_GE, GFDXA_DB_VI,
|
||
GFDXA_DB_EPP, GFDXA_DB_MPEGE, GFDXA_DB_HOST
|
||
*/
|
||
GFDX_ATTR_DBL_BUF_WC,
|
||
/** Sets/Gets GC Rotate bits for window C, for internal use only */
|
||
GFDX_ATTR_ROTATE_BIT_WC,
|
||
/** Set/Get H Direction Increment/Decrement for window C, for internal use only */
|
||
GFDX_ATTR_H_DIRECTION_WC,
|
||
/** Set/Get V Direction Increment/Decrement for window C, for internal use only */
|
||
GFDX_ATTR_V_DIRECTION_WC,
|
||
/** Enable/Disable Palette for WinC */
|
||
GFDX_ATTR_PALETTE_EN_WC,
|
||
/** Set/Get Palette 666 R[31-24], G[23-16], B[15-8], Index[7-0] WinC */
|
||
GFDX_ATTR_PALETTE_WC,
|
||
/** Set/Get Palette 888 R[31-24], G[23-16], B[15-8], Index[7-0] WinC */
|
||
GFDX_ATTR_PALETTE888_WC,
|
||
/** Enable/Disable DV WinC,
|
||
Parameters: GFDX_ATTR_DV_ENABLE, GFDX_ATTR_DV_DISABLE
|
||
*/
|
||
GFDX_ATTR_DV_CONTROL_EN_WC,
|
||
/** Set/Get DV Control R[26-24], G[18-16], B[10-8] WinA */
|
||
GFDX_ATTR_DV_CONTROL_WC,
|
||
/** Color Key enbled but pixel color is not in range
|
||
Parameters: GFDXA_BLEND_CONTROL_NOKEY_ALPHA_WEIGHT else 0 for Fix Weight */
|
||
GFDX_ATTR_COLOR_NOKEY_WC,
|
||
/** Weight0 for Color Key not match area
|
||
Parameters: Weight0 value[7:0], if 1-bit Alpha Weight0 value = 0 */
|
||
GFDX_ATTR_COLOR_NOKEY_WEIGHT0_WC,
|
||
/** Weight1 for Color Key not match area
|
||
Parameters: Weight1 value[7:0], if 1-bit Alpha Weight1 value = 1 */
|
||
GFDX_ATTR_COLOR_NOKEY_WEIGHT1_WC,
|
||
/** Color Key0 Enble/Disable for WinC
|
||
Parameters: GFDXA_BLEND_COLOR_KEY0_ENABLE or GFDXA_BLEND_COLOR_KEY0_DISABLE */
|
||
GFDX_ATTR_COLOR_KEY0_1WIN_WC,
|
||
/** Color Key1 Enble/Disable for WinC
|
||
Parameters: GFDXA_BLEND_COLOR_KEY1_ENABLE or GFDXA_BLEND_COLOR_KEY1_DISABLE */
|
||
GFDX_ATTR_COLOR_KEY1_1WIN_WC,
|
||
/** Blend Control for WinC where does not Overlap with other Window
|
||
Parameters: GFDXA_BLEND_CONTROL_nWIN_ALPHA_WEIGHT or 0 for Fix Weight */
|
||
GFDX_ATTR_COLOR_1WIN_WC,
|
||
/** Win Blend Weight0 for CKey disabled or CKey enabled w key match area or 1-bit Alpha, Alpha 0 uses Weight0
|
||
Parameters: Weight0 value[7:0], if 1-bit Alpha Weight0 value = 0 */
|
||
GFDX_ATTR_COLOR_1WIN_WEIGHT0_WC,
|
||
/** Win Blend Weight1 for CKey disabled or CKey enabled w key match area or 1-bit Alpha, Alpha 1 uses Weight1
|
||
Parameters: Weight1 value[7:0], if 1-bit Alpha Weight1 value = 1 */
|
||
GFDX_ATTR_COLOR_1WIN_WEIGHT1_WC,
|
||
/** Color Key0 Enble/Disable for WinC, Overlap with WinA
|
||
Parameters: GFDXA_BLEND_COLOR_KEY0_ENABLE (if 2WIN_C_CKEY1 enbled then ENABLE_2WIN_C_CKEY01
|
||
else 2WIN_C_CKEY0)
|
||
GFDXA_BLEND_COLOR_KEY0_DISABLE (if 2WIN_C_CKEY1 enbled then ENABLE_2WIN_C_CKEY1
|
||
else 2WIN_C_NOKEY)
|
||
*/
|
||
GFDX_ATTR_COLOR_KEY0_2WIN_A_WC,
|
||
/** Color Key1 Enble/Disable for WinC, Overlap with WinA
|
||
Parameters: GFDXA_BLEND_COLOR_KEY1_ENABLE (if 2WIN_C_CKEY1 enbled then ENABLE_2WIN_C_CKEY01
|
||
else 2WIN_C_CKEY1)
|
||
GFDXA_BLEND_COLOR_KEY1_DISABLE (if 2WIN_C_CKEY1 enbled then ENABLE_2WIN_C_CKEY0
|
||
else 2WIN_C_NOKEY)
|
||
*/
|
||
GFDX_ATTR_COLOR_KEY1_2WIN_A_WC,
|
||
/** Blend Control for WinC area that overlap with WinA only
|
||
Parameters: GFDXA_BLEND_CONTROL_nWIN_ALPHA_WEIGHT or GFDXA_BLEND_CONTROL_nWIN_DEPENDENT_WEIGHT
|
||
or 0 for FIX WEIGHT
|
||
*/
|
||
GFDX_ATTR_COLOR_2WIN_A_WC,
|
||
/** Win Blend Weight0 for CKey disabled or CKey enabled w key match area or 1-bit Alpha, Alpha 0 uses Weight0
|
||
Parameters: Weight0 value[7:0], if 1-bit Alpha Weight0 value = 0 */
|
||
GFDX_ATTR_COLOR_2WIN_A_WEIGHT0_WC,
|
||
/** Win Blend Weight1 for CKey disabled or CKey enabled w key match area or 1-bit Alpha, Alpha 1 uses Weight1
|
||
Parameters: Weight1 value[7:0], if 1-bit Alpha Weight1 value = 1 */
|
||
GFDX_ATTR_COLOR_2WIN_A_WEIGHT1_WC,
|
||
/** Color Key0 Enble/Disable for WinC, Overlap with WinB
|
||
Parameters: GFDXA_BLEND_COLOR_KEY0_ENABLE (if 2WIN_C_CKEY1 enbled then ENABLE_2WIN_C_CKEY01
|
||
else 2WIN_C_CKEY0)
|
||
GFDXA_BLEND_COLOR_KEY0_DISABLE (if 2WIN_C_CKEY1 enbled then ENABLE_2WIN_C_CKEY1
|
||
else 2WIN_C_NOKEY)
|
||
*/
|
||
GFDX_ATTR_COLOR_KEY0_2WIN_B_WC,
|
||
/** Color Key1 Enble/Disable for WinC, Overlap with WinB
|
||
Parameters: GFDXA_BLEND_COLOR_KEY1_ENABLE (if 2WIN_C_CKEY1 enbled then ENABLE_2WIN_C_CKEY01
|
||
else 2WIN_C_CKEY1)
|
||
GFDXA_BLEND_COLOR_KEY1_DISABLE (if 2WIN_C_CKEY1 enbled then ENABLE_2WIN_C_CKEY0
|
||
else 2WIN_C_NOKEY)
|
||
*/
|
||
GFDX_ATTR_COLOR_KEY1_2WIN_B_WC,
|
||
/** Blend Control for WinC area that overlap with WinB only
|
||
Parameters: GFDXA_BLEND_CONTROL_nWIN_ALPHA_WEIGHT or GFDXA_BLEND_CONTROL_nWIN_DEPENDENT_WEIGHT
|
||
or 0 for FIX WEIGHT
|
||
*/
|
||
GFDX_ATTR_COLOR_2WIN_B_WC,
|
||
/** Win Blend Weight0 for CKey disabled or CKey enabled w key match area or 1-bit Alpha, Alpha 0 uses Weight0
|
||
Parameters: Weight0 value[7:0], if 1-bit Alpha Weight0 value = 0 */
|
||
GFDX_ATTR_COLOR_2WIN_B_WEIGHT0_WC,
|
||
/** Win Blend Weight1 for CKey disabled or CKey enabled w key match area or 1-bit Alpha, Alpha 1 uses Weight1
|
||
Parameters: Weight1 value[7:0], if 1-bit Alpha Weight1 value = 1 */
|
||
GFDX_ATTR_COLOR_2WIN_B_WEIGHT1_WC,
|
||
/** Color Key0 Enble/Disable for WinC, Overlap with WinA & WinB Only
|
||
Parameters: GFDXA_BLEND_COLOR_KEY0_ENABLE (if 3WIN_AB_CKEY1 enbled then ENABLE_3WIN_AB_CKEY01
|
||
else 3WIN_AB_CKEY0)
|
||
GFDXA_BLEND_COLOR_KEY0_DISABLE (if 3WIN_AB_CKEY1 enbled then ENABLE_3WIN_AB_CKEY1
|
||
else 3WIN_AB_NOKEY)
|
||
*/
|
||
GFDX_ATTR_COLOR_KEY0_3WIN_AB_WC,
|
||
/** Color Key1 Enble/Disable for WinC, Overlap with WinA & WinB
|
||
Parameters: GFDXA_BLEND_COLOR_KEY1_ENABLE (if 3WIN_AB_CKEY1 enbled then ENABLE_3WIN_AB_CKEY01
|
||
else 3WIN_AB_CKEY1)
|
||
GFDXA_BLEND_COLOR_KEY1_DISABLE (if 3WIN_AB_CKEY1 enbled then ENABLE_3WIN_AB_CKEY0
|
||
else 3WIN_AB_NOKEY)
|
||
*/
|
||
GFDX_ATTR_COLOR_KEY1_3WIN_AB_WC,
|
||
/** Blend Control for WinC area that overlap with WinA & WinB only
|
||
Parameters: GFDXA_BLEND_CONTROL_nWIN_ALPHA_WEIGHT or GFDXA_BLEND_CONTROL_nWIN_DEPENDENT_WEIGHT
|
||
or 0 for FIX WEIGHT
|
||
*/
|
||
GFDX_ATTR_COLOR_3WIN_AB_WC,
|
||
/** Win Blend Weight0 for CKey disabled or CKey enabled w key match area or 1-bit Alpha, Alpha 0 uses Weight0
|
||
Parameters: Weight0 value[7:0], if 1-bit Alpha Weight0 value = 0 */
|
||
GFDX_ATTR_COLOR_3WIN_AB_WEIGHT0_WC,
|
||
/** Win Blend Weight1 for CKey disabled or CKey enabled w key match area or 1-bit Alpha, Alpha 1 uses Weight1
|
||
Parameters: Weight1 value[7:0], if 1-bit Alpha Weight1 value = 1 */
|
||
GFDX_ATTR_COLOR_3WIN_AB_WEIGHT1_WC,
|
||
/** GC Color Key for overlay, Not supported */
|
||
GFDX_ATTR_COLOR_KEY,
|
||
/** GC Color Key Mask for overlay, Not supported */
|
||
GFDX_ATTR_COLOR_KEY_MASK,
|
||
/** Set overlap type (see def), Not supported */
|
||
GFDX_ATTR_OVERLAP_TYPE,
|
||
/** Gets VDisplay End for GE Start Window programming, Not supported */
|
||
GFDX_ATTR_V_DISPLAY_END,
|
||
/** Gets range for clock divider L=0:H=15 */
|
||
GFDX_ATTR_PWM0_CLK_RANGE,
|
||
/** Gets range for duty cycle L=0:H=255 */
|
||
GFDX_ATTR_PWM0_DTY_RANGE,
|
||
/** Controls Backlight0 clock divider for PWM0 Bits[5:0] */
|
||
GFDX_ATTR_PWM0_CLOCK,
|
||
/** Controls Backlight0 duty cycle for PWM0 Bits[7:0] */
|
||
GFDX_ATTR_PWM0_DUTYCY,
|
||
/** Gets range for clock divider L=0:H=15 */
|
||
GFDX_ATTR_PWM1_CLK_RANGE,
|
||
/** Gets range for duty cycle L=0:H=255 */
|
||
GFDX_ATTR_PWM1_DTY_RANGE,
|
||
/** Controls Backlight1 clock divider for PWM1 Bits[5:0] */
|
||
GFDX_ATTR_PWM1_CLOCK,
|
||
/** Controls Backlight1 duty cycle for PWM1 Bits[7:0] */
|
||
GFDX_ATTR_PWM1_DUTYCY,
|
||
/** LCD Type 0-Main Lcd, 1-Sub Lcd */
|
||
GFDX_ATTR_DISP_TYPE,
|
||
/** SW register 1 for program usage */
|
||
GFDX_ATTR_SW_REG_1,
|
||
/** SW register 2 for program usage */
|
||
GFDX_ATTR_SW_REG_2,
|
||
/** set/gets width height of screen encode window,
|
||
Parameters: W[15:0], H[31:16] */
|
||
GFDX_ATTR_WH_WENC,
|
||
/** set/gets x, y start position of screen encode window,
|
||
Parameters: X[15:0], Y[31:16] */
|
||
GFDX_ATTR_XY_POS_WENC,
|
||
/** Enable/Disable screen encode window. Parameters: 1-Enable 0-Disable.
|
||
* Please note that this sets the encode rate to its maximum value of
|
||
* 1.000 so if you plan to change it after enabling,
|
||
* use attribute GFDX_ATTR_WENC_RATE. */
|
||
GFDX_ATTR_ENABLE_WENC,
|
||
/** Get Device ID & Rev, Not supported */
|
||
GFDX_ATTR_DEVICE_INFO,
|
||
/** Enable CRC, Set Wait 1 or 2 VSync
|
||
Parameters: GFDXA_CRC_WAIT_VSYNC1, GFDXA_CRC_WAIT_VSYNC2, GFDXA_CRC_DISABLE
|
||
*/
|
||
GFDX_ATTR_CRC_ENABLE,
|
||
/** Get Check Sum */
|
||
GFDX_ATTR_CRC_CHECK_SUM,
|
||
/** Not supported, Not supported */
|
||
GFDX_ATTR_HC_SHAPE,
|
||
/** load Hardware Cursor Image, Not supported */
|
||
GFDX_ATTR_HC_SHAPE_EXT,
|
||
/** set cursor hot spot, Not supported */
|
||
GFDX_ATTR_HC_HOTSPOT,
|
||
/** set foreground and background color, Not supported */
|
||
GFDX_ATTR_HC_COLOR,
|
||
/** Set Hardware Cursor new Position, Not supported */
|
||
GFDX_ATTR_HC_POSITION,
|
||
/** Enable, Disable Hardware Cursor, Not supported */
|
||
GFDX_ATTR_HC_SHOW,
|
||
/** free internal buffer, Not supported */
|
||
GFDX_ATTR_HC_RELEASE,
|
||
/** Set Start or Stop Frame
|
||
Parameters: GFDX_MAIN_START, GFDX_MAIN_STOP, GFDX_SUB_START, GFDX_SUB_STOP
|
||
*/
|
||
GFDX_ATTR_STOP_START,
|
||
/** Set Start or Stop Frame
|
||
Parameters: GFDX_MAIN_ONE_FRAME, GFDX_SUB_ONE_FRAME
|
||
*/
|
||
GFDX_ATTR_SEND_ONE_FRAME,
|
||
/** Set No change */
|
||
GFDX_ATTR_NOCHANGE,
|
||
/** Get Pre Init LCD Resolution Bit[0-15] Width, Bit[16-31] Height*/
|
||
GFDX_ATTR_PRE_INIT_LCD_RES,
|
||
/** NVIDIA panel index internal to API use */
|
||
GFDX_ATTR_INTERNAL_LCDTYPE,
|
||
/** Setting this attribute will bypass any hardware writes in DxAPI which go through
|
||
* the GFDX_CHANNEL_xx macros. The runtime environment GFSDK_DXINIT_BYPASS uses
|
||
* this attribue to disable hardware writes during DxSetDisplay().
|
||
* Parameters: GFDX_SET_WRITE_SHADOW or GFDX_CLR_WRITE_SHADOW
|
||
*/
|
||
GFDX_ATTR_WRITE_SHADOW_ONLY,
|
||
/** Backlight0 ON GPIO LPW2 Low */
|
||
GFDX_ATTR_BACKLIGHT0_ON,
|
||
/** Backlight1 ON GPIO LM1 Low */
|
||
GFDX_ATTR_BACKLIGHT1_ON,
|
||
/** Backlight0 OFF GPIO LPW2 High */
|
||
GFDX_ATTR_BACKLIGHT0_OFF,
|
||
/** Backlight1 OFF GPIO LM1 High*/
|
||
GFDX_ATTR_BACKLIGHT1_OFF,
|
||
/** configure BACKLIGHT0 as GPIO on LPW2*/
|
||
GFDX_ATTR_BACKLIGHT0_CONFIGURE_GPIO,
|
||
/** configure BACKLIGHT1 as GPIO on LM1*/
|
||
GFDX_ATTR_BACKLIGHT1_CONFIGURE_GPIO,
|
||
/** configure BACKLIGHT0 as PWM on LPW2*/
|
||
GFDX_ATTR_BACKLIGHT0_CONFIGURE_PWM,
|
||
/** configure BACKLIGHT1 as PWM on LM1 */
|
||
GFDX_ATTR_BACKLIGHT1_CONFIGURE_PWM,
|
||
|
||
/** Set Stop Frame Options,
|
||
Parameters: GFDX_MAIN_STOP_POLARITY_HIGH, GFDX_MAIN_STOP_POLARITY_LOW, GFDX_SUB_STOP_POLARITY_HIGH
|
||
GFDX_SUB_STOP_POLARITY_LOW, GFDX_MAIN_STOP_INPUT_PIN_ENABLE, GFDX_MAIN_STOP_INPUT_PIN_DISABLE,
|
||
GFDX_SUB_STOP_INPUT_PIN_ENABLE, GFDX_SUB_STOP_INPUT_PIN_DISABLE, GFDX_STOP_WINDOW_A_NC_ENABLE,
|
||
GFDX_STOP_WINDOW_A_NC_DISABLE, GFDX_STOP_WINDOW_B_NC_ENABLE, GFDX_STOP_WINDOW_B_NC_DISABLE,
|
||
GFDX_STOP_WINDOW_B_NC_ENABLE, GFDX_STOP_WINDOW_B_NC_DISABLE
|
||
*/
|
||
GFDX_ATTR_STOP_FRAME_OPTIONS,
|
||
/** Set Non Continuos Display */
|
||
GFDX_ATTR_NC_DISPLAY,
|
||
/** Horizontal and Vertical Filter Support Window B
|
||
Parameters: GFDX_H_FILTER_ENABLE, GFDX_H_FILTER_DISABLE, GFDX_V_FILTER_ENABLE, GFDX_V_FILTER_DISABLE
|
||
*/
|
||
GFDX_ATTR_H_V_FILTER_WB,
|
||
/** Horizontal and Vertical Filter Support Window C
|
||
Parameters: GFDX_H_FILTER_ENABLE, GFDX_H_FILTER_DISABLE, GFDX_V_FILTER_ENABLE, GFDX_V_FILTER_DISABLE
|
||
*/
|
||
GFDX_ATTR_H_V_FILTER_WC,
|
||
|
||
/** Get Supported Display Script Options
|
||
Parameters: GFDX_DEFAULT_TABLE, GFDX_DXAPI_SUPPORT, GFDX_FMARK_SUPPORT
|
||
*/
|
||
GFDX_ATTR_DISPLAY_SCRIPT_OPTIONS,
|
||
/** Rate of window decode output frames when sending continuously.
|
||
* please note that the rate is overwritten with the maximum value (i.e. 1.000
|
||
* which is represented by a fixed point fraction 16.16) if you use attribute
|
||
* GFDX_ATTR_ENABLE_WENC, so you need to overwrite with this attribute.
|
||
* Parameters: any number between 0x0 and 0x10000 (i.e. 0.0 an 1.000)
|
||
*/
|
||
GFDX_ATTR_WENC_RATE
|
||
|
||
} GFDXATTRIBUTES;
|
||
|
||
// Stop Frame Options
|
||
#define GFDX_MAIN_STOP_POLARITY_HIGH 0x00000001
|
||
#define GFDX_MAIN_STOP_POLARITY_LOW 0x80000001
|
||
#define GFDX_MAIN_STOP_INPUT_PIN_ENABLE 0x00000002
|
||
#define GFDX_MAIN_STOP_INPUT_PIN_DISABLE 0x80000002
|
||
|
||
#define GFDX_SUB_STOP_POLARITY_HIGH 0x00000004
|
||
#define GFDX_SUB_STOP_POLARITY_LOW 0x80000004
|
||
#define GFDX_SUB_STOP_INPUT_PIN_ENABLE 0x00000006
|
||
#define GFDX_SUB_STOP_INPUT_PIN_DISABLE 0x80000006
|
||
|
||
#define GFDX_STOP_WINDOW_A_NC_ENABLE 0x00000010
|
||
#define GFDX_STOP_WINDOW_A_NC_DISABLE 0x80000010
|
||
#define GFDX_STOP_WINDOW_B_NC_ENABLE 0x00000011
|
||
#define GFDX_STOP_WINDOW_B_NC_DISABLE 0x80000011
|
||
#define GFDX_STOP_WINDOW_C_NC_ENABLE 0x00000012
|
||
#define GFDX_STOP_WINDOW_C_NC_DISABLE 0x80000012
|
||
|
||
// Horizontal and Vertical Filter Support Window B & C
|
||
|
||
#define GFDX_H_FILTER_ENABLE 0x00000100
|
||
#define GFDX_H_FILTER_DISABLE 0x80000100
|
||
#define GFDX_V_FILTER_ENABLE 0x00004000
|
||
#define GFDX_V_FILTER_DISABLE 0x80004000
|
||
#define GFDX_V_FILTER_OPTIMIZE_ENABLE 0x00010000
|
||
#define GFDX_V_FILTER_OPTIMIZE_DISABLE 0x80010000
|
||
|
||
// Display Script Options
|
||
|
||
#define GFDX_DEFAULT_TABLE 0x00000001
|
||
#define GFDX_DXAPI_SUPPORT 0x00000002
|
||
#define GFDX_FMARK_SUPPORT 0x00000004
|
||
|
||
|
||
/** Attribute value for GFDX_ATTR_WRITE_SHADOW_ONLY.
|
||
* Setting this attribute will disable all channel hardware writes in DxAPI.
|
||
* The runtime environment GFSDK_DXINIT_BYPASS uses this attribue to disable
|
||
* hardware writes in DxSetDisplay().
|
||
*/
|
||
#define GFDX_SET_WRITE_SHADOW 0x00000001
|
||
/** Attribute value for GFDX_ATTR_WRITE_SHADOW_ONLY.
|
||
* This attribute is used to clear the effect of #GFDX_SET_WRITE_SHADOW.
|
||
* It must be used explicitly to re-enable hardware writes in DxAPI.
|
||
*/
|
||
#define GFDX_CLR_WRITE_SHADOW 0x80000001
|
||
|
||
|
||
|
||
#define GFDX_COLOR_DEPTH_YCbCr422 (16UL | 0x80000000)
|
||
#define GFDX_COLOR_DEPTH_YUV422 (17UL | 0x80000000)
|
||
#define GFDX_COLOR_DEPTH_YCbCr420P (18UL | 0x80000000)
|
||
#define GFDX_COLOR_DEPTH_YUV420P (19UL | 0x80000000)
|
||
#define GFDX_COLOR_DEPTH_YCbCr422P (20UL | 0x80000000)
|
||
#define GFDX_COLOR_DEPTH_YUV422P (21UL | 0x80000000)
|
||
#define GFDX_COLOR_DEPTH_YCbCr422R (22UL | 0x80000000)
|
||
#define GFDX_COLOR_DEPTH_YUV422R (23UL | 0x80000000)
|
||
#define GFDX_COLOR_DEPTH_YCbCr422RA (24UL | 0x80000000)
|
||
#define GFDX_COLOR_DEPTH_YUV422RA (25UL | 0x80000000)
|
||
|
||
#define GFDX_SWAP_MASK 0x000f0000
|
||
#define GFDX_NO_SWAP 0x00000000
|
||
#define GFDX_BYTE_SWAP 0x00010000
|
||
#define GFDX_ORDER_SWAP 0x00020000
|
||
#define GFDX_WORD_SWAP 0x00030000
|
||
|
||
#define GFDX_COLOR_DEPTH_YUV422_YVYU (17UL | 0x80000000 | GFDX_NO_SWAP)
|
||
#define GFDX_COLOR_DEPTH_YUV422_VYUY (17UL | 0x80000000 | GFDX_BYTE_SWAP)
|
||
#define GFDX_COLOR_DEPTH_YUV422_UYVY (17UL | 0x80000000 | GFDX_ORDER_SWAP)
|
||
#define GFDX_COLOR_DEPTH_YUV422_YUYV (17UL | 0x80000000 | GFDX_WORD_SWAP)
|
||
|
||
#define GFDX_COLOR_DEPTH_YCbCr422_YVYU (16UL | 0x80000000 | GFDX_NO_SWAP)
|
||
#define GFDX_COLOR_DEPTH_YCbCr422_VYUY (16UL | 0x80000000 | GFDX_BYTE_SWAP)
|
||
#define GFDX_COLOR_DEPTH_YCbCr422_UYVY (16UL | 0x80000000 | GFDX_ORDER_SWAP)
|
||
#define GFDX_COLOR_DEPTH_YCbCr422_YUYV (16UL | 0x80000000 | GFDX_WORD_SWAP)
|
||
|
||
|
||
// Horizontal Filter Coefficients
|
||
|
||
#define GF_H_P00C0 0x0
|
||
#define GF_H_P00C1 (0x0 << 3 )
|
||
#define GF_H_P00C2 (0x80 << 8 )
|
||
#define GF_H_P00C3 (0x0 << 16)
|
||
#define GF_H_P00C4 (0x0 << 24)
|
||
#define GF_H_P00C5 (0x0 << 29)
|
||
#define GF_H_P00CX GF_H_P00C0|GF_H_P00C1|GF_H_P00C2|GF_H_P00C3|GF_H_P00C4|GF_H_P00C5
|
||
|
||
#define GF_H_P01C0 0x1
|
||
#define GF_H_P01C1 (0x1c << 3 )
|
||
#define GF_H_P01C2 (0x7c << 8 )
|
||
#define GF_H_P01C3 (0x8 << 16)
|
||
#define GF_H_P01C4 (0x1e << 24)
|
||
#define GF_H_P01C5 (0x1 << 29)
|
||
#define GF_H_P01CX GF_H_P01C0|GF_H_P01C1|GF_H_P01C2|GF_H_P01C3|GF_H_P01C4|GF_H_P01C5
|
||
|
||
#define GF_H_P02C0 0x1
|
||
#define GF_H_P02C1 (0x18 << 3 )
|
||
#define GF_H_P02C2 (0x7a << 8 )
|
||
#define GF_H_P02C3 (0x11 << 16)
|
||
#define GF_H_P02C4 (0x1b << 24)
|
||
#define GF_H_P02C5 (0x1 << 29)
|
||
#define GF_H_P02CX GF_H_P02C0|GF_H_P02C1|GF_H_P02C2|GF_H_P02C3|GF_H_P02C4|GF_H_P02C5
|
||
|
||
#define GF_H_P03C0 0x2
|
||
#define GF_H_P03C1 (0x15 << 3 )
|
||
#define GF_H_P03C2 (0x73 << 8 )
|
||
#define GF_H_P03C3 (0x1b << 16)
|
||
#define GF_H_P03C4 (0x19 << 24)
|
||
#define GF_H_P03C5 (0x2 << 29)
|
||
#define GF_H_P03CX GF_H_P03C0|GF_H_P03C1|GF_H_P03C2|GF_H_P03C3|GF_H_P03C4|GF_H_P03C5
|
||
|
||
#define GF_H_P04C0 0x2
|
||
#define GF_H_P04C1 (0x13 << 3 )
|
||
#define GF_H_P04C2 (0x6d << 8 )
|
||
#define GF_H_P04C3 (0x25 << 16)
|
||
#define GF_H_P04C4 (0x17 << 24)
|
||
#define GF_H_P04C5 (0x2 << 29)
|
||
#define GF_H_P04CX GF_H_P04C0|GF_H_P04C1|GF_H_P04C2|GF_H_P04C3|GF_H_P04C4|GF_H_P04C5
|
||
|
||
#define GF_H_P05C0 0x3
|
||
#define GF_H_P05C1 (0x11 << 3 )
|
||
#define GF_H_P05C2 (0x66 << 8 )
|
||
#define GF_H_P05C3 (0x2f << 16)
|
||
#define GF_H_P05C4 (0x15 << 24)
|
||
#define GF_H_P05C5 (0x2 << 29)
|
||
#define GF_H_P05CX GF_H_P05C0|GF_H_P05C1|GF_H_P05C2|GF_H_P05C3|GF_H_P05C4|GF_H_P05C5
|
||
|
||
#define GF_H_P06C0 0x3
|
||
#define GF_H_P06C1 (0x11 << 3 )
|
||
#define GF_H_P06C2 (0x5e << 8 )
|
||
#define GF_H_P06C3 (0x38 << 16)
|
||
#define GF_H_P06C4 (0x13 << 24)
|
||
#define GF_H_P06C5 (0x3 << 29)
|
||
#define GF_H_P06CX GF_H_P06C0|GF_H_P06C1|GF_H_P06C2|GF_H_P06C3|GF_H_P06C4|GF_H_P06C5
|
||
|
||
#define GF_H_P07C0 0x3
|
||
#define GF_H_P07C1 (0x10 << 3 )
|
||
#define GF_H_P07C2 (0x55 << 8 )
|
||
#define GF_H_P07C3 (0x43 << 16)
|
||
#define GF_H_P07C4 (0x12 << 24)
|
||
#define GF_H_P07C5 (0x3 << 29)
|
||
#define GF_H_P07CX GF_H_P07C0|GF_H_P07C1|GF_H_P07C2|GF_H_P07C3|GF_H_P07C4|GF_H_P07C5
|
||
|
||
#define GF_H_P08C0 0x3
|
||
#define GF_H_P08C1 (0x11 << 3 )
|
||
#define GF_H_P08C2 (0x4c << 8 )
|
||
#define GF_H_P08C3 (0x4c << 16)
|
||
#define GF_H_P08C4 (0x11 << 24)
|
||
#define GF_H_P08C5 (0x3 << 29)
|
||
#define GF_H_P08CX GF_H_P08C0|GF_H_P08C1|GF_H_P08C2|GF_H_P08C3|GF_H_P08C4|GF_H_P08C5
|
||
|
||
#define GF_H_P09C0 0x3
|
||
#define GF_H_P09C1 (0x12 << 3 )
|
||
#define GF_H_P09C2 (0x43 << 8 )
|
||
#define GF_H_P09C3 (0x55 << 16)
|
||
#define GF_H_P09C4 (0x10 << 24)
|
||
#define GF_H_P09C5 (0x3 << 29)
|
||
#define GF_H_P09CX GF_H_P09C0|GF_H_P09C1|GF_H_P09C2|GF_H_P09C3|GF_H_P09C4|GF_H_P09C5
|
||
|
||
#define GF_H_P0AC0 0x3
|
||
#define GF_H_P0AC1 (0x13 << 3 )
|
||
#define GF_H_P0AC2 (0x38 << 8 )
|
||
#define GF_H_P0AC3 (0x5e << 16)
|
||
#define GF_H_P0AC4 (0x11 << 24)
|
||
#define GF_H_P0AC5 (0x3 << 29)
|
||
#define GF_H_P0ACX GF_H_P0AC0|GF_H_P0AC1|GF_H_P0AC2|GF_H_P0AC3|GF_H_P0AC4|GF_H_P0AC5
|
||
|
||
#define GF_H_P0BC0 0x2
|
||
#define GF_H_P0BC1 (0x15 << 3 )
|
||
#define GF_H_P0BC2 (0x2f << 8 )
|
||
#define GF_H_P0BC3 (0x66 << 16)
|
||
#define GF_H_P0BC4 (0x11 << 24)
|
||
#define GF_H_P0BC5 (0x3 << 29)
|
||
#define GF_H_P0BCX GF_H_P0BC0|GF_H_P0BC1|GF_H_P0BC2|GF_H_P0BC3|GF_H_P0BC4|GF_H_P0BC5
|
||
|
||
#define GF_H_P0CC0 0x2
|
||
#define GF_H_P0CC1 (0x17 << 3 )
|
||
#define GF_H_P0CC2 (0x25 << 8 )
|
||
#define GF_H_P0CC3 (0x6d << 16)
|
||
#define GF_H_P0CC4 (0x13 << 24)
|
||
#define GF_H_P0CC5 (0x2 << 29)
|
||
#define GF_H_P0CCX GF_H_P0CC0|GF_H_P0CC1|GF_H_P0CC2|GF_H_P0CC3|GF_H_P0CC4|GF_H_P0CC5
|
||
|
||
#define GF_H_P0DC0 0x2
|
||
#define GF_H_P0DC1 (0x19 << 3 )
|
||
#define GF_H_P0DC2 (0x1b << 8 )
|
||
#define GF_H_P0DC3 (0x73 << 16)
|
||
#define GF_H_P0DC4 (0x15 << 24)
|
||
#define GF_H_P0DC5 (0x2 << 29)
|
||
#define GF_H_P0DCX GF_H_P0DC0|GF_H_P0DC1|GF_H_P0DC2|GF_H_P0DC3|GF_H_P0DC4|GF_H_P0DC5
|
||
|
||
#define GF_H_P0EC0 0x1
|
||
#define GF_H_P0EC1 (0x1b << 3 )
|
||
#define GF_H_P0EC2 (0x11 << 8 )
|
||
#define GF_H_P0EC3 (0x7a << 16)
|
||
#define GF_H_P0EC4 (0x18 << 24)
|
||
#define GF_H_P0EC5 (0x1 << 29)
|
||
#define GF_H_P0ECX GF_H_P0EC0|GF_H_P0EC1|GF_H_P0EC2|GF_H_P0EC3|GF_H_P0EC4|GF_H_P0EC5
|
||
|
||
#define GF_H_P0FC0 0x1
|
||
#define GF_H_P0FC1 (0x1e << 3 )
|
||
#define GF_H_P0FC2 (0x8 << 8 )
|
||
#define GF_H_P0FC3 (0x7c << 16)
|
||
#define GF_H_P0FC4 (0x1c << 24)
|
||
#define GF_H_P0FC5 (0x1 << 29)
|
||
#define GF_H_P0FCX GF_H_P0FC0|GF_H_P0FC1|GF_H_P0FC2|GF_H_P0FC3|GF_H_P0FC4|GF_H_P0FC5
|
||
|
||
// Vertical Filter Coefficients
|
||
#define GF_V_P00C0 0x80
|
||
#define GF_V_P01C0 0x78
|
||
#define GF_V_P02C0 0x70
|
||
#define GF_V_P03C0 0x68
|
||
#define GF_V_P04C0 0x60
|
||
#define GF_V_P05C0 0x58
|
||
#define GF_V_P06C0 0x50
|
||
#define GF_V_P07C0 0x48
|
||
#define GF_V_P08C0 0x40
|
||
#define GF_V_P09C0 0x38
|
||
#define GF_V_P0AC0 0x30
|
||
#define GF_V_P0BC0 0x28
|
||
#define GF_V_P0CC0 0x20
|
||
#define GF_V_P0DC0 0x18
|
||
#define GF_V_P0EC0 0x10
|
||
#define GF_V_P0FC0 0x8
|
||
|
||
/** Hardware Cursor definition */
|
||
typedef struct _HC_COLOR
|
||
{
|
||
NvU32 foreground;
|
||
NvU32 background;
|
||
} HC_COLOR, *PHC_COLOR;
|
||
|
||
typedef struct _HC_POSITION
|
||
{
|
||
NvU32 x;
|
||
NvU32 y;
|
||
} HC_POSITION, *PHC_POSITION;
|
||
|
||
typedef struct _HC_HOTSPOT
|
||
{
|
||
NvU32 x;
|
||
NvU32 y;
|
||
} HC_HOTSPOT, *PHC_HOTSPOT;
|
||
|
||
enum
|
||
{
|
||
CD64X64,
|
||
CD32X32
|
||
};
|
||
|
||
typedef struct _HC_MASK
|
||
{
|
||
NvU32 *data;
|
||
NvU32 size;
|
||
NvU32 dimension;
|
||
} HC_MASK, *PHC_MASK;
|
||
|
||
typedef struct _DisplayTimingEntry
|
||
{
|
||
/** Horizontal Ref. Need not to be changed, set 0 for default setting */
|
||
NvU16 usHRef;
|
||
/** Vertical Ref. Need not to be changed, set 0 for default setting */
|
||
NvU16 usVRef;
|
||
/** Horizontal Sync Width, set 0 for default setting */
|
||
NvU16 usHSyncWidth;
|
||
/** Vertical Sync Width, set 0 for default setting */
|
||
NvU16 usVSyncWidth;
|
||
/** Horizontal Back Porch, set 0 for default setting */
|
||
NvU16 usHBackPorch;
|
||
/** Vertical Back Porch, set 0 for default setting */
|
||
NvU16 usVBackPorch;
|
||
/** Horizontal Active, Set same as Window Width */
|
||
NvU16 usHActive;
|
||
/** Vertical Active, Set same as Window Height */
|
||
NvU16 usVActive;
|
||
/** Horizontal Total, set 0 for default setting */
|
||
NvU16 usHTotal;
|
||
/** Vertical Total, set 0 for default setting */
|
||
NvU16 usVTotal;
|
||
/** Window Width */
|
||
NvU16 usPanelVX;
|
||
/** Window Height */
|
||
NvU16 usPanelVY;
|
||
/** Window Start X Position */
|
||
NvU16 usPosX;
|
||
/** Window Start Y Position */
|
||
NvU16 usPosY;
|
||
/** Window Sel 0-WinA (GFDX_DISPTMG_SEL_WINA), 1-WinB (GFDX_DISPTMG_SEL_WINB) */
|
||
NvU16 SelWin;
|
||
NvU16 Reserved1;
|
||
NvU16 Reserved2;
|
||
NvU16 Reserved3;
|
||
} DISPLAYTIMINGENTRY, *PDISPLAYTIMINGENTRY;
|
||
|
||
// Display Timing
|
||
|
||
#define GFDX_DISPTMG_SEL_WINA 0
|
||
#define GFDX_DISPTMG_SEL_WINB 1
|
||
|
||
/** redefine some of the constants for compatibility */
|
||
#define GFDX_ATTR_WIDTH_HEIGHT GFDX_ATTR_WH_WA
|
||
#define GFDX_ATTR_XY_POSITION GFDX_ATTR_XY_POS_WA
|
||
#define GFDX_ATTR_BPP GFDX_ATTR_BPP_WA
|
||
#define GFDX_ATTR_PIXEL_DOUBLE GFDX_ATTR_PIXEL_DBL_WA
|
||
#define GFDX_ATTR_STARTADDR GFDX_ATTR_ADDR_WA_B0
|
||
#define GFDX_ATTR_STRIDE GFDX_ATTR_STRIDE_WA_B0
|
||
|
||
/** definition of GFDX_ATTR_PIXEL_DOUBLE */
|
||
#define GFDXA_PIX_DBL_H 0x01 /* Horizontal pixel doubling on */
|
||
#define GFDXA_PIX_DBL_V 0x02 /* Vertical pixel doubling on */
|
||
|
||
/** definition of GFDX_ATTR_DOUBLE_BUF control (0,2,1,3 is same as hw) */
|
||
#define GFDXA_DB_BUF0 0x00 /* GC display buffer address is from buf0 */
|
||
#define GFDXA_DB_BUF1 0x02 /* GC display buffer address is from buf1 */
|
||
#define GFDXA_DB_HOST 0x06 /* GC display buffer address is from Host */
|
||
#define GFDXA_DB_GE 0x01 /* GC display buffer address is from GE */
|
||
#define GFDXA_DB_VI 0x03 /* GC display buffer address is from VI */
|
||
#define GFDXA_DB_EPP 0x04
|
||
#define GFDXA_DB_MPEGE 0x05
|
||
|
||
/** definition of GFDX_ATTR_ROTATE_BIT_W? */
|
||
#define GFDXA_ROTATE_BITS_0 0x00000000 // no rotation, x+,y+,startAddr = 0
|
||
#define GFDXA_ROTATE_BITS_90 0x00000500 // +90 (anti-clock), x-, y+, start= stride-3 (TL)
|
||
#define GFDXA_ROTATE_BITS_180 0x00000300 // +180(anti-clock), x-, y-, start= height*stride-3 (BR)
|
||
#define GFDXA_ROTATE_BITS_270 0x00000600 // +270(anti-clock), x+, y-, start= (height-1)*stride (BL)
|
||
|
||
/** definition of Color Key and Alpha Blending*/
|
||
#define GFDXA_BLEND_CONTROL_NOKEY_ALPHA_WEIGHT 0x00000001
|
||
|
||
#define GFDXA_BLEND_COLOR_KEY0_ENABLE 0x00000001
|
||
#define GFDXA_BLEND_COLOR_KEY1_ENABLE 0x00000002
|
||
#define GFDXA_BLEND_COLOR_KEY0_DISABLE 0x00000000
|
||
#define GFDXA_BLEND_COLOR_KEY1_DISABLE 0x00000000
|
||
#define GFDXA_BLEND_CONTROL_nWIN_ALPHA_WEIGHT 0x00000004
|
||
#define GFDXA_BLEND_CONTROL_nWIN_DEPENDENT_WEIGHT 0x00000008
|
||
|
||
/** Disable CRC capture. */
|
||
#define GFDXA_CRC_DISABLE 0x00000000
|
||
/** Wait for 1 VSYNC and capture CRC for one frame. */
|
||
#define GFDXA_CRC_WAIT_VSYNC1 0x00000001
|
||
/** Wait for 2 VSYNC and capture CRC for one frame. */
|
||
#define GFDXA_CRC_WAIT_VSYNC2 0x00000003
|
||
|
||
/** Set Direction for Rotation*/
|
||
#define GFDX_ATTR_H_DIRECTION_DECREMENT 0x00000001
|
||
#define GFDX_ATTR_H_DIRECTION_INCREMENT 0x00000000
|
||
#define GFDX_ATTR_V_DIRECTION_DECREMENT 0x00000004
|
||
#define GFDX_ATTR_V_DIRECTION_INCREMENT 0x00000000
|
||
|
||
/** definition of Palette Enable/Disable*/
|
||
#define GFDX_ATTR_PALETTE_ENABLE 0x00010000
|
||
#define GFDX_ATTR_PALETTE_DISABLE 0x00000000
|
||
#define GFDX_ATTR_DV_ENABLE 0x00100000
|
||
#define GFDX_ATTR_DV_DISABLE 0x00000000
|
||
|
||
#define GFDX_ATTR_WENC_DISABLE 0x00000000
|
||
#define GFDX_ATTR_WENC_ENABLE 0x00000001
|
||
#define GFDX_ATTR_WENC_TRIG_DISABLE 0x00000000
|
||
#define GFDX_ATTR_WENC_TRIG_ENABLE 0x00000001
|
||
#define GFDX_ATTR_WENC_TRIG_ONE_SHOT 0x00000002
|
||
|
||
/** Read CRC Check Sum */
|
||
#define GFDXA_CRC_READ_CHECK_SUM 0x00000001
|
||
|
||
/**
|
||
Sub-LCD support
|
||
*/
|
||
#define LCD_MAIN 0
|
||
#define LCD_SUB 1
|
||
#define MAX_LCD 2
|
||
|
||
/**
|
||
Start-Stop Frame support
|
||
*/
|
||
#define GFDX_MAIN_START 0x00000001
|
||
#define GFDX_MAIN_STOP 0x00000002
|
||
#define GFDX_SUB_START 0x00000003
|
||
#define GFDX_SUB_STOP 0x00000004
|
||
#define GFDX_MAIN_ONE_FRAME 0x00000001
|
||
#define GFDX_SUB_ONE_FRAME 0x00000002
|
||
|
||
#define GF_DISPLAY_NORMAL 0x00000000
|
||
#define GF_DISPLAY_PARTIAL 0x00000001
|
||
|
||
#ifdef PROJECT_SEC_G1
|
||
#define GF_DISPLAY_NTSC_V570 0x00000002
|
||
#define GF_DISPLAY_NTSC_V490 0x00000003
|
||
#define GF_DISPLAY_NTSC_V700 0x00000004
|
||
#define GF_DISPLAY_PAL 0x00000005
|
||
#endif
|
||
|
||
/**
|
||
DxEnableDisplay support
|
||
*/
|
||
#define GF_PANEL_DRV_ONOFF 0x00000100
|
||
#define GF_PANEL_DRV_SLP_WKUP 0x00000200
|
||
|
||
/**
|
||
Clock selections, profile and options
|
||
*/
|
||
#define GFDX_OSC 0x00000001
|
||
#define GFDX_ROSC 0x00000002
|
||
#define GFDX_PLL1 0x00000003
|
||
#define GFDX_PLL_QUERY 0x80000000
|
||
#define GFDX_POWER 0x00010000
|
||
#define GFDX_PERFORMANCE 0x00020000
|
||
|
||
/**
|
||
Option for GFDxVSync: Waits until vertical blank (default).
|
||
*/
|
||
#define GFDX_VSYNC_WAIT 0x0000
|
||
/**
|
||
Option for GFDxVSync: Checks and immediately returns vertical blank status.
|
||
Returns GF_SUCCESS if in vertical blank, else returns GF_ERROR.
|
||
*/
|
||
#define GFDX_VSYNC_CHECK 0x0001
|
||
/**
|
||
Option for GFDxVSync: Puts Wait token in the command FIFO and the CPU returns
|
||
immediately. Uses FRAME_END interrupt bit.
|
||
*/
|
||
#define GFDX_VSYNC_HW_WAIT 0x0002
|
||
/**
|
||
Option for GFDxVSync: Raise and wait in the command fifo for VBLANK.
|
||
*/
|
||
#define GFDX_VBLANK_HW_WAIT 0x0003
|
||
/**
|
||
Option for GFDxVSync: Raise and wait in the command fifo for VPULSE3.
|
||
*/
|
||
#define GFDX_VPULSE3_HW_WAIT 0x0004
|
||
|
||
/** Dx Hardware has multiple windows (some registers are replicated per
|
||
window - the window must be exlicitly selected to write to the correct
|
||
register in the window). Use this enum to select which window
|
||
to write to for APIs that support this - window selection is mostly
|
||
done through the attribute name, eg: <ATTRNAME>_WA, <ATTRNAME>_WB, etc.
|
||
*/
|
||
typedef enum _GFDXWINDOWSELECT
|
||
{
|
||
DX_WINDOW_SELECT_NONE = 0,
|
||
DX_WINDOW_SELECT_NORMAL = 1, /* all windows */
|
||
DX_WINDOW_SELECT_A = 2,
|
||
DX_WINDOW_SELECT_B = 4,
|
||
DX_WINDOW_SELECT_C = 8
|
||
} GFDXWINDOWSELECT;
|
||
|
||
/** Color Space Conversion coefficients. Use GFDxSetCSCCoeff() and
|
||
GFDxGetCSCCoeff() to write/read the coefficients to/from hardware.
|
||
*/
|
||
typedef struct _GFDXCSCCOEFF
|
||
{
|
||
NvU32 YOF;
|
||
NvU32 KYRGB;
|
||
NvU32 KUR;
|
||
NvU32 KVR;
|
||
NvU32 KUG;
|
||
NvU32 KVG;
|
||
NvU32 KUB;
|
||
NvU32 KVB;
|
||
} GFDXCSCCOEF;
|
||
|
||
typedef struct _DXSCRIPTCMD
|
||
{
|
||
NvU32 ScriptCmdType; /** Script Command */
|
||
NvU32 DataBurstCount; /** Burst count 0-255, not Valid for GFSCMD */
|
||
NvU32 PanelDriverCmd; /** Valid Only if ScriptCmdType = GFPDRV_CMD */
|
||
NvU32 *PanelIndexData; /** Data pointer */
|
||
NvU32 GFData; /** Valid only if ScriptCmdType is GFSCMD */
|
||
NvU32 reserved1;
|
||
} DXSCRIPTCMD, *PDXSCRIPTCMD;
|
||
|
||
typedef struct _GFLCDTABLE {
|
||
/** For usage see GFDxSetDisplay()*/
|
||
GF_RETTYPE (* DxSetDisplay)(GFDxHandle DxHandle, int lcdSel, NvU32 ulStartAddr,
|
||
NvU32 ulStride, unsigned bpp);
|
||
/** For usage see GFDxEnableDisplay()*/
|
||
GF_RETTYPE (* DxEnableDisplay)(GFDxHandle DxHandle, int lcdSel, unsigned bOn);
|
||
/** For usage see GFDxSetAttribute()*/
|
||
GF_RETTYPE (* DxSetAttribute)(GFDxHandle DxHandle, int lcdSel, unsigned aid, NvU32 attr);
|
||
/** For usage see GFDxGetAttribute()*/
|
||
GF_RETTYPE (* DxGetAttribute)(GFDxHandle DxHandle, int lcdSel, unsigned aid, NvU32 *attr);
|
||
/** For usage see GFDxSetAttributeWithCS()*/
|
||
GF_RETTYPE (* DxSetAttributeWithCS)(GFDxHandle DxHandle, int lcdSel, unsigned aid, NvU32 attr);
|
||
/** For usage see GFDxGetAttributeWithCS()*/
|
||
GF_RETTYPE (* DxGetAttributeWithCS)(GFDxHandle DxHandle, int lcdSel, unsigned aid, NvU32 *attr);
|
||
/** For usage see GFDxRotate()*/
|
||
GF_RETTYPE (* DxRotate)(GFDxHandle DxHandle, int lcdSel, unsigned nRotate, NvU32 ulStartAddr);
|
||
/** For usage see GFDxErase()*/
|
||
GF_RETTYPE (* DxErase)(GFDxHandle DxHandle, int lcdSel, NvU32 ulStartAddr, NvU32 color);
|
||
/** For usage see GFDxSwitchLCD()*/
|
||
GF_RETTYPE (* DxSwitchLCD)(GFDxHandle DxHandle, int lcdSel, int Option);
|
||
/** LCD Configurations */
|
||
void * pLcdConfig;
|
||
/** For usage see GFDxScriptCmd()*/
|
||
GF_RETTYPE (* DxScriptCmd)(GFDxHandle DxHandle, int lcdSel, PDXSCRIPTCMD pDxScriptCmd, NvU32 Option);
|
||
/** For usage see GFDxScriptCmdWithCS()*/
|
||
GF_RETTYPE (* DxScriptCmdWithCS)(GFDxHandle DxHandle, int lcdSel, PDXSCRIPTCMD pDxScriptCmd, NvU32 Option);
|
||
/** For usage see GFDxDisplayTiming()*/
|
||
GF_RETTYPE (* DxDisplayTiming)(GFDxHandle DxHandle, int lcdSel, PDISPLAYTIMINGENTRY pDxTiming, NvU32 Option);
|
||
/** For usage see GFDxDisplayTimingWithCS()*/
|
||
GF_RETTYPE (* DxDisplayTimingWithCS)(GFDxHandle DxHandle, int lcdSel, PDISPLAYTIMINGENTRY pDxTiming, NvU32 Option);
|
||
/** For usage see GFDxSetDisplayEx()*/
|
||
GF_RETTYPE (* DxSetDisplayEx)(GFDxHandle DxHandle, int lcdSel, NvU32 ulStartAddr,
|
||
NvU32 ulStride, unsigned bpp, unsigned bOn);
|
||
} GFLCDTABLE;
|
||
|
||
/* Publicly exposed DX API function table */
|
||
typedef struct _GFDXTABLE
|
||
{
|
||
/** For usage see GFDxGetProperty()*/
|
||
GF_RETTYPE (* DxGetProperty)(GFDxHandle DxHandle, PGFDXPROPERTY pDxProp);
|
||
/** For usage see GFDxVSync()*/
|
||
GF_RETTYPE (* DxVSync)(GFDxHandle DxHandle, NvU16 option);
|
||
/** For usage see GFDxSetDisplayWithCS()*/
|
||
GF_RETTYPE (* DxSetDisplayWithCS)(GFDxHandle DxHandle, int lcdSel,
|
||
NvU32 ulStartAddr, NvU32 ulStride, unsigned bpp);
|
||
/** For usage see GFDxEnableDisplayWithCS()*/
|
||
GF_RETTYPE (* DxEnableDisplayWithCS)(GFDxHandle DxHandle, int lcdSel,
|
||
unsigned bOn);
|
||
// Removed to make the WinCE dll binary compatible with SC4 dll.
|
||
// GF_RETTYPE (* DxHSync)(GFDxHandle DxHandle, NvU16 option);
|
||
|
||
/** For per LCD functions. ()*/
|
||
GFLCDTABLE Lcd[MAX_LCD];
|
||
/** For usage see GFDxEraseWithCS()*/
|
||
GF_RETTYPE (* DxEraseWithCS)(GFDxHandle DxHandle, int lcdSel,
|
||
NvU32 ulStartAddr, NvU32 color);
|
||
/** For usage see GFDxSetCSCCoeff()*/
|
||
GF_RETTYPE (* DxSetCSCCoeff)( GFDxHandle DxHandle, GFDXWINDOWSELECT window,
|
||
GFDXCSCCOEF *coef );
|
||
/** For usage see GFDxGetCSCCoeff()*/
|
||
GF_RETTYPE (* DxGetCSCCoeff)( GFDxHandle DxHandle, GFDXWINDOWSELECT window,
|
||
GFDXCSCCOEF *coef );
|
||
/** For usage see GFDxVSyncWithCS()*/
|
||
GF_RETTYPE (* DxVSyncWithCS)(GFDxHandle DxHandle, NvU16 option);
|
||
/** For usage see GFDxSetCSCCoeffWithCS()*/
|
||
GF_RETTYPE (* DxSetCSCCoeffWithCS)( GFDxHandle DxHandle, GFDXWINDOWSELECT window,
|
||
GFDXCSCCOEF *coef );
|
||
/** For usage see GFDxGetCSCCoeffWithCS()*/
|
||
GF_RETTYPE (* DxGetCSCCoeffWithCS)( GFDxHandle DxHandle, GFDXWINDOWSELECT window,
|
||
GFDXCSCCOEF *coef );
|
||
/** For usage see GFDxSetDisplayExWithCS()*/
|
||
GF_RETTYPE (* DxSetDisplayExWithCS)(GFDxHandle DxHandle, int lcdSel,
|
||
NvU32 ulStartAddr, NvU32 ulStride, unsigned bpp, unsigned bOn);
|
||
} GFDXTABLE, *PGFDXTABLE;
|
||
|
||
/** Filter coefficients */
|
||
typedef struct GFDxHorizontalFilter_t
|
||
{
|
||
NvU32 filter[16];
|
||
} GFDxHorizontalFilter;
|
||
|
||
typedef struct GFDxVerticalFilter_t
|
||
{
|
||
NvU32 filter[16];
|
||
} GFDxVerticalFilter;
|
||
|
||
/**
|
||
Typesafe function for opening Dx component.
|
||
This function is implicitly called by the resource manager (GFRm) in response
|
||
to an application<6F>s call to GFRmComponentGet() for the GFDxAPI
|
||
component. It is not supposed to be called by an application. It is included
|
||
here only for the purpose of GFDxAPI source code customization.
|
||
|
||
@param hrm (GFRmHandle) Handle to Rm component.
|
||
@param phDx (GFDxHandle *) Handle to Dx component.
|
||
@param state (GF_STATE_TYPE)
|
||
@param hCh (GFRmChHandle) Handle to Channel.
|
||
|
||
@retval #GF_SUCCESS Success
|
||
@retval #GF_ERROR Some error occured
|
||
*/
|
||
GF_RETTYPE GFDxOpen(GFRmHandle hRm, GFDxHandle *phDx,
|
||
GF_STATE_TYPE state, GFRmChHandle hCh);
|
||
|
||
/**
|
||
Typesafe function for closing Dx component.
|
||
This function is implicitly called by the resource manager (GFRm) in response
|
||
to an application<6F>s call to GFRmComponentGet() for the GFDxAPI
|
||
component. It is included here only for the purpose of GFDxAPI source code
|
||
customization.
|
||
|
||
@param phDx (GFDxHandle *) Handle to Dx component.
|
||
|
||
@retval #GF_SUCCESS Success
|
||
@retval #GF_ERROR Some error occured
|
||
*
|
||
*/
|
||
void GFDxClose(GFDxHandle *phDx);
|
||
|
||
/**
|
||
This funtion returns the fixed properties of the display hardware.
|
||
|
||
@param DxHandle (GFDxHandle) Handle to Dx Component
|
||
@param pDxProp (PGFDXPROPERTY) See #GFDXPROPERTY
|
||
|
||
@retval #GF_SUCCESS Success
|
||
@retval #GF_ERROR Some error occured
|
||
*/
|
||
#define GFDxGetProperty( handle, pDxProp ) \
|
||
((PGFDXTABLE)handle)->DxGetProperty( handle, pDxProp )
|
||
|
||
/**
|
||
This functions waits for a vertical sync and returns to the caller.
|
||
IMPORTANT NOTE: This function is now identical to the WithCS version
|
||
of it (i.e. it has Critical Sections and is multi-thread safe) as the
|
||
WithCS version is being phased out.
|
||
|
||
@param DxHandle (GFDxHandle) Handle to Dx Component.
|
||
@param option (NvU16) Search for Option for GFDxVSync for more info.
|
||
|
||
@retval #GF_SUCCESS Success
|
||
@retval #GF_ERROR Some error occured
|
||
*/
|
||
#define GFDxVSync(handle, option) \
|
||
((PGFDXTABLE)handle)->DxVSync( handle, option )
|
||
|
||
/**
|
||
IMPORTANT NOTE: This function is being phased out. The critical
|
||
section functionality now exists in GFDxVSync().
|
||
*/
|
||
#define GFDxVSyncWithCS(handle, option) \
|
||
((PGFDXTABLE)handle)->DxVSyncWithCS( handle, option )
|
||
|
||
/**
|
||
IMPORTANT NOTE: This function is not available.
|
||
*/
|
||
#define GFDxHSync(handle, option) \
|
||
((PGFDXTABLE)handle)->DxHSync( handle, option )
|
||
|
||
/**
|
||
This function initializes the main LCD or sub-LCD display.
|
||
IMPORTANT NOTE: This function is now identical to the WithCS version
|
||
of it (i.e. it has Critical Sections and is multi-thread safe) as the
|
||
WithCS version is being phased out.
|
||
|
||
@param Handle (DxHandle) Handle to Dx Component.
|
||
@param lcdSel (int) 0 for LCD_MAIN.
|
||
1 for LCD_SUB.
|
||
@param ulStartAddr (NvU32) display start address for main or sub-LCD (should be set to 0).
|
||
GFDxSetAttribute() should be called to set the display start
|
||
address for the main LCD or sub-LCD.
|
||
@param ulStride (NvU32) Default stride if 0; otherwise use the passed value.
|
||
GFDxSetAttribute() should be called to set the display stride
|
||
for the main LCD or sub-LCD.
|
||
@param bpp (unsigned) Default should be 16 bits/pixel for main LCD or sub-LCD.
|
||
GFDxSetAttribute() should be called to set the display bpp for
|
||
the main LCD or sub-LCD.
|
||
|
||
@retval #GF_SUCCESS Success
|
||
@retval #GF_ERROR Some error occured
|
||
*/
|
||
#define GFDxSetDisplay( handle, lcdSel, ulStartAddr, ulStride, bpp ) \
|
||
((PGFDXTABLE)handle)->Lcd[lcdSel].DxSetDisplay( handle, lcdSel, ulStartAddr, ulStride, bpp )
|
||
|
||
/**
|
||
IMPORTANT NOTE: This function is being phased out. The critical
|
||
section functionality now exists in GFDxSetDisplay().
|
||
*/
|
||
#define GFDxSetDisplayWithCS( handle, lcdSel, ulStartAddr, ulStride, bpp ) \
|
||
((PGFDXTABLE)handle)->DxSetDisplayWithCS( handle, lcdSel, ulStartAddr, \
|
||
ulStride, bpp )
|
||
|
||
/**
|
||
This function initializes the main LCD or sub-LCD display.
|
||
IMPORTANT NOTE: This function extends GFDxSetDisplay() function by adding an option to enable/disable
|
||
the LCD display.
|
||
|
||
@param Handle (DxHandle) Handle to Dx Component.
|
||
@param lcdSel (int) 0 for LCD_MAIN.
|
||
1 for LCD_SUB.
|
||
@param ulStartAddr (NvU32) display start address for main or sub-LCD (should be set to 0).
|
||
GFDxSetAttribute() should be called to set the display start
|
||
address for the main LCD or sub-LCD.
|
||
@param ulStride (NvU32) Default stride if 0; otherwise use the passed value.
|
||
GFDxSetAttribute() should be called to set the display stride
|
||
for the main LCD or sub-LCD.
|
||
@param bpp (unsigned) Default should be 16 bits/pixel for main LCD or sub-LCD.
|
||
GFDxSetAttribute() should be called to set the display bpp for
|
||
the main LCD or sub-LCD.
|
||
@param bOn (unsigned) 1 to Enable Display,
|
||
0 to disable Display.
|
||
|
||
@retval #GF_SUCCESS Success
|
||
@retval #GF_ERROR Some error occured
|
||
*/
|
||
#define GFDxSetDisplayEx( handle, lcdSel, ulStartAddr, ulStride, bpp, bOn ) \
|
||
((PGFDXTABLE)handle)->Lcd[lcdSel].DxSetDisplayEx( handle, lcdSel, ulStartAddr, ulStride, bpp, bOn )
|
||
|
||
/**
|
||
IMPORTANT NOTE: This function is being phased out. The critical
|
||
section functionality now exists in GFDxSetDisplayEx().
|
||
*/
|
||
#define GFDxSetDisplayExWithCS( handle, lcdSel, ulStartAddr, ulStride, bpp, bOn ) \
|
||
((PGFDXTABLE)handle)->DxSetDisplayExWithCS( handle, lcdSel, ulStartAddr, \
|
||
ulStride, bpp, On)
|
||
|
||
/**
|
||
This function enables/disables LCD display with proper power sequencing.
|
||
IMPORTANT NOTE: This function is now identical to the WithCS version
|
||
of it (i.e. it has Critical Sections and is multi-thread safe) as the
|
||
WithCS version is being phased out.
|
||
|
||
@param Handle (DxHandle) Handle to Dx Component.
|
||
@param lcdSel (int) 0 for LCD_MAIN.
|
||
1 for LCD_SUB.
|
||
@param bOn (unsigned) Bit0: 1 to Enable Display,
|
||
0 to disable Display.
|
||
Also Option for Panel Driver On/Off
|
||
|
||
@retval #GF_SUCCESS Success
|
||
@retval #GF_ERROR Some error occured
|
||
*/
|
||
#define GFDxEnableDisplay( handle, lcdSel, bOn ) \
|
||
((PGFDXTABLE)handle)->Lcd[lcdSel].DxEnableDisplay( handle, lcdSel, bOn )
|
||
|
||
/**
|
||
IMPORTANT NOTE: This function is being phased out. The critical
|
||
section functionality now exists in GFDxEnableDisplay().
|
||
*/
|
||
#define GFDxEnableDisplayWithCS( handle, lcdSel, bOn ) \
|
||
((PGFDXTABLE)handle)->DxEnableDisplayWithCS( handle, lcdSel, bOn )
|
||
|
||
/**
|
||
GFDxSetAttribute() sets the display attributes for a main panel or
|
||
subpanel. All the GFDxAPI attributes should be set after the
|
||
GFDxSetDisplay()
|
||
IMPORTANT NOTE: This function is now identical to the WithCS version
|
||
of it (i.e. it has Critical Sections and is multi-thread safe) as the
|
||
WithCS version is being phased out.
|
||
|
||
@param DxHandle (GFDxHandle) Handle to Dx Component.
|
||
@param lcdSel (int) 0 for LCD_MAIN.
|
||
1 for LCD_SUB.
|
||
@param aid (unsigned) Attribute IDs. See #GFDXATTRIBUTES Enumeration Type
|
||
@param attr (NvU32) Attribute value for main LCD or sub-LCD. Should be
|
||
written with attribute ID in aid.
|
||
|
||
@retval #GF_SUCCESS Success
|
||
@retval #GF_ERROR Some error occured
|
||
*/
|
||
#define GFDxSetAttribute( handle, lcdSel, aid, attr) \
|
||
((PGFDXTABLE)handle)->Lcd[lcdSel].DxSetAttribute( handle, lcdSel, aid, attr )
|
||
|
||
/**
|
||
Execute script command from DxApiTable. Send cmd/data to panel.
|
||
IMPORTANT NOTE: This function is now identical to the WithCS version
|
||
of it (i.e. it has Critical Sections and is multi-thread safe) as the
|
||
WithCS version is being phased out.
|
||
|
||
@param DxHandle (GFDxHandle) Handle to Dx Component.
|
||
@param lcdSel (int) 0 for LCD_MAIN.
|
||
1 for LCD_SUB.
|
||
@param ScriptCmdType (PDXSCRIPTCMD) Script Command
|
||
@param Option (NvU32) Reserved, not used.
|
||
|
||
@retval #GF_SUCCESS Success
|
||
@retval #GF_ERROR Some error occured
|
||
*/
|
||
#define GFDxScriptCmd( handle, lcdSel, pDxScriptCmd, Option) \
|
||
((PGFDXTABLE)handle)->Lcd[lcdSel].DxScriptCmd( handle, lcdSel, pDxScriptCmd, Option )
|
||
|
||
/**
|
||
IMPORTANT NOTE: This function is being phased out. The critical
|
||
section functionality now exists in GFDxScriptCmd().
|
||
*/
|
||
#define GFDxScriptCmdWithCS( handle, lcdSel, pDxScriptCmd, Option) \
|
||
((PGFDXTABLE)handle)->Lcd[lcdSel].DxScriptCmdWithCS( handle, lcdSel, pDxScriptCmd, Option )
|
||
|
||
/** Sets the timing registers.
|
||
IMPORTANT NOTE: This function is now identical to the WithCS version
|
||
of it (i.e. it has Critical Sections and is multi-thread safe) as the
|
||
WithCS version is being phased out.
|
||
|
||
@param DxHandle (GFDxHandle) Handle to Dx Component.
|
||
@param lcdSel (int) 0 for LCD_MAIN.
|
||
1 for LCD_SUB.
|
||
@param pDxTiming (PDISPLAYTIMINGENTRY) See #PDISPLAYTIMINGENTRY.
|
||
@param Option (NvU32) GF_DISPLAY_PARTIAL or GF_DISPLAY_NORMAL.
|
||
|
||
@retval #GF_SUCCESS Success
|
||
@retval #GF_ERROR Some error occured
|
||
*/
|
||
#define GFDxDisplayTiming( handle, lcdSel, pDxTiming, Option) \
|
||
((PGFDXTABLE)handle)->Lcd[lcdSel].DxDisplayTiming( handle, lcdSel, pDxTiming, Option )
|
||
|
||
/**
|
||
IMPORTANT NOTE: This function is being phased out. The critical
|
||
section functionality now exists in GFDxDisplayTiming().
|
||
*/
|
||
#define GFDxDisplayTimingWithCS( handle, lcdSel, pDxTiming, Option) \
|
||
((PGFDXTABLE)handle)->Lcd[lcdSel].DxDisplayTimingWithCS( handle, lcdSel, pDxTiming, Option )
|
||
|
||
/**
|
||
This function returns the bit depth, the destination stride, the start address,
|
||
the associated surface of the display buffer, or the graphics command
|
||
execution control. The location of the returned attribute value is pointed to by
|
||
attr.
|
||
IMPORTANT NOTE: This function is now identical to the WithCS version
|
||
of it (i.e. it has Critical Sections and is multi-thread safe) as the
|
||
WithCS version is being phased out.
|
||
|
||
@param DxHandle (GFDxHandle) Handle to Dx Component.
|
||
@param lcdSel (int) 0 for LCD_MAIN.
|
||
1 for LCD_SUB.
|
||
@param aid (unsigned) Attribute ID. see #GFDXATTRIBUTES.
|
||
@param attr (NvU32 *) pointer to attribute value.
|
||
|
||
@retval #GF_SUCCESS Success
|
||
@retval #GF_ERROR Some error occured
|
||
*/
|
||
#define GFDxGetAttribute( handle, lcdSel, aid, pAttr) \
|
||
((PGFDXTABLE)handle)->Lcd[lcdSel].DxGetAttribute( handle, lcdSel, aid, pAttr )
|
||
|
||
/**
|
||
IMPORTANT NOTE: This function is being phased out. The critical
|
||
section functionality now exists in GFDxSetAttribute().
|
||
*/
|
||
#define GFDxSetAttributeWithCS( handle, lcdSel, aid, attr) \
|
||
((PGFDXTABLE)handle)->Lcd[lcdSel].DxSetAttributeWithCS( handle, lcdSel, aid, attr )
|
||
|
||
/**
|
||
IMPORTANT NOTE: This function is being phased out. The critical
|
||
section functionality now exists in GFDxGetAttribute().
|
||
*/
|
||
#define GFDxGetAttributeWithCS( handle, lcdSel, aid, pAttr) \
|
||
((PGFDXTABLE)handle)->Lcd[lcdSel].DxGetAttributeWithCS( handle, lcdSel, aid, pAttr )
|
||
|
||
/**
|
||
IMPORTANT NOTE: this function is not available.
|
||
*/
|
||
#define GFDxRotate( handle, lcdSel, nRotate, ulStartAddr ) \
|
||
((PGFDXTABLE)handle)->Lcd[lcdSel].DxRotate( handle, lcdSel, nRotate, ulStartAddr )
|
||
|
||
/**
|
||
This function clears the main or subdisplay screen with the given color. It also
|
||
clears the display buffer of the main or subpanel window. Window A buffer 0
|
||
is used as a display buffer.
|
||
IMPORTANT NOTE: This function is now identical to the WithCS version
|
||
of it (i.e. it has Critical Sections and is multi-thread safe) as the
|
||
WithCS version is being phased out.
|
||
|
||
@param DxHandle (GFDxHandle) Handle to Dx Component.
|
||
@param lcdSel (int) 0 for LCD_MAIN.
|
||
1 for LCD_SUB.
|
||
@param ulStartAddr (NvU32) Start Address. (The offset in bytes of the
|
||
display frame buffer.)
|
||
@param color (NvU32) Clear screen with this color. The 32-bit value
|
||
has a 16-bit color duplicated in the upper and
|
||
lower parts.
|
||
|
||
@retval #GF_SUCCESS Success
|
||
@retval #GF_ERROR Some error occured
|
||
*/
|
||
#define GFDxErase( handle, lcdSel, ulStartAddr, color ) \
|
||
((PGFDXTABLE)handle)->Lcd[lcdSel].DxErase( handle, lcdSel, ulStartAddr, color )
|
||
|
||
/**
|
||
IMPORTANT NOTE: This function is being phased out. The critical
|
||
section functionality now exists in GFDxErase().
|
||
*/
|
||
#define GFDxEraseWithCS( handle, lcdSel, ulStartAddr, color ) \
|
||
((PGFDXTABLE)handle)->DxEraseWithCS( handle, lcdSel, ulStartAddr, color )
|
||
|
||
/**
|
||
This function enables swithcing between the main LCD and sub-LCD.
|
||
IMPORTANT NOTE: This function has critical sections and is thread-safe.
|
||
|
||
@param DxHandle (GFDxHandle) Handle to Dx Component.
|
||
@param lcdSel (int) 0 for LCD_MAIN.
|
||
1 for LCD_SUB.
|
||
@param Option (NvU32) 0 for switch (Must be set to 0)
|
||
|
||
@retval #GF_SUCCESS Success
|
||
@retval #GF_ERROR Some error occured
|
||
*/
|
||
#define GFDxSwitchLCD( handle, lcdSel, Option ) \
|
||
((PGFDXTABLE)handle)->Lcd[lcdSel].DxSwitchLCD( handle, lcdSel, Option )
|
||
|
||
/**
|
||
This function sets the hardware Color Space Conversion (CSC) Coefficients.
|
||
IMPORTANT NOTE: This function is now identical to the WithCS version
|
||
of it (i.e. it has Critical Sections and is multi-thread safe) as the
|
||
WithCS version is being phased out.
|
||
|
||
@param DxHandle (GFDxHandle) Handle to Dx Component.
|
||
@param window (GFDXWINDOWSELECT) Controller window. see #GFDXWINDOWSELECT.
|
||
@param coef (GFDXCSCCOEF *) CSC coefficients. see #GFDXCSCCOEF.
|
||
|
||
@retval #GF_SUCCESS Success
|
||
@retval #GF_ERROR Some error occured
|
||
*/
|
||
#define GFDxSetCSCCoeff( handle, window, coef ) \
|
||
((PGFDXTABLE)handle)->DxSetCSCCoeff( handle, window, coef )
|
||
|
||
/**
|
||
This function gets the hardware Color Space Conversion (CSC) Coefficients.
|
||
IMPORTANT NOTE: This function is now identical to the WithCS version
|
||
of it (i.e. it has Critical Sections and is multi-thread safe) as the
|
||
WithCS version is being phased out.
|
||
|
||
@param DxHandle (GFDxHandle) Handle to Dx Component.
|
||
@param window (GFDXWINDOWSELECT) Controller window. see #GFDXWINDOWSELECT.
|
||
@param coef (GFDXCSCCOEF *) CSC coefficients. see #GFDXCSCCOEF.
|
||
|
||
@retval #GF_SUCCESS Success
|
||
@retval #GF_ERROR Some error occured
|
||
*/
|
||
#define GFDxGetCSCCoeff( handle, window, coef ) \
|
||
((PGFDXTABLE)handle)->DxGetCSCCoeff( handle, window, coef )
|
||
|
||
/**
|
||
IMPORTANT NOTE: This function is being phased out. The critical
|
||
section functionality now exists in GFDxSetCSCCoeff().
|
||
*/
|
||
#define GFDxSetCSCCoeffWithCS( handle, window, coef ) \
|
||
((PGFDXTABLE)handle)->DxSetCSCCoeffWithCS( handle, window, coef )
|
||
|
||
/**
|
||
IMPORTANT NOTE: This function is being phased out. The critical
|
||
section functionality now exists in GFDxGetCSCCoeff().
|
||
*/
|
||
#define GFDxGetCSCCoeffWithCS( handle, window, coef ) \
|
||
((PGFDXTABLE)handle)->DxGetCSCCoeffWithCS( handle, window, coef )
|
||
/*@}*/
|
||
|
||
/** GFDxSetDefaultPanelMode - sets the default mode for multi-mode panels.
|
||
|
||
@param handle A handle to a Dx instance
|
||
@param mode The panel mode
|
||
|
||
Some panels support multiple modes. To support mode switching, the
|
||
default panel mode must be known.
|
||
*/
|
||
GF_RETTYPE
|
||
GFDxSetDefaultPanelMode( GFDxHandle handle, NvU32 mode );
|
||
|
||
/** GFDxSwitchPanelMode - switch from the current mode to a new mode.
|
||
|
||
@param handle A handle to a Dx instance
|
||
@param mode The panel mode
|
||
|
||
This switches from the current mode to a new mode. This calls a display
|
||
script with the name "SwitchMode_<x>_to_<y>" where x is the current mode
|
||
and y is the new mode.
|
||
*/
|
||
GF_RETTYPE
|
||
GFDxSwitchPanelMode( GFDxHandle handle, NvU32 mode );
|
||
|
||
/** GFDxSPIRegEnable - enable register reads and writes over SPI.
|
||
|
||
@param handle A handle to a Dx instance
|
||
@param enable Either enable or disable register read/writes.
|
||
|
||
Enabling SPI register reads/writes may change the pin mapping which
|
||
may prevent the rest of the display api from behaving properly (pixel
|
||
data may no longer output to the panel). Disabling will restore
|
||
the pin mapping.
|
||
*/
|
||
void
|
||
GFDxSpiRegEnable( GFDxHandle handle, NvBool enable );
|
||
|
||
/** GFDxSPIRegWrite - write a 16 bit register over SPI.
|
||
|
||
@param handle A handle to a Dx instance
|
||
@param address The address to write
|
||
@param data The data to write
|
||
*/
|
||
GF_RETTYPE
|
||
GFDxSpiRegWrite( GFDxHandle handle, NvU16 address, NvU16 data );
|
||
|
||
/** GFDxSPIRegRead - read a 16 bit register over SPI.
|
||
|
||
@param handle A handle to a Dx instance
|
||
@param address The address to read from
|
||
@param data The data to read (out param)
|
||
*/
|
||
GF_RETTYPE
|
||
GFDxSpiRegRead( GFDxHandle handle, NvU16 address, NvU16 *data );
|
||
|
||
/** GFDxSpiPixelInit - send init sequence to the panel and setup the pixel
|
||
write hardware.
|
||
|
||
@param handle A handle to a Dx instance
|
||
@param seq_data_a The first 32 bits of init data
|
||
@param seq_data_b The second 32 bits of init data
|
||
@param seq_data_c The third 32 bits of init data
|
||
@param seq_data_d The fourth 32 bits of init data
|
||
|
||
Note that this only support SPI16 mode, msb2lsb data ordering.
|
||
|
||
Some panels may need the init sequence before every frame, in which
|
||
case, this should always be called before GFDxSpiPixelWrite().
|
||
*/
|
||
GF_RETTYPE
|
||
GFDxSpiPixelInit( GFDxHandle handle, NvU32 seq_data_a,
|
||
NvU32 seq_data_b, NvU32 seq_data_c, NvU32 seq_data_d );
|
||
|
||
/** GFDxSpiPixelWrite - writes the given pixel to the panel over SPI.
|
||
|
||
@param handle A handle to a Dx instance
|
||
@param pixel The pixels to write
|
||
*/
|
||
GF_RETTYPE
|
||
GFDxSpiPixelWrite( GFDxHandle handle, NvUPtr pixels );
|
||
|
||
/** GFDxSpiScript - send commands to the spi hardware via an in-memory script.
|
||
|
||
@param handle A handle to a Dx instance
|
||
@param script The script to execute
|
||
*/
|
||
GF_RETTYPE
|
||
GFDxSpiScript( GFDxHandle handle, NvU32 *script );
|
||
|
||
/** GFDxSetPixelClock - sets the pixel clock divider in half step increments.
|
||
|
||
@param handle A handle to the Dx instance
|
||
@param divider The pixel clock divider (actually shift clock - pixel clock
|
||
will be the same as shift clock)
|
||
|
||
Note: the divider is in half step increments: 1 = 1, 2 = 1.5, 3 = 2, etc.
|
||
*/
|
||
GF_RETTYPE
|
||
GFDxSetPixelClock( GFDxHandle handle, NvU32 divider );
|
||
|
||
/** GFDxGetPixelClock - gets the current shift clock divider value.
|
||
|
||
@param handle A handle to the Dx instance
|
||
@param divider The pixel clock divider (actually shift clock - pixel clock
|
||
will be the same as shift clock)
|
||
|
||
*/
|
||
GF_RETTYPE
|
||
GFDxGetPixelClock( GFDxHandle handle, NvU32 *divider );
|
||
|
||
/** GFDxSetFilter - sets the window filtering coefficients.
|
||
|
||
@param handle A handle to the Dx instance
|
||
@param window The target window for the new coefficients
|
||
@param hfilter The horizontal filtering coefficients
|
||
@param vfilter The vertical filtering coefficients
|
||
|
||
Window A does NOT support filtering.
|
||
Window C only supports horizontal filtering (the vfilter param must be
|
||
null)
|
||
Window B supports both h and v filtering
|
||
|
||
Passing null to both h and v filter will disabling filtering.
|
||
|
||
DX_WINDOW_SELECT_NONE and DX_WINDOW_SELECT_NORMAL should not be used.
|
||
*/
|
||
GF_RETTYPE
|
||
GFDxSetFilter( GFDxHandle handle, GFDXWINDOWSELECT window,
|
||
GFDxHorizontalFilter *hfilter, GFDxVerticalFilter *vfilter );
|
||
|
||
#ifdef PROJECT_SEC_G1
|
||
/** GFDxSetFilter - sets the clock and timing to support focus TV encoder.
|
||
|
||
@param handle A handle to the Dx instance
|
||
@param option The Normal/NTSC/PAL mode to set
|
||
*/
|
||
GF_RETTYPE
|
||
GFDxSetMode( GFDxHandle handle, NvU32 option );
|
||
#endif
|
||
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|
||
|
||
/** @page pageDxAppNotes DxAPI Application Notes
|
||
|
||
@section pageDxAppNotes1 Todo
|
||
|
||
*/
|
||
|
||
#endif /* GF_DX_H */
|