Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

80 lines
2.2 KiB

/******************************Module*Header*******************************\
* Module Name: xlateddi.cxx
*
* This provides the interface for device drivers to call functions
* for xlate objects.
*
* Created: 26-Nov-1990 16:40:24
* Author: Patrick Haluptzok patrickh
*
* Copyright (c) 1990 Microsoft Corporation
\**************************************************************************/
#include "precomp.hxx"
/******************************Public*Routine******************************\
* XLATEOBJ_piVector
*
* Returns the translation vector if one exists.
*
* History:
* 03-May-1991 -by- Patrick Haluptzok patrickh
* Wrote it.
\**************************************************************************/
PULONG XLATEOBJ_piVector(XLATEOBJ *pxlo)
{
//
// This is really stupid to have a call back, but the theory was that
// it could be lazily computed and some drivers would choose to compute
// it themselves (maybe with hardware help). Anyhow we know of no driver
// or hardware that would benefit from this so we just compute it up
// front every time anyhow. Drivers are written to check for NULL first
// and call this routine if it's NULL.
//
return(pxlo->pulXlate);
}
/******************************Public*Routine******************************\
* XLATEOBJ_cGetPalette
*
* Used to retrieve information about the palettes used in the blt.
*
* History:
* 03-May-1991 -by- Patrick Haluptzok patrickh
* Wrote it.
\**************************************************************************/
ULONG XLATEOBJ_cGetPalette(
XLATEOBJ *pxlo,
ULONG iPal,
ULONG cPal,
PULONG ppal)
{
ASSERTGDI((iPal == XO_SRCPALETTE) || (XO_DESTPALETTE == iPal), "ERROR XLATEOBJ_cGetPalette passed undefined iPal");
//
// Since our global identity xlate is invalid we need to check for
// this case since drivers can't tell.
//
if (pxlo == NULL)
{
WARNING("XLATEOBJ_cGetPalette failed - xlate invalid or identiy, no palette informinformation\n");
return(0);
}
XLATE *pxl = (XLATE *) pxlo;
XEPALOBJ pal((iPal == XO_SRCPALETTE) ? pxl->ppalSrc : pxl->ppalDst);
if (pal.bValid())
{
return(pal.ulGetEntries(0, cPal, (LPPALETTEENTRY) ppal, TRUE));
}
else
{
return(0);
}
}