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

📄 halcaps.cpp

📁 WinCE 3.0 BSP, 包含Inter SA1110, Intel_815E, Advantech_PCM9574 等
💻 CPP
📖 第 1 页 / 共 2 页
字号:
//-----------------------------------------------------------------------
//
//  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.
//  Copyright (c) 1999  Microsoft Corporation
//
//  written by:     ESG Solution Center Munich
//
//  Module Name:    halcaps.cpp
//  
//  abstract:       ddraw caps and startup
//    
//-----------------------------------------------------------------------

#include "precomp.h"

#if DXPAK

#define SETROPBIT(array,rop) array[(rop>>21)&0x07]|=(1<<((rop>>16)&0x1f))


DWORD FourCC[] = {
    FOURCC_YUYV422
};
#define MAX_FOURCC      sizeof(igsFourCC)/sizeof(DWORD)


// 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,               // CreateSurface
    HalSetColorKey,
    HalSetMode,
    HalWaitForVerticalBlank,        // WaitForVerticalBlank
    HalCanCreateSurface,            // CanCreateSurface
    HalCreatePalette,               // CreatePalette
    HalGetScanLine,                 // GetScanLine
    HalSetExclusiveMode,            // SetExclusiveMode
    HalFlipToGDISurface
};

// callbacks from the DIRECTDRAWCOLORCONTROL pseudo object

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

// 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,
    HalDestroyPalette,              // DestroyPalette
    HalSetEntries                       // 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,
    HalDestroySurface,
    HalFlip,                        // Flip
    HalSetClipList,                 // SetClipList
    HalLock,                        // Lock
    HalUnlock,
    HalBlt,
    HalSetColorKey,
    HalAddAttachedSurface,          // AddAttachedSurface
    HalGetBltStatus,                // GetBltStatus
    HalGetFlipStatus,               // GetFlipStatus
    HalUpdateOverlay,               // UpdateOverlay
    HalSetOverlayPosition,          // SetOverlayPosition
    NULL,                           // reserved4
    HalSetPalette
};

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,
    &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
    500,                                // max height of the video port field
    0,                                  // Video port ID (0 - (dwMaxVideoPorts -1))
    DDVPCAPS_INTERLACED         |       // Video Port Caps
    DDVPCAPS_NONINTERLACED      |
    DDVPCAPS_READBACKFIELD      |
    DDVPCAPS_READBACKLINE       |
    DDVPCAPS_SKIPEVENFIELDS     |
    DDVPCAPS_SKIPODDFIELDS      |
    DDVPCAPS_AUTOFLIP           |
    0,
    DDVPFX_CROPX                |       // More video port FX capabilities 
    DDVPFX_CROPY                |
    DDVPFX_INTERLEAVE           |
    DDVPFX_MIRRORLEFTRIGHT      |
    DDVPFX_MIRRORUPDOWN         |
    DDVPFX_PRESHRINKX           |
    DDVPFX_PRESHRINKXS          |                             
    DDVPFX_PRESHRINKY           |
    DDVPFX_PRESHRINKYS          |
    0,
    2,                                  // Number of autoflippable surfaces
    1,                                  // Byte restriction of placement within the surface
    8,                                  // Byte restriction of width after prescaling
    1,                                  // Byte restriction of left cropping
    1,                                  // Byte restriction of cropping width
    1440,                               // Width can be shrunk in steps of 1/x
    960,                                // Height can be shrunk in steps of 1/x
    0,                                  // Number of VBI autoflippable surfaces
    0,                                  // Reserved for future use
    0                                   // Reserved for future use
};
#endif // VIDEOPORT_SUPPORT


const DDKERNELCAPS KernelCaps =
{
    sizeof(DDKERNELCAPS),
//    DDKERNELCAPS_SKIPFIELDS     |
//    DDKERNELCAPS_AUTOFLIP       |
//    DDKERNELCAPS_SETSTATE       |
//    DDKERNELCAPS_LOCK           |
//    DDKERNELCAPS_FLIPVIDEOPORT  |
//    DDKERNELCAPS_FLIPOVERLAY    |
//    DDKERNELCAPS_FIELDPOLARITY  |
    0,
//    DDIRQ_DISPLAY_VSYNC         |
//    DDIRQ_VPORT0_VSYNC          |
    0
};


// For the moment we have only one mode for the primary surface (win32e frame buffer)
DDHALMODEINFO modeInfo[] =

⌨️ 快捷键说明

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