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.
 
 
 
 
 
 

76 lines
1.9 KiB

/******************************Module*Header*******************************\
*
* Module Name: enable.c
* Author: Mark Einkauf
* Purpose: Interface to display driver
*
* Copyright (c) 1997 Cirrus Logic, Inc.
*
\**************************************************************************/
#include "precomp.h"
#include "mcdhw.h"
#include "mcdutil.h"
// Called by display driver from DrvAssertMode
// Need to free any textures in video memory, since video memory is
// about to be reconfigured
VOID AssertModeMCD(
PDEV* ppdev,
BOOL bEnabled)
{
LL_Texture *pTexCtlBlk;
MCDBG_PRINT("AssertModeMCD");
pTexCtlBlk = ppdev->pFirstTexture->next;
while (pTexCtlBlk)
{
if (pTexCtlBlk->pohTextureMap)
{
ppdev->pFreeOffScnMem(ppdev, pTexCtlBlk->pohTextureMap);
pTexCtlBlk->pohTextureMap = NULL;
}
pTexCtlBlk = pTexCtlBlk->next;
}
}
MCDRVGETENTRYPOINTSFUNC CLMCDInit(PPDEV ppdev)
{
int i;
ppdev->cZBufferRef = (LONG) NULL;
ppdev->cDoubleBufferRef = (LONG) NULL;
ppdev->pMCDFilterFunc = (MCDENGESCFILTERFUNC) NULL;
ppdev->pohBackBuffer = (POFMHDL) NULL;
ppdev->pohZBuffer = (POFMHDL) NULL;
ppdev->pAssertModeMCD = AssertModeMCD;
// set pRegs to top of memory mapped register space
ppdev->LL_State.pRegs = (DWORD *)ppdev->pLgREGS;
LL_InitLib(ppdev); // initialize 3d state
// floating point reciprocal table
ppdev->frecips[0]=(float)0.0;
for ( i=1; i<=LAST_FRECIP; i++)
{
ppdev->frecips[i]= (float)1.0 / (float)i;
}
// alloc first (dummy) texture control block
ppdev->pFirstTexture = ppdev->pLastTexture = (LL_Texture *)MCDAlloc(sizeof(LL_Texture));
if ( ppdev->pFirstTexture )
{
ppdev->pFirstTexture->prev = ppdev->pFirstTexture->next = NULL;
ppdev->pFirstTexture->pohTextureMap = NULL;
}
return(MCDrvGetEntryPoints);
}