windows-nt/Source/XPSP1/NT/multimedia/directx/ddrawex/dx3inc/dmemmgr.h
2020-09-26 16:20:57 +08:00

91 lines
2.2 KiB
C

/*==========================================================================;
*
* Copyright (C) 1994-1996 Microsoft Corporation. All Rights Reserved.
*
* File: dmemmgr.h
* Content: Direct Memory Manager include file
*@@BEGIN_MSINTERNAL
* History:
* Date By Reason
* ==== == ======
* 10-jun-95 craige initial implementation
* 18-jun-95 craige pitch in VidMemInit
* 17-jul-95 craige added VidMemLargestFree
* 29-nov-95 colinmc added VidMemAmountAllocated
*@@END_MSINTERNAL
***************************************************************************/
#ifndef __DMEMMGR_INCLUDED__
#define __DMEMMGR_INCLUDED__
#ifdef __cplusplus
extern "C" {
#endif
/*
* pointer to video meory
*/
typedef unsigned long FLATPTR;
/*
* video memory manager structures
*/
typedef struct _VMEML
{
struct _VMEML FAR *next;
FLATPTR ptr;
DWORD size;
} VMEML, FAR *LPVMEML, FAR * FAR *LPLPVMEML;
typedef struct _VMEMR
{
struct _VMEMR FAR *next;
struct _VMEMR FAR *prev;
struct _VMEMR FAR *pUp;
struct _VMEMR FAR *pDown;
struct _VMEMR FAR *pLeft;
struct _VMEMR FAR *pRight;
FLATPTR ptr;
DWORD size;
DWORD x;
DWORD y;
DWORD cx;
DWORD cy;
DWORD flags;
} VMEMR, FAR *LPVMEMR, FAR * FAR *LPLPVMEMR;
#ifdef NT_KERNEL_HEAPS
typedef void VMEMHEAP;
#else
typedef struct _VMEMHEAP
{
DWORD dwFlags;
DWORD stride;
LPVOID freeList;
LPVOID allocList;
} VMEMHEAP;
#endif
typedef VMEMHEAP FAR *LPVMEMHEAP;
#define VMEMHEAP_LINEAR 0x00000001l
#define VMEMHEAP_RECTANGULAR 0x00000002l
extern FLATPTR WINAPI VidMemAlloc( LPVMEMHEAP pvmh, DWORD width, DWORD height );
extern void WINAPI VidMemFree( LPVMEMHEAP pvmh, FLATPTR ptr );
//@@BEGIN_MSINTERNAL
extern LPVMEMHEAP WINAPI VidMemInit( DWORD flags, FLATPTR start, FLATPTR end_or_width, DWORD height, DWORD pitch );
extern void WINAPI VidMemFini( LPVMEMHEAP pvmh );
extern DWORD WINAPI VidMemAmountFree( LPVMEMHEAP pvmh );
extern DWORD WINAPI VidMemAmountAllocated( LPVMEMHEAP pvmh );
extern DWORD WINAPI VidMemLargestFree( LPVMEMHEAP pvmh );
extern void WINAPI VidMemGetRectStride( LPVMEMHEAP pvmh, LPLONG newstride );
//@@END_MSINTERNAL
#ifdef __cplusplus
};
#endif
#endif