mirror of https://github.com/lianthony/NT4.0
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.
250 lines
5.3 KiB
250 lines
5.3 KiB
/*++
|
|
|
|
Copyright (c) 1995 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
bitmap.c
|
|
|
|
Abstract:
|
|
|
|
Implementation of brush and bitmap image related DDI entry points:
|
|
DrvRealizeBrush
|
|
DrvCopyBits
|
|
DrvBitBlt
|
|
DrvStretchBlt
|
|
|
|
Environment:
|
|
|
|
Windows NT PostScript driver
|
|
|
|
Revision History:
|
|
|
|
03/16/96 -davidx-
|
|
Initial framework.
|
|
|
|
mm/dd/yy -author-
|
|
description
|
|
|
|
--*/
|
|
|
|
#include "pscript.h"
|
|
|
|
|
|
|
|
BOOL
|
|
DrvRealizeBrush(
|
|
BRUSHOBJ *pbo,
|
|
SURFOBJ *psoTarget,
|
|
SURFOBJ *psoPattern,
|
|
SURFOBJ *psoMask,
|
|
XLATEOBJ *pxlo,
|
|
ULONG iHatch
|
|
)
|
|
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Implementation of DDI entry point DrvRealizeBrush.
|
|
Please refer to DDK documentation for more details.
|
|
|
|
Arguments:
|
|
|
|
pbo - BRUSHOBJ to be realized
|
|
psoTarget - Defines the surface for which the brush is to be realized
|
|
psoPattern - Defines the pattern for the brush
|
|
psoMask - Transparency mask for the brush
|
|
pxlo - Defines the interpretration of colors in the pattern
|
|
iHatch - Specifies whether psoPattern is one of the hatch brushes
|
|
|
|
Return Value:
|
|
|
|
TRUE if successful, FALSE if there is an error
|
|
|
|
--*/
|
|
|
|
{
|
|
PDEV pdev;
|
|
|
|
VERBOSE(("Entering DrvRealizeBrush...\n"));
|
|
ASSERT(pbo && psoTarget);
|
|
|
|
pdev = (PDEV) psoTarget->dhpdev;
|
|
ASSERT(ValidPDEV(pdev));
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
|
|
|
|
BOOL
|
|
DrvCopyBits(
|
|
SURFOBJ *psoDest,
|
|
SURFOBJ *psoSrc,
|
|
CLIPOBJ *pco,
|
|
XLATEOBJ *pxlo,
|
|
RECTL *prclDest,
|
|
POINTL *pptlSrc
|
|
)
|
|
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Implementation of DDI entry point DrvCopyBits.
|
|
Please refer to DDK documentation for more details.
|
|
|
|
Arguments:
|
|
|
|
psoDest - Points to the destination surface
|
|
psoSrc - Points to the source surface
|
|
pco - Defines a clipping region on the destination surface
|
|
pxlo - Defines the translation of color indices
|
|
between the source and target surfaces
|
|
prclDest - Defines the area to be modified
|
|
pptlSrc - Defines the upper-left corner of the source rectangle
|
|
|
|
Return Value:
|
|
|
|
TRUE if successful, FALSE if there is an error
|
|
|
|
--*/
|
|
|
|
{
|
|
PDEV pdev;
|
|
|
|
VERBOSE(("Entering DrvCopyBits...\n"));
|
|
ASSERT(psoDest);
|
|
|
|
pdev = (PDEV) psoDest->dhpdev;
|
|
ASSERT(ValidPDEV(pdev));
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
|
|
|
|
BOOL
|
|
DrvBitBlt(
|
|
SURFOBJ *psoTrg,
|
|
SURFOBJ *psoSrc,
|
|
SURFOBJ *psoMask,
|
|
CLIPOBJ *pco,
|
|
XLATEOBJ *pxlo,
|
|
RECTL *prclTrg,
|
|
POINTL *pptlSrc,
|
|
POINTL *pptlMask,
|
|
BRUSHOBJ *pbo,
|
|
POINTL *pptlBrush,
|
|
ROP4 rop4
|
|
)
|
|
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Implementation of DDI entry point DrvBitBlt.
|
|
Please refer to DDK documentation for more details.
|
|
|
|
Arguments:
|
|
|
|
psoTrg - Describes the target surface
|
|
psoSrc - Describes the source surface
|
|
psoMask - Describes the mask for rop4
|
|
pco - Limits the area to be modified
|
|
pxlo - Specifies how color indices are translated
|
|
between the source and target surfaces
|
|
prclTrg - Defines the area to be modified
|
|
pptlSrc - Defines the upper left corner of the source rectangle
|
|
pptlMask - Defines which pixel in the mask corresponds to
|
|
the upper left corner of the source rectangle
|
|
pbo - Defines the pattern for bitblt
|
|
pptlBrush - Defines the origin of the brush in the destination surface
|
|
rop4 - ROP code that defines how the mask, pattern, source, and
|
|
destination pixels are combined to write to the destination surface
|
|
|
|
Return Value:
|
|
|
|
TRUE if successful, FALSE if there is an error
|
|
|
|
--*/
|
|
|
|
{
|
|
DWORD fgRop3, bkRop3;
|
|
PDEV pdev;
|
|
|
|
VERBOSE(("Entering DrvBitBlt...\n"));
|
|
ASSERT(psoTrg);
|
|
|
|
pdev = (PDEV) psoTrg->dhpdev;
|
|
ASSERT(ValidPDEV(pdev));
|
|
|
|
//
|
|
// Extract the foreground and background ROP3
|
|
//
|
|
|
|
fgRop3 = GetForegroundRop3(rop4);
|
|
bkRop3 = GetBackgroundRop3(rop4);
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
|
|
|
|
BOOL
|
|
DrvStretchBlt(
|
|
SURFOBJ *psoDest,
|
|
SURFOBJ *psoSrc,
|
|
SURFOBJ *psoMask,
|
|
CLIPOBJ *pco,
|
|
XLATEOBJ *pxlo,
|
|
COLORADJUSTMENT *pca,
|
|
POINTL *pptlHTOrg,
|
|
RECTL *prclDest,
|
|
RECTL *prclSrc,
|
|
POINTL *pptlMask,
|
|
ULONG iMode
|
|
)
|
|
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Implementation of DDI entry point DrvStretchBlt.
|
|
Please refer to DDK documentation for more details.
|
|
|
|
Arguments:
|
|
|
|
psoDest - Defines the surface on which to draw
|
|
psoSrc - Defines the source for blt operation
|
|
psoMask - Defines a surface that provides a mask for the source
|
|
pco - Limits the area to be modified on the destination
|
|
pxlo - Specifies how color indexes are to be translated
|
|
between the source and target surfaces
|
|
pca - Defines color adjustment values to be applied to the source bitmap
|
|
pptlHTOrg - Specifies the origin of the halftone brush
|
|
prclDest - Defines the area to be modified on the destination surface
|
|
prclSrc - Defines the area to be copied from the source surface
|
|
pptlMask - Specifies which pixel in the given mask corresponds to
|
|
the upper left pixel in the source rectangle
|
|
iMode - Specifies how source pixels are combined to get output pixels
|
|
|
|
Return Value:
|
|
|
|
TRUE if successful, FALSE if there is an error
|
|
|
|
--*/
|
|
|
|
{
|
|
PDEV pdev;
|
|
|
|
VERBOSE(("Entering DrvStretchBlt...\n"));
|
|
ASSERT(psoDest);
|
|
|
|
pdev = (PDEV) psoDest->dhpdev;
|
|
ASSERT(ValidPDEV(pdev));
|
|
|
|
return FALSE;
|
|
}
|
|
|