⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 escape.h

📁 WinCE 3.0 BSP, 包含Inter SA1110, Intel_815E, Advantech_PCM9574 等
💻 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 + -