mirror of
https://github.com/reactos/reactos.git
synced 2024-07-14 00:25:05 +00:00
Simple temporary implementation of EngRealizeBrush. Not tested, not used yet.
svn path=/trunk/; revision=40278
This commit is contained in:
parent
d32f5cf257
commit
c14d3364c7
|
@ -27,8 +27,48 @@ EngRealizeBrush(
|
||||||
XLATEOBJ *pxlo,
|
XLATEOBJ *pxlo,
|
||||||
ULONG iHatch)
|
ULONG iHatch)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
EBRUSHOBJ *pebo;
|
||||||
return FALSE;
|
HBITMAP hbmpRealize;
|
||||||
|
SURFOBJ *psoRealize;
|
||||||
|
POINTL ptlSrc = {0, 0};
|
||||||
|
RECTL rclDest;
|
||||||
|
ULONG lWidth;
|
||||||
|
|
||||||
|
rclDest = (RECTL){0, 0, psoPattern->sizlBitmap.cx, psoPattern->sizlBitmap.cy};
|
||||||
|
|
||||||
|
/* Calculate width in bytes of the realized brush */
|
||||||
|
lWidth = DIB_GetDIBWidthBytes(psoPattern->sizlBitmap.cx,
|
||||||
|
BitsPerFormat(psoDst->iBitmapFormat));
|
||||||
|
|
||||||
|
/* Allocate a bitmap */
|
||||||
|
hbmpRealize = EngCreateBitmap(psoPattern->sizlBitmap,
|
||||||
|
lWidth,
|
||||||
|
psoDst->iBitmapFormat,
|
||||||
|
BMF_NOZEROINIT,
|
||||||
|
NULL);
|
||||||
|
if (!hbmpRealize)
|
||||||
|
{
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Lock the bitmap */
|
||||||
|
psoRealize = EngLockSurface(hbmpRealize);
|
||||||
|
if (!psoRealize)
|
||||||
|
{
|
||||||
|
EngDeleteSurface(hbmpRealize);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Copy the bits to the new format bitmap */
|
||||||
|
EngCopyBits(psoRealize, psoPattern, NULL, pxlo, &rclDest, &ptlSrc);
|
||||||
|
|
||||||
|
/* Unlock the bitmap again */
|
||||||
|
EngUnlockSurface(psoRealize);
|
||||||
|
|
||||||
|
pebo = CONTAINING_RECORD(pbo, EBRUSHOBJ, BrushObject);
|
||||||
|
pebo->pengbrush = (PVOID)hbmpRealize;
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
@ -61,6 +101,7 @@ EBRUSHOBJ_vInit(EBRUSHOBJ *pebo, PBRUSH pbrush, XLATEOBJ *pxlo)
|
||||||
// EBRUSHOBJ_bRealizeBrush(pebo);
|
// EBRUSHOBJ_bRealizeBrush(pebo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// pebo->psurfTrg = psurfTrg;
|
||||||
pebo->BrushObject.pvRbrush = pbrush->ulRealization;
|
pebo->BrushObject.pvRbrush = pbrush->ulRealization;
|
||||||
pebo->BrushObject.flColorType = 0;
|
pebo->BrushObject.flColorType = 0;
|
||||||
pebo->pbrush = pbrush;
|
pebo->pbrush = pbrush;
|
||||||
|
@ -91,7 +132,7 @@ EBRUSHOBJ_bRealizeBrush(EBRUSHOBJ *pebo)
|
||||||
psurfTrg = pebo->psurfTrg; // FIXME: all EBRUSHOBJs need a surface
|
psurfTrg = pebo->psurfTrg; // FIXME: all EBRUSHOBJs need a surface
|
||||||
ppdev = (PPDEVOBJ)psurfTrg->SurfObj.hdev; // FIXME: all SURFACEs need a PDEV
|
ppdev = (PPDEVOBJ)psurfTrg->SurfObj.hdev; // FIXME: all SURFACEs need a PDEV
|
||||||
|
|
||||||
pfnRealzizeBrush = ppdev->DriverFunctions.RealizeBrush;
|
pfnRealzizeBrush = NULL;//ppdev->DriverFunctions.RealizeBrush;
|
||||||
if (!pfnRealzizeBrush)
|
if (!pfnRealzizeBrush)
|
||||||
{
|
{
|
||||||
pfnRealzizeBrush = EngRealizeBrush;
|
pfnRealzizeBrush = EngRealizeBrush;
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
* DON'T MODIFY THIS STRUCTURE UNLESS REALLY NEEDED AND EVEN THEN ASK ON
|
* DON'T MODIFY THIS STRUCTURE UNLESS REALLY NEEDED AND EVEN THEN ASK ON
|
||||||
* A MAILING LIST FIRST.
|
* A MAILING LIST FIRST.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
typedef struct _BRUSH
|
typedef struct _BRUSH
|
||||||
{
|
{
|
||||||
/* Header for all gdi objects in the handle table.
|
/* Header for all gdi objects in the handle table.
|
||||||
|
@ -50,7 +49,7 @@ typedef struct _EBRUSHOBJ
|
||||||
|
|
||||||
COLORREF crRealize;
|
COLORREF crRealize;
|
||||||
ULONG ulRGBColor;
|
ULONG ulRGBColor;
|
||||||
DWORD pengbrush;
|
PVOID pengbrush;
|
||||||
ULONG ulSurfPalTime;
|
ULONG ulSurfPalTime;
|
||||||
ULONG ulDCPalTime;
|
ULONG ulDCPalTime;
|
||||||
COLORREF crCurrentText;
|
COLORREF crCurrentText;
|
||||||
|
|
Loading…
Reference in a new issue