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.
 
 
 
 
 
 

164 lines
3.6 KiB

/******************************Module*Header*******************************\
*
* $Workfile: PATH.C $
*
* Author: Noel VanHook
* Date: Jan 10, 1996
*
* Purpose: Handle calls to DrvStokeAndFillPath.
*
* Copyright (c) 1996 Cirrus Logic, Inc.
*
* $Log: X:/log/laguna/nt35/displays/cl546x/path.c $
*
* Rev 1.7 21 Mar 1997 12:21:42 noelv
* Combined "do_flag" and "sw_test_flag" together into "pointer_switch"
*
* Rev 1.6 26 Nov 1996 09:57:52 noelv
* Added DBG prints.
*
* Rev 1.5 06 Sep 1996 15:16:36 noelv
* Updated NULL driver for 4.0
*
* Rev 1.4 20 Aug 1996 11:04:08 noelv
* Bugfix release from Frido 8-19-96
*
* Rev 1.3 17 Aug 1996 14:03:28 frido
* Added PVCS header.
*
\**************************************************************************/
#include "precomp.h"
#define PATH_DBG_LEVEL 1
//
// Since we don't accelerate these, we only hook them for analysys purposes.
// Otherwise, skip the entire file.
//
#if NULL_STROKEFILL || PROFILE_DRIVER
//
// Table to convert ROP2 codes to ROP3 codes.
//
extern BYTE Rop2ToRop3[]; // See paint.c
//
// Driver profiling stuff.
// Gets compiled out in a free bulid.
//
#if PROFILE_DRIVER
void DumpStrokeAndFillInfo(INT acc, SURFOBJ* pso, MIX mix, BRUSHOBJ* pbo);
#else
#define DumpStrokeAndFillInfo(acc, pso, mix, pbo)
#endif
/**************************************************************************\
* DrvStrokeAndFillPath *
* *
* We don't currently accelerate this, but we hook it for analysis. *
* *
\**************************************************************************/
BOOL DrvStrokeAndFillPath
(
SURFOBJ *pso,
PATHOBJ *ppo,
CLIPOBJ *pco,
XFORMOBJ *pxo,
BRUSHOBJ *pboStroke,
LINEATTRS *plineattrs,
BRUSHOBJ *pboFill,
POINTL *pptlBrushOrg,
MIX mix,
FLONG flOptions
)
{
#if NULL_STROKEFILL
{
if (pointer_switch) return TRUE;
}
#endif
DISPDBG((PATH_DBG_LEVEL, "DrvStrokeAndFillPath.\n"));
//
// Dump info on what is being punted to a file.
//
DumpStrokeAndFillInfo(0, pso, mix, pboStroke);
//
// Punt it back to GDI.
//
return FALSE;
}
// ==================================================================
#if PROFILE_DRIVER
void DumpStrokeAndFillInfo(
INT acc,
SURFOBJ* pso,
MIX mix,
BRUSHOBJ* pbo)
{
PPDEV ppdev;
ppdev = (PPDEV) (pso ? pso->dhpdev : 0);
//////////////////////////////////////////////////////////////
// Profiling info to keep track of what GDI is asking us to do.
//
if (!ppdev)
{
RIP(("DrvStrokeAndFillPath() with no clipOBJ and no PDEV!\n"));
}
else
{
fprintf(ppdev->pfile,"DrvStrokeAndFillPath: ");
fprintf(ppdev->pfile,"(PUNT) ");
//
// Check the DEST
//
fprintf(ppdev->pfile,"DEST=%s ", (ppdev ? "FB" : "HOST?") );
//
// Check the MIX
//
fprintf(ppdev->pfile,"Mix=0x%08X ", mix);
//
// Type of pattern.
//
if (pbo == NULL)
fprintf(ppdev->pfile,"BRUSH=NONE ");
else if (pbo->iSolidColor == 0xFFFFFFFF )
{
fprintf(ppdev->pfile,"BRUSH=PATTERN ");
}
else
{
fprintf(ppdev->pfile,"BRUSH=SOLID ");
fprintf(ppdev->pfile,"COLOR = 0x%08X ",(pbo->iSolidColor));
}
fprintf(ppdev->pfile,"\n");
fflush(ppdev->pfile);
}
}
#endif // PROFILE_DRIVER
#endif