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
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
|