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

📄 halcaps.cpp

📁 WinCE 3.0 BSP, 包含Inter SA1110, Intel_815E, Advantech_PCM9574 等
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/*
 * $Workfile: halcaps.cpp $
 * $Revision: 2 $
 * $Date: 4/07/00 9:11a $
 * $Modtime: 4/07/00 8:59a $
 * $Author: Sarma $
 *
 * DESCRIPTION: 
 * Setting of Direct Draw driver Capabilities is done here.
 *
 * 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/halcaps.cpp $
 * 
 * 2     4/07/00 9:11a Sarma
 * Removed Cyrix Corporation from the legal/confidentail information. Also
 * added for files not containing this info.
 * 
 *$History: halcaps.cpp $
 * 
 * *****************  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.
 *
*/

#include "precomp.h"
#ifdef DD_SUPPORT


/*DWORD fourCC[] = {
    FOURCC_YUY2,
    FOURCC_YVYU,
    FOURCC_UYVY,
	FOURCC_EMMA
};
#define MAX_FOURCC		sizeof(fourCC)/sizeof(DWORD)
*/
extern DWORD fourCC[4];

DWORD dwConnectionCaps =   
//	DDVPCONNECT_INVERTPOLARITY      |
    DDVPCONNECT_DISCARDSVREFDATA    |
//    DDVPCONNECT_HALFLINE            |
    DDVPCONNECT_INTERLACED          |
//    DDVPCONNECT_SHAREEVEN           |
//    DDVPCONNECT_SHAREODD            |              
    DDVPCONNECT_VACT                |
//    DDVPCONNECT_DOUBLECLOCK         |
    0;

// callbacks from the DIRECTDRAW object

DDHAL_DDCALLBACKS cbDDCallbacks =
{
    sizeof( DDHAL_DDCALLBACKS ),		// dwSize
	DDHAL_CB32_DESTROYDRIVER |			// dwFlags
	DDHAL_CB32_CREATESURFACE |
	DDHAL_CB32_SETCOLORKEY |
	DDHAL_CB32_SETMODE |
	DDHAL_CB32_WAITFORVERTICALBLANK |
	DDHAL_CB32_CANCREATESURFACE |
	DDHAL_CB32_CREATEPALETTE |
	DDHAL_CB32_GETSCANLINE |
	DDHAL_CB32_SETEXCLUSIVEMODE |
	DDHAL_CB32_FLIPTOGDISURFACE |
	0,
    HalDestroyDriver,				// DestroyDriver
    HalCreateSurface,       // ullas - DDGPECreateSurface,		// CreateSurface
    DDGPESetColorKeyDrv,			// SetColorKey
    DDGPESetMode,					// SetMode
    HalWaitForVerticalBlank,		// WaitForVerticalBlank
    HalCanCreateSurface,			// CanCreateSurface
    DDGPECreatePalette,				// CreatePalette
	HalGetScanLine,					// GetScanLine
	HalSetExclusiveMode,			// SetExclusiveMode
	HalFlipToGDISurface             // ullas - DDGPEFlipToGDISurface	// FlipToGDISurface
};

// callbacks from the DIRECTDRAWCOLORCONTROL pseudo object

DDHAL_DDCOLORCONTROLCALLBACKS ColorControlCallbacks =
{
    sizeof(DDHAL_DDCOLORCONTROLCALLBACKS),
    0, // DDHAL_COLOR_COLORCONTROL,
    0 // &HalColorControl
};

// callbacks from the DIRECTDRAWEXEBUF psuedo object

DDHAL_DDEXEBUFCALLBACKS cbDDExeBufCallbacks =
{
    sizeof( DDHAL_DDEXEBUFCALLBACKS ), // dwSize
    DDHAL_EXEBUFCB32_CANCREATEEXEBUF |
    DDHAL_EXEBUFCB32_CREATEEXEBUF    |
    DDHAL_EXEBUFCB32_DESTROYEXEBUF   |
    DDHAL_EXEBUFCB32_LOCKEXEBUF      |
    DDHAL_EXEBUFCB32_UNLOCKEXEBUF,		// dwFlags
    HalCanCreateSurface,          		// CanCreateExecuteBuffer
    DDGPECreateExecuteBuffer,        	// CreateExecuteBuffer
    DDGPEDestroyExecuteBuffer,       	// DestroyExecuteBuffer
    DDGPELock,               			// Lock
    DDGPEUnlock              			// Unlock
};

// callbacks from the DIRECTDRAWKERNEL psuedo object

DDHAL_DDKERNELCALLBACKS KernelCallbacks =
{
    sizeof(DDHAL_DDKERNELCALLBACKS),
//    DDHAL_KERNEL_SYNCSURFACEDATA |
//    DDHAL_KERNEL_SYNCVIDEOPORTDATA |
	0,
//    &HalSyncSurfaceData,
//    &HalSyncVideoPortData
	0
};

// callbacks from the DIRECTDRAWMISCELLANEOUS object

DDHAL_DDMISCELLANEOUSCALLBACKS MiscellaneousCallbacks =
{
    sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS),
//    DDHAL_MISCCB32_GETAVAILDRIVERMEMORY |
//    DDHAL_MISCCB32_UPDATENONLOCALHEAP |
//    DDHAL_MISCCB32_GETHEAPALIGNMENT |
//    DDHAL_MISCCB32_GETSYSMEMBLTSTATUS |
	0,
    0, //HalGetAvailDriverMemory,
    0, //HalUpdateNonLocalHeap,
    0, //HalGetHeapAlignment,
    0 //HalGetSysmemBltStatus
};

// callbacks from the DIRECTDRAWPALETTE object

DDHAL_DDPALETTECALLBACKS cbDDPaletteCallbacks =
{
    sizeof( DDHAL_DDPALETTECALLBACKS ),	// dwSize
    DDHAL_PALCB32_DESTROYPALETTE |		// dwFlags
    DDHAL_PALCB32_SETENTRIES |
	0,
    DDGPEDestroyPalette,				// DestroyPalette
    DDGPESetEntries					// SetEntries
};


// callbacks from the DIRECTDRAWSURFACE object

DDHAL_DDSURFACECALLBACKS cbDDSurfaceCallbacks =
{
    sizeof( DDHAL_DDSURFACECALLBACKS ),	// dwSize
	DDHAL_SURFCB32_DESTROYSURFACE |		// dwFlags
	DDHAL_SURFCB32_FLIP |
	DDHAL_SURFCB32_SETCLIPLIST |
	DDHAL_SURFCB32_LOCK |
	DDHAL_SURFCB32_UNLOCK |
	DDHAL_SURFCB32_BLT |
	DDHAL_SURFCB32_SETCOLORKEY |
//	DDHAL_SURFCB32_ADDATTACHEDSURFACE |
	DDHAL_SURFCB32_GETBLTSTATUS |
	DDHAL_SURFCB32_GETFLIPSTATUS |
	DDHAL_SURFCB32_UPDATEOVERLAY |
	DDHAL_SURFCB32_SETOVERLAYPOSITION |
	//DDHAL_SURFCB32_RESERVED4 |
	DDHAL_SURFCB32_SETPALETTE |
	0,
//    DDGPEDestroySurface,			// DestroySurface
	HalDestroySurface,
	HalFlip,						// Flip
    HalSetClipList,					// SetClipList
//    DDGPELock,						// Lock
    DDGPELock, //HalLock,						// Lock
    DDGPEUnlock, //HalUnlock,                      //ullas - DDGPEUnlock,			// Unlock
	DDGPEBlt, //HalBlt,                         //ullas - DDGPEBlt, 			// Blt
    HalSetColorKey,                 //ullas - DDGPESetColorKey,		// SetColorKey
    HalAddAttachedSurface,			// AddAttachedSurface
    HalGetBltStatus,				// GetBltStatus
//    DDGPEGetFlipStatus,				// GetFlipStatus
    HalGetFlipStatus,				// GetFlipStatus
    HalUpdateOverlay,				// UpdateOverlay
    HalSetOverlayPosition,			// SetOverlayPosition
	NULL,							// reserved4
    DDGPESetPalette,				// SetPalette
};

DDHAL_DDHALMEMORYCALLBACKS HalMemoryCallbacks =
{
    sizeof(DDHAL_DDHALMEMORYCALLBACKS),
	// DDHAL_KERNEL_HALGETVIDMEM |
	//DDHAL_KERNEL_HALSETSURFACEDESC |
	0,
    // &HalGetVidMem,
    // &HalSetSurfaceDesc
};


//#ifdef VIDEOPORT_SUPPORT
// callbacks from the DIRECTDRAWVIDEOPORT pseudo object

DDHAL_DDVIDEOPORTCALLBACKS VideoPortCallbacks =
{
    sizeof(DDHAL_DDVIDEOPORTCALLBACKS),
	DDHAL_VPORT32_CANCREATEVIDEOPORT |
	DDHAL_VPORT32_CREATEVIDEOPORT |
	DDHAL_VPORT32_FLIP |
	DDHAL_VPORT32_GETBANDWIDTH |
	DDHAL_VPORT32_GETINPUTFORMATS |
	DDHAL_VPORT32_GETOUTPUTFORMATS |
	DDHAL_VPORT32_GETFIELD |         
	DDHAL_VPORT32_GETLINE |                 
	DDHAL_VPORT32_GETCONNECT |             
	DDHAL_VPORT32_DESTROY |                 
	DDHAL_VPORT32_GETFLIPSTATUS |          
	DDHAL_VPORT32_UPDATE |                  
	DDHAL_VPORT32_WAITFORSYNC |             
	DDHAL_VPORT32_GETSIGNALSTATUS |         
	//DDHAL_VPORT32_COLORCONTROL |           
	0,
    &HalCanCreateVideoPort,
    &HalCreateVideoPort,
    &HalFlipVideoPort,
    &HalGetVideoPortBandwidth,
    &HalGetVideoPortInputFormats,
    &HalGetVideoPortOutputFormats,
    NULL, //lpReserved1
    &HalGetVideoPortField,
    &HalGetVideoPortLine,
    &HalGetVideoPortConnectInfo,
    &HalDestroyVideoPort,
    &HalGetVideoPortFlipStatus,
    &HalUpdateVideoPort,
    &HalWaitForVideoPortSync,
    &HalGetVideoSignalStatus,
    0, //&HalColorControl,
};
//#endif // VIDEOPORT_SUPPORT

const DDVIDEOPORTCAPS VideoPortCaps =
{  
    sizeof(DDVIDEOPORTCAPS),    // size of the DDVIDEOPORTCAPS structure
    DDVPD_WIDTH             |
    DDVPD_HEIGHT            |
    DDVPD_ID                |
    DDVPD_CAPS              |
    DDVPD_FX                |
    DDVPD_AUTOFLIP          |
    DDVPD_ALIGN             |
    0,
    768,                       // VP max width (limited by FF24)
    768,                       // max VBI data width (limited by FF24)
    1024,                        // VP max height (limited by FF24)
    0,                          // VP ID (0 - (dwMaxVideoPorts-1))
    DDVPCAPS_AUTOFLIP       |   // MPC2 supports 2 autoflip buffers
    DDVPCAPS_INTERLACED     |
    DDVPCAPS_NONINTERLACED  |
    DDVPCAPS_READBACKFIELD  |   
	DDVPCAPS_READBACKLINE   |   // 
//  DDVPCAPS_SHAREABLE      |   // MPC2 doesn't support this
	DDVPCAPS_SKIPEVENFIELDS |   // when does FF00_5 start dropping ?BJT
	DDVPCAPS_SKIPODDFIELDS  |   // when does FF00_5 start dropping ?BJT
//  DDVPCAPS_SYNCMASTER     |   // MPC2 doesn't support this
	DDVPCAPS_VBISURFACE     |   // MPC2 places VBI data in same surface
//  DDVPCAPS_COLORCONTROL   |   // MPC2 doesn't support this. SP does.
    0,                       
//  DDVPFX_CROPTOPDATA      |   // We don't know VBI size without being told
    DDVPFX_CROPX            |
    DDVPFX_CROPY            |
    DDVPFX_INTERLEAVE       |
//  DDVPFX_MIRRORLEFTRIGHT  |   // MPC2 doesn't support this
//  DDVPFX_MIRRORUPDOWN     |   // MPC2 doesn't support this
//  DDVPFX_PRESHRINKX       |   // MPC2 can't arbitrarily shrink
//  DDVPFX_PRESHRINKY       |   // MPC2 can't arbitrarily shrink
    DDVPFX_PRESHRINKXS      |   // MPC2 shrinks by byte/pixel dropping
    DDVPFX_PRESHRINKYS      |   // MPC2 shrinks by byte/pixel dropping
    DDVPFX_PRESHRINKXB      |   // down to 1/2, 1/4, 1/8 or 1/16
    DDVPFX_PRESHRINKYB      |   // as above
//    DDVPFX_PRESTRETCHX      |   // MPC2 never stretches
//    DDVPFX_PRESTRETCHY      |   // MPC2 never stretches
//	DDVPFX_PRESTRETCHXN     |   // MPC2 never stretches
//	DDVPFX_PRESTRETCHYN     |   // MPC2 never stretches
//  DDVPFX_VBICONVERT       |   // MPC2 doesn't have special VBI conversion
//  DDVPFX_VBINOSCALE       |   // TBD: MPC2 has some VBI support

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -