mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
5.3 KiB
103 lines
5.3 KiB
/******************************Module*Header*******************************\
|
|
* Module Name: mcd.h
|
|
*
|
|
* Common data structures for MCD driver interface.
|
|
*
|
|
* Copyright (c) 1996 Microsoft Corporation
|
|
*
|
|
\**************************************************************************/
|
|
|
|
#ifndef _MCD_H
|
|
#define _MCD_H
|
|
|
|
//
|
|
// Maximum MCD scanline size assumed by OpenGL generic implementation.
|
|
//
|
|
#define MCD_MAX_SCANLINE 4096
|
|
|
|
#define MCD_MEM_READY 0x0001
|
|
#define MCD_MEM_BUSY 0x0002
|
|
#define MCD_MEM_INVALID 0x0003
|
|
|
|
typedef struct _MCDCONTEXT {
|
|
HDC hdc;
|
|
MCDHANDLE hMCDContext;
|
|
LONG ipfd;
|
|
LONG iLayer;
|
|
} MCDCONTEXT;
|
|
|
|
BOOL APIENTRY MCDGetDriverInfo(HDC hdc, MCDDRIVERINFO *pMCDDriverInfo);
|
|
LONG APIENTRY MCDDescribeMcdPixelFormat(HDC hdc, LONG iPixelFormat,
|
|
MCDPIXELFORMAT *pMcdPixelFmt);
|
|
LONG APIENTRY MCDDescribePixelFormat(HDC hdc, LONG iPixelFormat,
|
|
LPPIXELFORMATDESCRIPTOR ppfd);
|
|
BOOL APIENTRY MCDCreateContext(MCDCONTEXT *pMCDContext,
|
|
MCDRCINFO *pDrvRcInfo,
|
|
HWND hwnd, HDC hdc, LONG iPixelFormat,
|
|
LONG iLayer, ULONG flags);
|
|
BOOL APIENTRY MCDDeleteContext(MCDCONTEXT *pMCDContext);
|
|
UCHAR * APIENTRY MCDAlloc(MCDCONTEXT *pMCDContext, ULONG numBytes, MCDHANDLE *pMCDHandle,
|
|
ULONG flags);
|
|
BOOL APIENTRY MCDFree(MCDCONTEXT *pMCDContext, VOID *pMCDMem);
|
|
VOID APIENTRY MCDBeginState(MCDCONTEXT *pMCDContext, VOID *pMCDMem);
|
|
BOOL APIENTRY MCDFlushState(VOID *pMCDMem);
|
|
BOOL APIENTRY MCDAddState(VOID *pMCDMem, ULONG stateToChange,
|
|
ULONG stateValue);
|
|
BOOL APIENTRY MCDAddStateStruct(VOID *pMCDMem, ULONG stateToChange,
|
|
VOID *pStateValue, ULONG stateValueSize);
|
|
BOOL APIENTRY MCDSetViewport(MCDCONTEXT *pMCDContext, VOID *pMCDMem,
|
|
MCDVIEWPORT *pMCDViewport);
|
|
BOOL APIENTRY MCDSetScissorRect(MCDCONTEXT *pMCDContext, RECTL *pRect,
|
|
BOOL bEnabled);
|
|
ULONG APIENTRY MCDQueryMemStatus(VOID *pMCDMem);
|
|
PVOID APIENTRY MCDProcessBatch(MCDCONTEXT *pMCDContext, VOID *pMCDMem,
|
|
ULONG batchSize, VOID *pMCDFirstCmd);
|
|
BOOL APIENTRY MCDReadSpan(MCDCONTEXT *pMCDContext, VOID *pMCDMem,
|
|
ULONG x, ULONG y, ULONG numPixels, ULONG type);
|
|
BOOL APIENTRY MCDWriteSpan(MCDCONTEXT *pMCDContext, VOID *pMCDMem,
|
|
ULONG x, ULONG y, ULONG numPixels, ULONG type);
|
|
BOOL APIENTRY MCDClear(MCDCONTEXT *pMCDContext, RECTL rect, ULONG buffers);
|
|
BOOL APIENTRY MCDSwap(MCDCONTEXT *pMCDContext, ULONG flags);
|
|
BOOL APIENTRY MCDGetBuffers(MCDCONTEXT *pMCDContext, MCDBUFFERS *pMCDBuffers);
|
|
BOOL APIENTRY MCDAllocBuffers(MCDCONTEXT *pMCDContext, RECTL *pWndRect);
|
|
BOOL APIENTRY MCDBindContext(MCDCONTEXT *pMCDContext, HWND hWnd, HDC hdc);
|
|
BOOL APIENTRY MCDSync(MCDCONTEXT *pMCDContext);
|
|
MCDHANDLE APIENTRY MCDCreateTexture(MCDCONTEXT *pMCDContext,
|
|
MCDTEXTUREDATA *pTexData,
|
|
ULONG flags,
|
|
VOID *pSurface);
|
|
BOOL APIENTRY MCDDeleteTexture(MCDCONTEXT *pMCDContext, MCDHANDLE hTex);
|
|
BOOL APIENTRY MCDUpdateSubTexture(MCDCONTEXT *pMCDContext,
|
|
MCDTEXTUREDATA *pTexData, MCDHANDLE hTex,
|
|
ULONG lod, RECTL *pRect);
|
|
BOOL APIENTRY MCDUpdateTexturePalette(MCDCONTEXT *pMCDContext,
|
|
MCDTEXTUREDATA *pTexData, MCDHANDLE hTex,
|
|
ULONG start, ULONG numEntries);
|
|
BOOL APIENTRY MCDUpdateTexturePriority(MCDCONTEXT *pMCDContext,
|
|
MCDTEXTUREDATA *pTexData,
|
|
MCDHANDLE hTex);
|
|
BOOL APIENTRY MCDUpdateTextureState(MCDCONTEXT *pMCDContext,
|
|
MCDTEXTUREDATA *pTexData,
|
|
MCDHANDLE hTex);
|
|
ULONG APIENTRY MCDTextureStatus(MCDCONTEXT *pMCDContext, MCDHANDLE hTex);
|
|
ULONG APIENTRY MCDTextureKey(MCDCONTEXT *pMCDContext, MCDHANDLE hTex);
|
|
BOOL APIENTRY MCDDescribeMcdLayerPlane(HDC hdc, LONG iPixelFormat,
|
|
LONG iLayerPlane,
|
|
MCDLAYERPLANE *pMcdPixelFmt);
|
|
BOOL APIENTRY MCDDescribeLayerPlane(HDC hdc, LONG iPixelFormat,
|
|
LONG iLayerPlane,
|
|
LPLAYERPLANEDESCRIPTOR ppfd);
|
|
LONG APIENTRY MCDSetLayerPalette(HDC hdc, LONG iLayerPlane, BOOL bRealize,
|
|
LONG cEntries, COLORREF *pcr);
|
|
ULONG APIENTRY MCDDrawPixels(MCDCONTEXT *pMCDContext, ULONG width, ULONG height,
|
|
ULONG format, ULONG type, VOID *pPixels, BOOL packed);
|
|
ULONG APIENTRY MCDReadPixels(MCDCONTEXT *pMCDContext, LONG x, LONG y, ULONG width, ULONG height,
|
|
ULONG format, ULONG type, VOID *pPixels);
|
|
ULONG APIENTRY MCDCopyPixels(MCDCONTEXT *pMCDContext, LONG x, LONG y, ULONG width, ULONG height,
|
|
ULONG type);
|
|
ULONG APIENTRY MCDPixelMap(MCDCONTEXT *pMCDContext, ULONG mapType, ULONG mapSize,
|
|
VOID *pMap);
|
|
BOOL APIENTRY MCDLock(MCDCONTEXT *pMCDContext);
|
|
VOID APIENTRY MCDUnlock(MCDCONTEXT *pMCDContext);
|
|
|
|
#endif
|