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

📄 proto.h

📁 WinCE 3.0 BSP, 包含Inter SA1110, Intel_815E, Advantech_PCM9574 等
💻 H
字号:
//
// Permedia3 Sample Display Driver
// proto.h
//
// Copyright (c) 2000 Microsoft Corporation. All rights reserved.
//
// This header includes prototypes for all of the functions exported from
// the various source modules in the driver, with the exception of the debug
// functions, which are actually macros, and defined in debug.h.

#pragma once

// init.c

extern BOOL 
InitializeHardware();

// enable.c

extern BOOL 
DrvEnableDriver(
  ULONG           EngineVersion,
  ULONG           SizeofDrvEnableData,
  DRVENABLEDATA * DrvEnableData,
  PENGCALLBACKS   EngineCallbacks
  );

extern ULONG
DrvGetModes(
  HANDLE     DriverHandle,
  ULONG      SizeofDevMode,
  DEVMODEW * DevMode
  );

extern HSURF 
DrvEnableSurface(
  DHPDEV DeviceHandle
  );

extern BOOL 
DrvContrastControl(
  DHPDEV  DeviceHandle,
  ULONG   Command,
  ULONG * Value
  );

extern void 
DrvPowerHandler(
  DHPDEV DeviceHandle,
  BOOL   PowerOff
  );
    
extern ULONG
DrvEscape(
  DHPDEV    DeviceHandle,
  SURFOBJ * Surface,
  ULONG     Escape,
  ULONG     InBufferSize,
  PVOID     InBuffer,
  ULONG     OutBufferSize,
  PVOID     OutBuffer
  );

extern ULONG 
DrvRealizeColor(
  USHORT  DestinationType,
  ULONG   NumPalette,
  ULONG * Palette,
  ULONG   Color
  );

extern ULONG
DrvUnrealizeColor(
  USHORT  SourceType,
  ULONG   NumPalette,
  ULONG * Palette,
  ULONG   RealizedColor
  );

// engine.c

extern BOOL
InitializeEngineManager(
  ULONG         EngineVersion,
  PENGCALLBACKS EngineCallbacks
  );

extern ULONG
GetEngineVersion();

// register.c

extern BOOL
InitializeRegisters();

extern void
WriteRegByte(
  ULONG Offset,
  BYTE Value
  );

extern void
WriteMaskedRegByte(
  ULONG Offset,
  BYTE Mask,
  BYTE Value
  );

extern BYTE
ReadRegByte(
  ULONG Offset
  );

extern BYTE
ReadMaskedRegByte(
  ULONG Offset,
  BYTE Mask
  );

extern void
WriteRegUlong(
  ULONG Offset,
  ULONG Value
  );

extern void
WriteMaskedRegUlong(
  ULONG Offset,
  ULONG Mask,
  ULONG Value
  );

extern ULONG
ReadRegUlong(
  ULONG Offset
  );

extern ULONG
ReadMaskedRegUlong(
  ULONG Offset,
  ULONG Mask
  );

extern void
WriteRdReg(
  ULONG Index,
  BYTE Value
  );

extern void
WriteMaskedRdReg(
  ULONG Index,
  BYTE Mask,
  BYTE Value
  );

extern BYTE
ReadRdReg(
  ULONG Index
  );

extern BYTE
ReadMaskedRdReg(
  ULONG Index,
  BYTE Mask
  );

extern void
WriteVgaReg(
  ULONG Index,
  BYTE Value
  );

extern void
WriteMaskedVgaReg(
  ULONG Index,
  BYTE Mask,
  BYTE Value
  );

extern BYTE
ReadVgaReg(
  ULONG Index
  );

extern BYTE
ReadMaskedVgaReg(
  ULONG Index,
  BYTE Mask
  );

extern void
WaitForInputFIFO(
  ULONG Writes
  );

// mode.c

extern BOOL
InitializeModes();

extern ULONG
GetCurrentMode();

extern ULONG
GetDisplayModeCount();

extern ULONG
GetDisplayModeWidth(
  ULONG ModeNumber
  );

extern ULONG
GetDisplayModeHeight(
  ULONG ModeNumber
  );

extern ULONG
GetDisplayModeBPP(
  ULONG ModeNumber
  );

extern ULONG
GetDisplayModeStride(
  ULONG ModeNumber
  );

extern void
GetDisplayModeMasks(
  ULONG   ModeNumber,
  ULONG * RedMask,
  ULONG * GreenMask,
  ULONG * BlueMask,
  ULONG * AlphaMask
  );

extern const PERM3_FORMAT *
GetDisplayModeFormat(
  ULONG ModeNumber
  );

extern ULONG
GetDisplayModeFrequency(
  ULONG ModeNumber
  );

extern PERM3_SURFACE *
GetPrimarySurface();

extern void
SetMode(
  ULONG ModeNumber
  );

extern void
SetScreenBase(
  LPVOID NewPrimary
  );

// memory.c

extern BOOL
InitializeSystemMem();

extern LPVOID
SystemAlloc(
  ULONG Bytes
  );

extern LPVOID
SystemReAlloc(
  LPVOID Pointer,
  ULONG  Bytes
  );

extern void
SystemFree(
  LPVOID Pointer
  );

extern BOOL
InitializeVideoMem();

extern LPVOID
VideoAlloc(
  ULONG Bytes,
  ULONG Alignment
  );

extern void
VideoFree(
  LPVOID Pointer
  );

extern ULONG
GetTotalVideoMem();

extern ULONG
GetFreeVideoMem();

extern ULONG
VirtualToOffset(
  LPVOID Pointer
  );

// lut.c

extern void
GetGammaRamp(
  BYTE * RedRamp,
  BYTE * GreenRamp,
  BYTE * BlueRamp
  );

extern void
SetGammaRamp(
  BYTE * RedRamp,
  BYTE * GreenRamp,
  BYTE * BlueRamp
  );

// cursor.c

extern ULONG
DrvSetPointerShape(
  SURFOBJ  * Surface,
  SURFOBJ  * AndXorMask,
  SURFOBJ  * Colors,
  XLATEOBJ * ColorsXlate,
  LONG       XHot,
  LONG       YHot,
  LONG       X,
  LONG       Y,
  RECTL    * BoundaryRect,
  FLONG      Flags
  );
 
extern void 
DrvMovePointer(
  SURFOBJ * Surface,
  LONG      X,
  LONG      Y,
  RECTL   * BoundaryRect
  );

// surface.c

extern HBITMAP
DrvCreateDeviceBitmap(
  DHPDEV DeviceHandle,
  SIZEL  Size,
  ULONG  Format
  );

extern void
DrvDeleteDeviceBitmap(
  DHSURF SurfaceHandle
  );


// misc.c

extern ULONG
GdiFormatToBPP(
  ULONG GdiFormat
  );

extern ULONG
BPPToGdiFormat(
  ULONG BitsPerPixel
  );

extern const PERM3_FORMAT *
GdiFormatToPerm3Format(
  ULONG GdiFormat
  );

extern void
SurfobjToPerm3Surface(
  PERM3_SURFACE * Perm3Surface,
  SURFOBJ       * Surfobj,
  XLATEOBJ      * Xlate,
  BOOL            Source
  );

extern void
FreeSurfobjDerivedPerm3Surface(
  PERM3_SURFACE * Perm3Surface
  );

extern const PERM3_FORMAT *
GetRGBFormat();

extern const PERM3_FORMAT *
GetBGRFormat();

extern ULONG
PackXY(
  ULONG X,
  ULONG Y
  );

extern ULONG
Abs(
  LONG Value
  );

extern ULONG
GetSizeofPaletteMasks(
  const PERM3_FORMAT * Format
  );

// blt.c

extern BOOL
DrvBitBlt(
  SURFOBJ  * DestSurface,
  SURFOBJ  * SourceSurface,
  SURFOBJ  * MaskSurface,
  CLIPOBJ  * Clipper,
  XLATEOBJ * Xlate,
  RECTL    * DestRect,
  POINTL   * SourceTopLeft,
  POINTL   * MaskTopLeft,
  BRUSHOBJ * Brush,
  POINTL   * BrushOrigin,
  ROP4       Rop
  );

extern BOOL 
DrvAnyBlt(
  SURFOBJ  * DestSurface,
  SURFOBJ  * SourceSurface,
  SURFOBJ  * MaskSurface,
  CLIPOBJ  * Clipper,
  XLATEOBJ * Xlate,
  POINTL   * OriginTopLeft,
  RECTL    * DestRect,
  RECTL    * SourceRect,
  POINTL   * MaskTopLeft,
  BRUSHOBJ * Brush,
  POINTL   * BrushOrigin,
  ROP4       Rop,
  ULONG      Mode,
  ULONG	     Flags
  );

extern BOOL 
DrvTransparentBlt(
  SURFOBJ  * DestSurface,
  SURFOBJ  * SourceSurface,
  CLIPOBJ  * Clipper,
  XLATEOBJ * Xlate,
  RECTL    * DestRect,
  RECTL    * SourceRect,
  ULONG      TransColor
  );

extern BOOL
TryBothBlt(
  PERM3_BLT_PARAM * Parameters
  );

extern BOOL
HardwareBlt(
  PERM3_BLT_PARAM * Parameters
  );

// interrupt.c

extern BOOL
InitializeInterrupts();

extern BOOL
WaitForVerticalSync();

extern BOOL
FlipPrimaryOnVSync(
  LPVOID NewPrimary
  );

extern BOOL
IsFlipPending();

// dma.c

extern BOOL
InitializeDMA();

extern ULONG
RegisterToTag(
  ULONG Register
  );

extern void
WaitForDMASpace(
  ULONG Ulongs
  );

extern void
QueueDMATag(
  ULONG Tag,
  ULONG Data
  );

extern void
QueueDMAHold(
  ULONG Tag,
  ULONG Count
  );

extern void
QueueDMAIncrement(
  ULONG Tag,
  ULONG Count
  );

extern void
QueueDMAIndex(
  ULONG Register,
  ULONG Mask
  );

extern void
QueueDMAUlong(
  ULONG Data
  );

extern void
EndDMA();

extern void
DMAInterrupt();

extern void
WaitNotBusy();

extern BOOL
IsBusy();

// path.c

extern BOOL DrvFillPath(
  SURFOBJ  * DestSurface,
  PATHOBJ  * Path,
  CLIPOBJ  * Clipper,
  BRUSHOBJ * Brush,
  POINTL   * BrushOrigin,
  MIX        Mix,
  FLONG      Options
  );

// line.c

extern BOOL DrvStrokePath(
  SURFOBJ   * DestSurface,
  PATHOBJ   * Path,
  CLIPOBJ   * Clipper,
  XFORMOBJ  * Xform,
  BRUSHOBJ  * Brush,
  POINTL    * BrushOrigin,
  LINEATTRS * Attributes,
  MIX         Mix
  );

// context.c

extern void
Restore2DContext();

// brush.c

extern BOOL
DrvRealizeBrush(
  BRUSHOBJ * Brush,
  SURFOBJ  * TargetSurface,
  SURFOBJ  * PatternSurface,
  SURFOBJ  * MaskSurface,
  XLATEOBJ * Xlate,
  ULONG      Hatch
  );

extern void
HwBrush(
  PERM3_BLT_PARAM * Parameters
  );

⌨️ 快捷键说明

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