📄 escape.h
字号:
/*
* $Workfile: escape.h $
* $Revision: 2 $
* $Date: 4/07/00 9:11a $
* $Modtime: 4/07/00 9:02a $
* $Author: Sarma $
*
* DESCRIPTION:
* National constants for driver escapes
*
* Copyright (c) 1998 National Semiconductor Corporation.
* All Rights Reserved.
*
* This software is the confidential and proprietary information of National
* Semiconductor Corporation. ("Confidential Information").
* You shall not disclose such Confidential Information and shall use it only
* in accordance with the terms of the license agreement you entered into
* with National Semiconductor Corporation.
* This code is supplied as is.
*
*/
/*
*$Log: /CE/Platform/Nsc/Drivers/Video/gxvideo/ddraw/escape.h $
*
* 2 4/07/00 9:11a Sarma
* Removed Cyrix Corporation from the legal/confidentail information. Also
* added for files not containing this info.
*
*$History: escape.h $
*
* ***************** Version 2 *****************
* User: Sarma Date: 4/07/00 Time: 9:11a
* Updated in $/CE/Platform/Nsc/Drivers/Video/gxvideo/ddraw
* Removed Cyrix Corporation from the legal/confidentail information. Also
* added for files not containing this info.
*
*/
#ifdef DD_SUPPORT
#pragma pack(4)
// DRIVER ESCAPE FUNCTIONS *************************************************
// FUNCTION IDS PASSED TO CONTROL
#define ESC_QUERYESCSUPPORT 8
#define ESC_MOUSETRAILS 39
#define ESC_CYRIX_DRIVER_VERSION 101
// Returns driver version data
//
// lpInData = NULL
// lpOutData = (long) driver version #
// (long) minivdd version #
// (long) 0
// (char[]) version string
#define ESC_CYRIXDRVCTL 100
// Entrypoint to driver control functions.
// Specific function id is found in the first long of lpInData.
//
// lpInData = (long) function_id
// < function specific data - see below >
// lpOutData = < function specific data - see below >
// FUNCTION IDS IMBEDDED IN THE INPUT DATA OF ESC_CYRIXDRVCTL ENTRYPOINT.
// Each id is stored in the first long of lpInData when ESC_CYRIXDRVCTL
// is called. Thus input data for the specific function starts at lpInData[4].
//
#define ESC_CYRIX_INQUIRE_PROFILE_VALID 0
// lpInData[4] = NULL
// lpOutData = (long)(TRUE if and only if profiling is possible)
#define ESC_CYRIX_INQUIRE_PROFILE_FLAGS 1
// lpInData[4] = NULL
// lpOutData = (long)ProfileFlags (see below)
#define ESC_CYRIX_ENABLE_PROFILE 2
// lpInData[4] = NULL
// lpOutData = NULL
#define ESC_CYRIX_DISABLE_PROFILE 3
// lpInData[4] = NULL
// lpOutData = NULL
#define ESC_CYRIX_RESET_PROFILE_DATA 4
// lpInData[4] = NULL
// lpOutData = NULL
#define ESC_CYRIX_GET_PROFILE_DATA 5
// lpInData[4] = NULL
// lpOutData = (long) EntryPointCount[0]
// ...
// (long) EntryPointCount[CYRIX_PROFILE_ENTRYPOINTS]
#define ESC_CYRIX_SET_BITBLT_FLAGS 6
// lpInData[4] = (long) NewBitBltFlags (see below)
// lpOutData = NULL
#define ESC_CYRIX_GET_BITBLT_FLAGS 7
// lpInData[4] = NULL
// lpOutData = (long) BitBltFlags (see below)
#define ESC_CYRIX_GET_BITBLT_DATA 8
// lpInData[4] = NULL
// lpOutData = (long) BitBltProfileData[0]
// ...
// (long) BitBltProfileData[CYRIX_PROFILE_BIBLT_ENTRIES]
#define ESC_CYRIX_SET_EXTTEXTOUT_FLAGS 9
// lpInData[4] = (long) NewExtTextOutFlags (see below)
// lpOutData = NULL
#define ESC_CYRIX_GET_EXTTEXTOUT_FLAGS 10
// lpInData[4] = NULL
// lpOutData = (long) ExtTextOutFlags
#define ESC_CYRIX_GET_EXTTEXTOUT_DATA 11
// lpInData[4] = NULL
// lpOutData = (long) BitBltProfileData[0]
// ...
// (long) BitBltProfileData[CYRIX_PROFILE_EXTTEXTOUT_ENTRIES]
#define ESC_CYRIX_SET_OUTPUT_FLAGS 12
// lpInData[4] = (long) NewOutputFlags
// lpOutData = NULL
#define ESC_CYRIX_GET_OUTPUT_FLAGS 13
// lpInData[4] = NULL
// lpOutData = (long) OutputFlags
#define ESC_CYRIX_GET_OUTPUT_DATA 14
// lpInData[4] = NULL
// lpOutData = (long) BitBltProfileData[0]
// ...
// (long) BitBltProfileData[CYRIX_PROFILE_OUTPUT_ENTRIES]
#define ESC_CYRIX_GET_FLAGS 15
// lpInData = NULL
// lpOutData = (word)
#define ESC_CYRIX_ENABLE_HW_CURSOR 16
#define ESC_CYRIX_DISABLE_HW_CURSOR 17
#define ESC_CYRIX_SET_FLAGS 18
// lpInData = (word)
// lpOutData = NULL
#define ESC_CYRIX_GET_TV_DATA 19
// lpInData = NULL
// lpOutData = TVSTATE struct
#define ESC_CYRIX_SET_TV_DATA 20
// lpInData = TVSTATE struct
// lpOutData = NULL
typedef struct tagTVSTATE
{
BYTE StateBits;
BYTE ControlBits;
BYTE ModeBits;
BYTE Brightness;
BYTE HorzPos[4];
BYTE VertPos[4];
BYTE FlickerFilterSetting;
BYTE VBWCompositeLumaSetting;
BYTE VBWSVideoLumaSetting;
BYTE VBWChromaSetting;
} TVSTATE;
// TV control defines
#define TVCONTROL_ATTACTED 0x01 // R-O Is there a TV attached
#define TVCONTROL_ENABLED 0x02 // R-O Is the TV output channel enabled
#define TVCONTROL_SVIDEO 0x04 // R-W S-Video output enabled
#define TVCONTROL_COMPOSITE 0x08 // R-W Composite output enabled
#define TVCONTROL_CONTRAST 0x10 // R-W Contrast enabled
#define TVCONTROL_WRITEMASK 0x1C // Which bits are valid to be written into the HW.
#define TVCONTROL_POSONLY 0x20 // R-O Position control only
#define TVCONTROL_POS_AND_OTHER 0x40 // R-O Position + OTHER controls (Mode, Brightnes, Contrast)
#define TVCONTROL_FILTER_BANDWIDTH 0x80 // All Controls Position + OTHER + Filter and Bandwidth controls for CH7003
#define TVMODE_UNDERSCAN 0x01 // R-W Underscan mode on
#define TVMODE_800X600 0x02 // R-W 800x600 mode on
#define TVMODE_WRITEMASK 0x03 // Which bits are valid to be written into the HW.
#define TVSTATE_REGVALID 0x10 // Registry data is valid
#define TVSTATE_RESET 0x20 // If set, then load all TV registers
// else, skip the mode register.
#define TVFUNC_MODE 0x00 // Sub-Sub function numbers for the video BIOS calls.
#define TVFUNC_CONTROL 0x01
#define TVFUNC_POSITION 0x02
#define TVFUNC_BRIGHTNESS 0x03
#define TVFUNC_FLICKERFILTER 0x04
#define TVFUNC_VBW_COMPOSITE_LUMA 0x05
#define TVFUNC_VBW_SVIDEO_LUMA 0x06
#define TVFUNC_VBW_CHROMA 0x07
#define ESC_CYRIX_GET_REGISTRY_DATA 21
#define ESC_CYRIX_SET_REGISTRY_DATA 22
#define ESC_CYRIX_SET_GAMMA_DATA 23
// lpInData = GAMMASTATE struct
// lpOutData = NULL
#define ESC_CYRIX_GET_GAMMA_REGISTRY_DATA 24
// lpInData = NULL
// lpOutData = GAMMASTATE struct
#define ESC_CYRIX_SET_GAMMA_REGISTRY_DATA 25
// lpInData = GAMMASTATE struct
// lpOutData = NULL
#define NUM_COLOR_MODES 4
typedef struct tagGAMMASTATE
{
BYTE RedGamma[NUM_COLOR_MODES];
BYTE GreenGamma[NUM_COLOR_MODES];
BYTE BlueGamma[NUM_COLOR_MODES];
BYTE StateBits;
} GAMMASTATE;
// Gamma control defines
#define GAMMASTATE_REGVALID 0x10 // Registry data is valid
#define GAMMA_SLIDEASONE 0x01 // Move RGB channels together
#define BRIGHT_SLIDEASONE 0x02 // Move RGB channels together
#define CONTRAST_SLIDEASONE 0x04 // Move RGB channels together
#define COLOR_RANGE 255
#define COLOR_MID 128
#define COLOR_DEFAULT 128
#define MODE_GAMMA 0
#define MODE_BRIGHT 1
#define MODE_CONTRAST 2
#define MODE_HUE 3
#define ESC_CYRIX_GET_SYSINFO1_DATA 26
// lpInData = NULL
// lpOutData = SYSINFO1 struct
#define ESC_CYRIX_SET_SYSINFO1_DATA 27
// lpInData = (dword) flags
// lpOutData = NULL
typedef struct tagSYSINFO1
{
DWORD flags; // flags (please r/m/w this guy when setting)
DWORD frameBufferBase; // linear address of frame buffer
DWORD regBase; // linear address of graphics registers
DWORD frameBufferSize; // frame buffer size
DWORD dwWidth; // primary surface width
DWORD dwHeight; // primary surface height
long lPitch; // primary surface pitch
DWORD dwBpp; // primary surface bits per pixel
DWORD dwRefreshRate; // display refresh rate
BYTE CPUType; // CPU Type
BYTE CPURev; // CPU Rev
WORD CPUSpeed; // CPU MHz
BYTE CoreLogic; // Core logic (ie. 5510, 5520, 5530 etc.)
BYTE CompanionType1; // Companion logic (ie. 5546)
BYTE CompanionType2; // Companion logic (ie. 5547)
BYTE CompanionType3; // Companion logic (ie. etc)
DWORD Reserved[10];
} SYSINFO1;
#define SYSINFO1_VSAII_PRESENT 0x1 // RO
#define SYSINFO1_COMPRESSION_ON 0x2 // RW Compression state (Requires mode change for effect)
#define SYSINFO1_LINEAR_FB 0x4 // RW Linear FB state (Requires mode change for effect)
#define SYSINFO1_GDI_ACCEL_ON 0x8 // RW GDI acceleration state (Requires mode change for effect)
#define SYSINFO1_CPU_GX 0
#define SYSINFO1_CPU_MX 1
#define SYSINFO1_CORE_5510 0
#define SYSINFO1_CORE_5520 1
#define SYSINFO1_CORE_5530 2
#define SYSINFO1_CORE_5540 3
#define SYSINFO1_CORE_DHRUVA 4
#define SYSINFO1_COMP_5546 0
#define SYSINFO1_COMP_5547 1
#define ESC_CYRIX_GET_RENDER_FLAGS 28
// lpInData = NULL
// lpOutData = (dword) flags
#define ESC_CYRIX_SET_RENDER_FLAGS 29
// lpInData = (dword) flags
// lpOutData = NULL
#define RENDER_WIREFRAME 0x00000001
#define RENDER_BILINEAR 0x00000002
#define RENDER_NEAREST 0x00000004
#define RENDER_NO_MIP 0x00000008
#define RENDER_NO_TEXTURE 0x00000010
#define RENDER_NO_FOG 0x00000020
#define RENDER_NO_ALPHA 0x00000040
#define RENDER_NO_ALPHA_TST 0x00000080
#define RENDER_NO_Z_CMP 0x00000100
#define RENDER_NO_SPECULAR 0x00000200
#define RENDER_DIB_BLT 0x00000400
#define RENDER_DIB_TEXT 0x00000800
#define RENDER_DIB_OUTPUT 0x00001000
#define RENDER_FORCE_DECAL 0x00002000
#define RENDER_NO_DITHER 0x00004000
#define RENDER_NO_FPU_PIPELINING 0x00008000
#define RENDER_3D_OVERRIDE 0x80000000 // Enables all of the above 3D render modes.
// OPENGL Escapes
#define OPENGL_CMD 4352
#define OPENGL_GETINFO 4353
#define OPENGL_GETINFO_DRVNAME 0
#define OPENGLCMD unsigned short
/*-------------- OGLCMD SubEscapes ---------------
*
* __GL_MX_ESC_MAP_REGISTERS:
*
* Maps the fifo, and returns ring 3 aliased pointers to lock,
* vertex buffer pool, registers, etc. Should only be called once per
* process.
* input : type GLMAPREG (see file drvesc for definition )
* output : type __glMXi_MapRegRet (see file drvesc for definition )
*/
#define __GL_MX_ESC_MAP_REGISTERS 110
/* __GL_MX_ESC_UNMAP_REGISTERS
*
* De-registers with the display driver, and frees alloced pages
* input : type OGLCMD (see file drvesc for definition )
* output : NULL
*/
#define __GL_MX_ESC_UNMAP_REGISTERS 111
typedef struct {
unsigned long currentContextP; // linear address of current 3D h/w context
unsigned long fifoLockP; // linear address of h/w is busy flag
unsigned long GLvertexBufferOffset; // offset in frame buffer to start of GL vertex buffer
unsigned long D3DvertexBufferOffset; // offset in frame buffer to start of D3D vertex buffer
unsigned long frameBufferBase; // linear address of frame buffer
unsigned long regBase; // linear address of graphics registers
unsigned long frameBufferSize; // frame buffer size
unsigned long GLvertexBufferSize; // GL vertex buffer size
unsigned long D3DvertexBufferSize; // D3D vertex buffer size
unsigned long dwWidth; // primary surface width
unsigned long dwHeight; // primary surface height
long lPitch; // primary surface pitch
unsigned long dwBpp; // primary surface bits per pixel
unsigned long dwRefreshRate; // display refresh rate
unsigned long ProcessorID; // CPU ID
unsigned long DeviceID; // Core logic ID
unsigned short CPUSpeed; // CPU MHz
unsigned short Reserved1;
unsigned long Reserved2;
unsigned long Reserved3;
}__glMXi_MapRegRet;
#pragma pack()
// END OF FILE
#endif //DD_SUPPORT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -