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