Leaked source code of windows server 2003
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.
 
 
 
 
 
 

50 lines
1.6 KiB

/******************************Module*Header**********************************\
*
* *******************
* * SAMPLE CODE *
* *******************
*
* Module Name: p2ctxt.h
*
* Content:
* Context switching for P2. Used to create and swap contexts in and out.
* The GDI, DDraw and D3D part each have another context.
*
* Copyright (c) 1994-1998 3Dlabs Inc. Ltd. All rights reserved.
* Copyright (c) 1995-1999 Microsoft Corporation. All rights reserved.
\*****************************************************************************/
#ifndef __p2ctxt__
#define __p2ctxt__
// each time round allocate this many entries
#define CTXT_CHUNK 8
typedef VOID(*PCtxtUserFunc)(PPDev);
// each context consists of a set of tags and the corresponding data. so after
// ntags we have 2*ntags*sizeof(DWORD) bytes of memory.
typedef struct tagP2CtxtData {
DWORD dwTag;
DWORD dwData;
} P2CtxtData;
typedef struct tagP2CtxtRec {
BOOL bInitialized;
P2CtxtType dwCtxtType;
LONG lNumOfTags;
ULONG ulTexelLUTEntries; // number of registers to save for the Texel LUT context
ULONG *pTexelLUTCtxt; // Texel LUT context array
PCtxtUserFunc P2UserFunc;
P2CtxtData pData[1];
// more follows in memory
} P2CtxtRec;
typedef struct tagP2CtxtTableRec {
ULONG lSize; // in bytes of the table
ULONG lEntries;
P2CtxtPtr pEntry[CTXT_CHUNK];
// more to be allocated in memory if needed
} P2CtxtTableRec, *P2CtxtTablePtr;
#endif