📄 halcaps.cpp
字号:
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to use
// this source code. For a copy of the EULA, please see the LICENSE.RTF on your
// install media.
//
// -----------------------------------------------------------------------------
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
// -----------------------------------------------------------------------------
#include "precomp.h"
#ifdef DD_ENABLE
DWORD SMIFourCC[] = {
MAKEFOURCC('Y', 'U', 'Y', '2'),
MAKEFOURCC('Y', 'U', 'Y', 'V'),
MAKEFOURCC('U', 'Y', 'V', 'Y'),
};
#define MAX_FOURCC sizeof(SMIFourCC)/sizeof(DWORD)
#ifdef ENABLE_DIRECT3D
extern void init_D3D_caps( LPDDHALINFO lpddhi);
static BYTE ropList[] =
{
SRCCOPY >> 16,
};
static DWORD rops[DD_ROP_SPACE] = { 0 };
#endif // ENABLE_DIRECT3D
// callbacks from the DIRECTDRAW object
DDHAL_DDCALLBACKS cbDDCallbacks =
{
sizeof( DDHAL_DDCALLBACKS ), // dwSize
DDHAL_CB32_CREATESURFACE |
DDHAL_CB32_WAITFORVERTICALBLANK |
DDHAL_CB32_CANCREATESURFACE |
DDHAL_CB32_CREATEPALETTE |
DDHAL_CB32_GETSCANLINE |
#if (_WINCEOSVER < 600)
DDHAL_CB32_SETEXCLUSIVEMODE |
DDHAL_CB32_FLIPTOGDISURFACE |
DDHAL_CB32_SETCOLORKEY |
DDHAL_CB32_SETMODE |
DDHAL_CB32_DESTROYDRIVER | // dwFlags
#endif
0,
#if (_WINCEOSVER < 600)
HalDestroyDriver, // DestroyDriver
#endif
HalCreateSurface, // CreateSurface
#if (_WINCEOSVER < 600)
DDGPESetColorKeyDrv, // SetColorKey
DDGPESetMode, // SetMode
#endif
HalWaitForVerticalBlank, // WaitForVerticalBlank
HalCanCreateSurface, // CanCreateSurface
DDGPECreatePalette, // CreatePalette
HalGetScanLine, // GetScanLine
#if (_WINCEOSVER < 600)
HalSetExclusiveMode, // SetExclusiveMode
DDGPEFlipToGDISurface // FlipToGDISurface
#endif
};
// callbacks from the DIRECTDRAWCOLORCONTROL pseudo object
DDHAL_DDCOLORCONTROLCALLBACKS ColorControlCallbacks =
{
sizeof(DDHAL_DDCOLORCONTROLCALLBACKS),
0, // DDHAL_COLOR_COLORCONTROL,
0 // &HalColorControl
};
// callbacks from the DIRECTDRAWEXEBUF psuedo object
#if (_WINCEOSVER < 600)
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
};
#endif
// callbacks from the DIRECTDRAWKERNEL psuedo object
#if (_WINCEOSVER < 600)
DDHAL_DDKERNELCALLBACKS KernelCallbacks =
{
sizeof(DDHAL_DDKERNELCALLBACKS),
// DDHAL_KERNEL_SYNCSURFACEDATA |
// DDHAL_KERNEL_SYNCVIDEOPORTDATA |
0,
// &HalSyncSurfaceData,
// &HalSyncVideoPortData
0
};
#endif
// 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,
#if (_WINCEOSVER < 600)
0, //HalUpdateNonLocalHeap,
0, //HalGetHeapAlignment,
#endif
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_LOCK |
DDHAL_SURFCB32_UNLOCK |
DDHAL_SURFCB32_SETCOLORKEY |
DDHAL_SURFCB32_GETBLTSTATUS |
DDHAL_SURFCB32_GETFLIPSTATUS |
DDHAL_SURFCB32_UPDATEOVERLAY |
DDHAL_SURFCB32_SETOVERLAYPOSITION |
DDHAL_SURFCB32_SETPALETTE |
#if (_WINCEOSVER < 600)
DDHAL_SURFCB32_SETCLIPLIST |
DDHAL_SURFCB32_BLT |
#endif
0,
DDGPEDestroySurface, // DestroySurface
HalFlip, // Flip
#if (_WINCEOSVER < 600)
HalSetClipList, // SetClipList
#endif
DDGPELock, // Lock
DDGPEUnlock, // Unlock
#if (_WINCEOSVER < 600)
HalBlt, //DDGPEBlt, // Blt
#endif
DDGPESetColorKey, // SetColorKey
#if (_WINCEOSVER < 600)
HalAddAttachedSurface, // AddAttachedSurface
#endif
HalGetBltStatus, // GetBltStatus
DDGPEGetFlipStatus, // GetFlipStatus
HalUpdateOverlay, // UpdateOverlay
HalSetOverlayPosition, // SetOverlayPosition
#if (_WINCEOSVER < 600)
NULL, // reserved4
#endif
DDGPESetPalette, // SetPalette
};
#if (_WINCEOSVER < 600)
DDHAL_DDHALMEMORYCALLBACKS HalMemoryCallbacks =
{
sizeof(DDHAL_DDHALMEMORYCALLBACKS),
// DDHAL_KERNEL_HALGETVIDMEM |
//DDHAL_KERNEL_HALSETSURFACEDESC |
0,
// &HalGetVidMem,
// &HalSetSurfaceDesc
};
#endif
#ifdef VPE_ENABLE
// 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,
NULL, //&HalGetVideoPortLine,
&HalGetVideoPortConnectInfo,
&HalDestroyVideoPort,
&HalGetVideoPortFlipStatus,
&HalUpdateVideoPort,
&HalWaitForVideoPortSync,
&HalGetVideoSignalStatus,
NULL, //&HalColorControl,
};
const DDVIDEOPORTCAPS VideoPortCaps = {
sizeof(DDVIDEOPORTCAPS),
DDVPD_WIDTH | // indicates which fields contain data
DDVPD_HEIGHT |
DDVPD_ID |
DDVPD_CAPS |
DDVPD_FX |
DDVPD_AUTOFLIP|
DDVPD_ALIGN |
0,
2048, // max width of the video port field
2048, // max width of the VBI data
2048, // max height of the video port field
0, // Video port ID (0 - (dwMaxVideoPorts -1))
DDVPCAPS_INTERLACED | // Video Port Caps
DDVPCAPS_NONINTERLACED |
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -