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

📄 halcaps.cpp

📁 WinCE5.0BSP for Renesas SH7770
💻 CPP
📖 第 1 页 / 共 2 页
字号:
//
//  Copyright(C) Renesas Technology Corp. 1998-2005. All rights reserved.
//  Portions Copyright (c) 1997-1998 Microsoft Corporation.
//
//  NCG Display Driver for ITS-DS7
//
//  FILE      : halcaps.cpp
//  CREATED   : 2003.08.28
//  MODIFIED  : 2005.11.10
//  AUTHOR    : Renesas Technology Corp.
//  HARDWARE  : RENESAS ITS-DS7
//  HISTORY   : 
//              2003.08.28
//              - Created prototype code.
//                (based on Q2SD Display Driver for PFM-DS6C Ver.3.1.0)
//              2005.11.10
//              - Changed to set DDPF_ALPHAPIXELS by refering dwAlphaBitMask
//               in modeInfo struct.
//

#include "precomp.h"

// 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
    DDGPESetColorKeyDrv,                // SetColorKey
    DDGPESetMode,                       // SetMode
    HalWaitForVerticalBlank,            // WaitForVerticalBlank
    HalCanCreateSurface,                // CanCreateSurface
    DDGPECreatePalette,                 // CreatePalette
    HalGetScanLine,                     // GetScanLine
    HalSetExclusiveMode,                // SetExclusiveMode
    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),    // No active entries.
//    DDHAL_KERNEL_SYNCSURFACEDATA |
//    DDHAL_KERNEL_SYNCVIDEOPORTDATA |
    0,
//    &HalSyncSurfaceData,
//    &HalSyncVideoPortData
    0
};

// callbacks from the DIRECTDRAWMISCELLANEOUS object

DDHAL_DDMISCELLANEOUSCALLBACKS MiscellaneousCallbacks =
{
    sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS), // No active entries.
//    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,                  // DestroySurface
    HalFlip,                            // Flip
    HalSetClipList,                     // SetClipList
    HalLock,                            // Lock
    HalUnlock,                          // Unlock
    HalBlt,                             // Blt
    DDGPESetColorKey,                   // SetColorKey
    HalAddAttachedSurface,              // AddAttachedSurface
    HalGetBltStatus,                    // GetBltStatus
    HalGetFlipStatus,                   // GetFlipStatus
    HalUpdateOverlay,                   // UpdateOverlay
    HalSetOverlayPosition,              // SetOverlayPosition
    NULL,                               // reserved4
    DDGPESetPalette,                    // SetPalette
};

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


// callbacks from the DIRECTDRAWVIDEOPORT pseudo object

DDHAL_DDVIDEOPORTCALLBACKS VideoPortCallbacks =
{
    sizeof(DDHAL_DDVIDEOPORTCALLBACKS), // No active entries.
//    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,
    0, //&HalCanCreateVideoPort,
    0, //&HalCreateVideoPort,
    0, //&HalFlipVideoPort,
    0, //&HalGetVideoPortBandwidth,
    0, //&HalGetVideoPortInputFormats,
    0, //&HalGetVideoPortOutputFormats,
    NULL, //lpReserved1
    0, //&HalGetVideoPortField,
    0, //&HalGetVideoPortLine,
    0, //&HalGetVideoPortConnectInfo,
    0, //&HalDestroyVideoPort,
    0, //&HalGetVideoPortFlipStatus,
    0, //&HalUpdateVideoPort,
    0, //&HalWaitForVideoPortSync,
    0, //&HalGetVideoSignalStatus,
    0, //&HalColorControl,
};


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

DDHALMODEINFO modeInfo[NUMDISPMODES]; // Initialized in config.cpp.

// set up by HalInit
// This global pointer is to be recorded in the DirectDraw structure
DDGPE*          g_pGPE                  = (DDGPE*)NULL;
DDGPESurf*      g_pDDrawPrimarySurface  = NULL;

// InitDDHALInfo must set up this information
unsigned long   g_nVideoMemorySize      = 0L;
unsigned char*  g_pVideoMemory          = NULL; // virtual address of video memory
                                                // from client's side

EXTERN_C void buildDDHALInfo( LPDDHALINFO lpddhi, DWORD modeidx )
{
    memset(lpddhi, 0, sizeof(DDHALINFO));       // Clear the DDHALINFO structure

    if(!g_pVideoMemory) { // in case this is called more than once...

⌨️ 快捷键说明

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