[FORMATTING]

Fix indentation, no code change

svn path=/trunk/; revision=63090
This commit is contained in:
Timo Kreuzer 2014-05-01 09:48:40 +00:00
parent 779f0311f1
commit a45e440cac
7 changed files with 1138 additions and 1069 deletions

View file

@ -38,7 +38,8 @@ const LONG LINC[2] = {-1, 1};
/* FUNCTIONS ******************************************************************/
BOOL FASTCALL
BOOL
FASTCALL
IntEngGradientFillRect(
IN SURFOBJ *psoDest,
IN CLIPOBJ *pco,
@ -92,20 +93,20 @@ IntEngGradientFillRect(
RECTL FillRect;
ULONG Color;
if(Horizontal)
if (Horizontal)
{
EnumMore = CLIPOBJ_bEnum(pco, (ULONG) sizeof(RectEnum), (PVOID) &RectEnum);
for (i = 0; i < RectEnum.c && RectEnum.arcl[i].top <= rcSG.bottom; i++)
{
if(RECTL_bIntersectRect(&FillRect, &RectEnum.arcl[i], &rcSG))
if (RECTL_bIntersectRect(&FillRect, &RectEnum.arcl[i], &rcSG))
{
HVINITCOL(Red, 0);
HVINITCOL(Green, 1);
HVINITCOL(Blue, 2);
for(y = rcSG.left; y < FillRect.right; y++)
for (y = rcSG.left; y < FillRect.right; y++)
{
if(y >= FillRect.left)
if (y >= FillRect.left)
{
Color = XLATEOBJ_iXlate(pxlo, RGB(c[0], c[1], c[2]));
DibFunctionsForBitmapFormat[psoOutput->iBitmapFormat].DIB_VLine(
@ -125,19 +126,22 @@ IntEngGradientFillRect(
EnumMore = CLIPOBJ_bEnum(pco, (ULONG) sizeof(RectEnum), (PVOID) &RectEnum);
for (i = 0; i < RectEnum.c && RectEnum.arcl[i].top <= rcSG.bottom; i++)
{
if(RECTL_bIntersectRect(&FillRect, &RectEnum.arcl[i], &rcSG))
if (RECTL_bIntersectRect(&FillRect, &RectEnum.arcl[i], &rcSG))
{
HVINITCOL(Red, 0);
HVINITCOL(Green, 1);
HVINITCOL(Blue, 2);
for(y = rcSG.top; y < FillRect.bottom; y++)
for (y = rcSG.top; y < FillRect.bottom; y++)
{
if(y >= FillRect.top)
if (y >= FillRect.top)
{
Color = XLATEOBJ_iXlate(pxlo, RGB(c[0], c[1], c[2]));
DibFunctionsForBitmapFormat[psoOutput->iBitmapFormat].DIB_HLine(
psoOutput, FillRect.left + Translate.x, FillRect.right + Translate.x, y + Translate.y, Color);
DibFunctionsForBitmapFormat[psoOutput->iBitmapFormat].DIB_HLine(psoOutput,
FillRect.left + Translate.x,
FillRect.right + Translate.x,
y + Translate.y,
Color);
}
HVSTEPCOL(0);
HVSTEPCOL(1);
@ -146,7 +150,8 @@ IntEngGradientFillRect(
}
}
} while(EnumMore);
}
while (EnumMore);
return IntEngLeave(&EnterLeave);
}
@ -161,16 +166,20 @@ IntEngGradientFillRect(
EnumMore = CLIPOBJ_bEnum(pco, (ULONG) sizeof(RectEnum), (PVOID) &RectEnum);
for (i = 0; i < RectEnum.c && RectEnum.arcl[i].top <= rcSG.bottom; i++)
{
if(RECTL_bIntersectRect(&FillRect, &RectEnum.arcl[i], &rcSG))
if (RECTL_bIntersectRect(&FillRect, &RectEnum.arcl[i], &rcSG))
{
for(; FillRect.top < FillRect.bottom; FillRect.top++)
for (; FillRect.top < FillRect.bottom; FillRect.top++)
{
DibFunctionsForBitmapFormat[psoOutput->iBitmapFormat].DIB_HLine(
psoOutput, FillRect.left + Translate.x, FillRect.right + Translate.x, FillRect.top + Translate.y, Color);
DibFunctionsForBitmapFormat[psoOutput->iBitmapFormat].DIB_HLine(psoOutput,
FillRect.left + Translate.x,
FillRect.right + Translate.x,
FillRect.top + Translate.y,
Color);
}
}
}
} while(EnumMore);
}
while (EnumMore);
return IntEngLeave(&EnterLeave);
}
@ -181,6 +190,7 @@ IntEngGradientFillRect(
DibFunctionsForBitmapFormat[psoOutput->iBitmapFormat].DIB_HLine(psoOutput, max(sx[lineto], FillRect.left), min(sx[linefrom], FillRect.right), sy, Color); \
else \
DibFunctionsForBitmapFormat[psoOutput->iBitmapFormat].DIB_HLine(psoOutput, max(sx[linefrom], FillRect.left), min(sx[lineto], FillRect.right), sy, Color);
#define S_DOLINE(a,b,line) \
ex[line] += dx[line]; \
while(ex[line] > 0 && x[line] != destx[line]) \
@ -189,11 +199,14 @@ IntEngGradientFillRect(
sx[line] += incx[line]; \
ex[line] -= dy[line]; \
}
#define S_GOLINE(a,b,line) \
if(y >= a->y && y <= b->y) \
{
#define S_ENDLINE(a,b,line) \
}
#define S_INITLINE(a,b,line) \
x[line] = a->x; \
sx[line] = a->x + pptlDitherOrg->x; \
@ -209,6 +222,7 @@ IntEngGradientFillRect(
dc[line][id] = abs((b->col >> 8) - c[line][id]); \
ec[line][id] = -(dy[line]>>1); \
ic[line][id] = LINC[(b->col >> 8) > c[line][id]]
#define STEPCOL(a,b,line,col,id) \
ec[line][id] += dc[line][id]; \
while(ec[line][id] > 0) \
@ -216,11 +230,13 @@ IntEngGradientFillRect(
c[line][id] += ic[line][id]; \
ec[line][id] -= dy[line]; \
}
#define FINITCOL(linefrom,lineto,colid) \
gc[colid] = c[linefrom][colid]; \
gd[colid] = abs(c[lineto][colid] - gc[colid]); \
ge[colid] = -(gx >> 1); \
gi[colid] = LINC[c[lineto][colid] > gc[colid]]
#define FDOCOL(linefrom,lineto,colid) \
ge[colid] += gd[colid]; \
while(ge[colid] > 0) \
@ -228,6 +244,7 @@ IntEngGradientFillRect(
gc[colid] += gi[colid]; \
ge[colid] -= gx; \
}
#define FILLLINE(linefrom,lineto) \
gx = abs(sx[lineto] - sx[linefrom]); \
gxi = LINC[sx[linefrom] < sx[lineto]]; \
@ -245,6 +262,7 @@ IntEngGradientFillRect(
FDOCOL(linefrom, lineto, 1); \
FDOCOL(linefrom, lineto, 2); \
}
#define DOLINE(a,b,line) \
STEPCOL(a, b, line, Red, 0); \
STEPCOL(a, b, line, Green, 1); \
@ -256,11 +274,14 @@ IntEngGradientFillRect(
sx[line] += incx[line]; \
ex[line] -= dy[line]; \
}
#define GOLINE(a,b,line) \
if(y >= a->y && y <= b->y) \
{
#define ENDLINE(a,b,line) \
}
#define INITLINE(a,b,line) \
x[line] = a->x; \
sx[line] = a->x + pptlDitherOrg->x; \
@ -269,17 +290,23 @@ IntEngGradientFillRect(
incx[line] = LINC[b->x > a->x]; \
ex[line] = -(dy[line]>>1); \
destx[line] = b->x
#define DOINIT(a, b, line) \
INITLINE(a, b, line); \
INITCOL(a, b, line, Red, 0); \
INITCOL(a, b, line, Green, 1); \
INITCOL(a, b, line, Blue, 2);
#define SMALLER(a,b) (a->y < b->y) || (a->y == b->y && a->x < b->x)
#define SWAP(a,b,c) c = a;\
a = b;\
b = c
#define NLINES 3
BOOL FASTCALL
BOOL
FASTCALL
IntEngGradientFillTriangle(
IN SURFOBJ *psoDest,
IN CLIPOBJ *pco,
@ -311,18 +338,19 @@ IntEngGradientFillTriangle(
v3 = (pVertex + gTriangle->Vertex3);
/* bubble sort */
if(SMALLER(v2,v1))
if (SMALLER(v2, v1))
{
TRIVERTEX *t;
SWAP(v1,v2,t);
SWAP(v1, v2, t);
}
if(SMALLER(v3,v2))
if (SMALLER(v3, v2))
{
TRIVERTEX *t;
SWAP(v2,v3,t);
if(SMALLER(v2,v1))
SWAP(v2, v3, t);
if (SMALLER(v2, v1))
{
SWAP(v1,v2,t);
SWAP(v1, v2, t);
}
}
@ -330,12 +358,12 @@ IntEngGradientFillTriangle(
/* FIXME: commented out because of an endless loop - fix triangles first */
DPRINT1("FIXME: IntEngGradientFillTriangle is broken\n");
if(!IntEngEnter(&EnterLeave, psoDest, &FillRect, FALSE, &Translate, &psoOutput))
if (!IntEngEnter(&EnterLeave, psoDest, &FillRect, FALSE, &Translate, &psoOutput))
{
return FALSE;
}
//if(VCMPCLRS(v1, v2, v3))
//if (VCMPCLRS(v1, v2, v3))
//{
// CLIPOBJ_cEnumStart(pco, FALSE, CT_RECTANGLES, CD_RIGHTDOWN, 0);
// do
@ -343,7 +371,7 @@ IntEngGradientFillTriangle(
// EnumMore = CLIPOBJ_bEnum(pco, (ULONG) sizeof(RectEnum), (PVOID) &RectEnum);
// for (i = 0; i < RectEnum.c && RectEnum.arcl[i].top <= prclExtents->bottom; i++)
// {
// if(RECTL_bIntersectRect(&FillRect, &RectEnum.arcl[i], prclExtents))
// if (RECTL_bIntersectRect(&FillRect, &RectEnum.arcl[i], prclExtents))
// {
// BOOL InY;
@ -355,7 +383,7 @@ IntEngGradientFillTriangle(
// sy = v1->y + pptlDitherOrg->y;
// bt = min(v3->y + pptlDitherOrg->y, FillRect.bottom);
// while(sy < bt)
// while (sy < bt)
// {
// InY = !(sy < FillRect.top || sy >= FillRect.bottom);
// GOLINE(v1, v3, 0);
@ -377,7 +405,7 @@ IntEngGradientFillTriangle(
// }
// }
// }
// } while(EnumMore);
// } while (EnumMore);
// return IntEngLeave(&EnterLeave);
//}
@ -391,7 +419,7 @@ IntEngGradientFillTriangle(
// EnumMore = CLIPOBJ_bEnum(pco, (ULONG) sizeof(RectEnum), (PVOID) &RectEnum);
// for (i = 0; i < RectEnum.c && RectEnum.arcl[i].top <= prclExtents->bottom; i++)
// {
// if(RECTL_bIntersectRect(&FillRect, &RectEnum.arcl[i], prclExtents))
// if (RECTL_bIntersectRect(&FillRect, &RectEnum.arcl[i], prclExtents))
// {
// S_INITLINE(v1, v3, 0);
// S_INITLINE(v1, v2, 1);
@ -401,7 +429,7 @@ IntEngGradientFillTriangle(
// sy = v1->y + pptlDitherOrg->y;
// bt = min(v3->y + pptlDitherOrg->y, FillRect.bottom);
// while(sy < bt)
// while (sy < bt)
// {
// S_GOLINE(v1, v3, 0);
// S_DOLINE(v1, v3, 0);
@ -422,13 +450,14 @@ IntEngGradientFillTriangle(
// }
// }
// }
//} while(EnumMore);
//} while (EnumMore);
return IntEngLeave(&EnterLeave);
}
static BOOL
static
BOOL
IntEngIsNULLTriangle(TRIVERTEX *pVertex, GRADIENT_TRIANGLE *gt)
{
if(COMPAREVERTEX(VERTEX(Vertex1), VERTEX(Vertex2)))
@ -441,7 +470,8 @@ IntEngIsNULLTriangle(TRIVERTEX *pVertex, GRADIENT_TRIANGLE *gt)
}
BOOL APIENTRY
BOOL
APIENTRY
EngGradientFill(
_Inout_ SURFOBJ *psoDest,
_In_ CLIPOBJ *pco,
@ -472,10 +502,17 @@ EngGradientFill(
case GRADIENT_FILL_RECT_V:
{
PGRADIENT_RECT gr = (PGRADIENT_RECT)pMesh;
for(i = 0; i < nMesh; i++, gr++)
for (i = 0; i < nMesh; i++, gr++)
{
if(!IntEngGradientFillRect(psoDest, pco, pxlo, pVertex, nVertex, gr, prclExtents,
pptlDitherOrg, (ulMode == GRADIENT_FILL_RECT_H)))
if (!IntEngGradientFillRect(psoDest,
pco,
pxlo,
pVertex,
nVertex,
gr,
prclExtents,
pptlDitherOrg,
(ulMode == GRADIENT_FILL_RECT_H)))
{
break;
}
@ -486,14 +523,20 @@ EngGradientFill(
case GRADIENT_FILL_TRIANGLE:
{
PGRADIENT_TRIANGLE gt = (PGRADIENT_TRIANGLE)pMesh;
for(i = 0; i < nMesh; i++, gt++)
for (i = 0; i < nMesh; i++, gt++)
{
if(IntEngIsNULLTriangle(pVertex, gt))
if (IntEngIsNULLTriangle(pVertex, gt))
{
/* skip empty triangles */
continue;
}
if(!IntEngGradientFillTriangle(psoDest, pco, pxlo, pVertex, nVertex, gt, prclExtents,
if (!IntEngGradientFillTriangle(psoDest,
pco,
pxlo,
pVertex,
nVertex,
gt,
prclExtents,
pptlDitherOrg))
{
break;
@ -507,7 +550,8 @@ EngGradientFill(
return ret;
}
BOOL APIENTRY
BOOL
APIENTRY
IntEngGradientFill(
IN SURFOBJ *psoDest,
IN CLIPOBJ *pco,
@ -527,16 +571,31 @@ IntEngGradientFill(
psurf = CONTAINING_RECORD(psoDest, SURFACE, SurfObj);
ASSERT(psurf);
if(psurf->flags & HOOK_GRADIENTFILL)
if (psurf->flags & HOOK_GRADIENTFILL)
{
Ret = GDIDEVFUNCS(psoDest).GradientFill(
psoDest, pco, pxlo, pVertex, nVertex, pMesh, nMesh,
prclExtents, pptlDitherOrg, ulMode);
Ret = GDIDEVFUNCS(psoDest).GradientFill(psoDest,
pco,
pxlo,
pVertex,
nVertex,
pMesh,
nMesh,
prclExtents,
pptlDitherOrg,
ulMode);
}
else
{
Ret = EngGradientFill(psoDest, pco, pxlo, pVertex, nVertex, pMesh, nMesh, prclExtents,
pptlDitherOrg, ulMode);
Ret = EngGradientFill(psoDest,
pco,
pxlo,
pVertex,
nVertex,
pMesh,
nMesh,
prclExtents,
pptlDitherOrg,
ulMode);
}
return Ret;

View file

@ -8,26 +8,28 @@
*/
HSEMAPHORE
APIENTRY
EngCreateSemaphore ( VOID )
EngCreateSemaphore(VOID)
{
// www.osr.com/ddk/graphics/gdifncs_95lz.htm
PERESOURCE psem = ExAllocatePoolWithTag( NonPagedPool, sizeof(ERESOURCE), GDITAG_SEMAPHORE );
if ( !psem )
PERESOURCE psem = ExAllocatePoolWithTag(NonPagedPool, sizeof(ERESOURCE), GDITAG_SEMAPHORE);
if (!psem)
return NULL;
if ( !NT_SUCCESS(ExInitializeResourceLite ( psem )) )
if (!NT_SUCCESS(ExInitializeResourceLite(psem)))
{
ExFreePoolWithTag ( psem, GDITAG_SEMAPHORE );
return NULL;
}
return (HSEMAPHORE)psem;
}
VOID
FASTCALL
IntGdiAcquireSemaphore ( HSEMAPHORE hsem )
IntGdiAcquireSemaphore(HSEMAPHORE hsem)
{
KeEnterCriticalRegion();
ExAcquireResourceExclusiveLite ( (PERESOURCE)hsem, TRUE );
ExAcquireResourceExclusiveLite ((PERESOURCE)hsem, TRUE);
}
/*
@ -35,12 +37,12 @@ IntGdiAcquireSemaphore ( HSEMAPHORE hsem )
*/
VOID
APIENTRY
EngAcquireSemaphore ( IN HSEMAPHORE hsem )
EngAcquireSemaphore(IN HSEMAPHORE hsem)
{
// www.osr.com/ddk/graphics/gdifncs_14br.htm
PTHREADINFO W32Thread;
ASSERT(hsem);
IntGdiAcquireSemaphore ( hsem );
IntGdiAcquireSemaphore(hsem);
W32Thread = PsGetThreadWin32Thread(PsGetCurrentThread());
if (W32Thread) W32Thread->dwEngAcquireCount++;
}
@ -50,7 +52,7 @@ VOID
FASTCALL
IntGdiReleaseSemaphore ( HSEMAPHORE hsem )
{
ExReleaseResourceLite ( (PERESOURCE)hsem );
ExReleaseResourceLite((PERESOURCE)hsem);
KeLeaveCriticalRegion();
}
@ -66,7 +68,7 @@ EngReleaseSemaphore ( IN HSEMAPHORE hsem )
ASSERT(hsem);
W32Thread = PsGetThreadWin32Thread(PsGetCurrentThread());
if (W32Thread) --W32Thread->dwEngAcquireCount;
IntGdiReleaseSemaphore ( hsem );
IntGdiReleaseSemaphore(hsem);
}
VOID
@ -90,11 +92,10 @@ APIENTRY
EngDeleteSemaphore ( IN HSEMAPHORE hsem )
{
// www.osr.com/ddk/graphics/gdifncs_13c7.htm
ASSERT ( hsem );
ASSERT(hsem);
ExDeleteResourceLite((PERESOURCE)hsem);
ExFreePoolWithTag( (PVOID)hsem, GDITAG_SEMAPHORE);
ExFreePoolWithTag((PVOID)hsem, GDITAG_SEMAPHORE);
}
/*
@ -118,7 +119,7 @@ EngIsSemaphoreOwnedByCurrentThread ( IN HSEMAPHORE hsem )
{
// www.osr.com/ddk/graphics/gdifncs_9yxz.htm
ASSERT(hsem);
return ExIsResourceAcquiredExclusiveLite ( (PERESOURCE)hsem );
return ExIsResourceAcquiredExclusiveLite((PERESOURCE)hsem);
}
/*

View file

@ -14,7 +14,8 @@
/*
* @implemented
*/
void APIENTRY
void
APIENTRY
EngSort(IN OUT PBYTE Buf, IN ULONG ElemSize, IN ULONG ElemCount, IN SORTCOMP CompFunc)
{
qsort(Buf, ElemCount, ElemSize, CompFunc);

View file

@ -10,8 +10,7 @@ APIENTRY
STROBJ_bEnum(
IN STROBJ *pstro,
OUT ULONG *pc,
OUT PGLYPHPOS *ppgpos
)
OUT PGLYPHPOS *ppgpos)
{
// www.osr.com/ddk/graphics/gdifncs_65uv.htm
UNIMPLEMENTED;
@ -20,7 +19,8 @@ STROBJ_bEnum(
DWORD
APIENTRY
STROBJ_dwGetCodePage ( IN STROBJ *pstro )
STROBJ_dwGetCodePage(
IN STROBJ *pstro)
{
// www.osr.com/ddk/graphics/gdifncs_9jmv.htm
PSTRGDI pStrGdi = (PSTRGDI) pstro;
@ -29,7 +29,8 @@ STROBJ_dwGetCodePage ( IN STROBJ *pstro )
VOID
APIENTRY
STROBJ_vEnumStart ( IN STROBJ *pstro )
STROBJ_vEnumStart(
IN STROBJ *pstro)
{
// www.osr.com/ddk/graphics/gdifncs_32uf.htm
UNIMPLEMENTED;
@ -38,7 +39,8 @@ STROBJ_vEnumStart ( IN STROBJ *pstro )
/*
* @unimplemented
*/
BOOL APIENTRY
BOOL
APIENTRY
STROBJ_bEnumPositionsOnly(
IN STROBJ *StringObj,
OUT ULONG *Count,
@ -51,7 +53,8 @@ STROBJ_bEnumPositionsOnly(
/*
* @unimplemented
*/
BOOL APIENTRY
BOOL
APIENTRY
STROBJ_bGetAdvanceWidths(
IN STROBJ *StringObj,
IN ULONG First,
@ -65,7 +68,8 @@ STROBJ_bGetAdvanceWidths(
/*
* @implemented
*/
FIX APIENTRY
FIX
APIENTRY
STROBJ_fxBreakExtra(
IN STROBJ *StringObj)
{
@ -77,13 +81,14 @@ STROBJ_fxBreakExtra(
/*
* @implemented
*/
FIX APIENTRY
FIX
APIENTRY
STROBJ_fxCharacterExtra(
IN STROBJ *StringObj)
{
PSTRGDI pStrGdi = (PSTRGDI) StringObj;
if (pStrGdi->StrObj.flAccel & SO_CHARACTER_EXTRA) return pStrGdi->fxExtra;
return (FIX) 0;
return (FIX)0;
}
/* EOF */

View file

@ -8,13 +8,12 @@
#define UNIMPLEMENTED DbgPrint("(%s:%i) WIN32K: %s UNIMPLEMENTED\n", __FILE__, __LINE__, __FUNCTION__ )
/*
* @unimplemented
*/
BOOL
APIENTRY
EngTextOut (
EngTextOut(
SURFOBJ *pso,
STROBJ *pstro,
FONTOBJ *pfo,
@ -24,8 +23,7 @@ EngTextOut (
BRUSHOBJ *pboFore,
BRUSHOBJ *pboOpaque,
POINTL *pptlOrg,
MIX mix
)
MIX mix)
{
// www.osr.com/ddk/graphics/gdifncs_4tgn.htm
UNIMPLEMENTED;
@ -37,7 +35,7 @@ EngTextOut (
*/
PATHOBJ*
APIENTRY
CLIPOBJ_ppoGetPath ( IN CLIPOBJ *pco )
CLIPOBJ_ppoGetPath(IN CLIPOBJ *pco)
{
// www.osr.com/ddk/graphics/gdifncs_6hbb.htm
UNIMPLEMENTED;
@ -49,7 +47,7 @@ CLIPOBJ_ppoGetPath ( IN CLIPOBJ *pco )
*/
BOOL
APIENTRY
EngCheckAbort ( IN SURFOBJ *pso )
EngCheckAbort(IN SURFOBJ *pso)
{
// www.osr.com/ddk/graphics/gdifncs_3u7b.htm
UNIMPLEMENTED;
@ -64,8 +62,7 @@ APIENTRY
EngComputeGlyphSet(
IN INT nCodePage,
IN INT nFirstChar,
IN INT cChars
)
IN INT cChars)
{
// www.osr.com/ddk/graphics/gdifncs_9607.htm
UNIMPLEMENTED;
@ -77,7 +74,7 @@ EngComputeGlyphSet(
*/
PATHOBJ*
APIENTRY
EngCreatePath ( VOID )
EngCreatePath(VOID)
{
// www.osr.com/ddk/graphics/gdifncs_4aav.htm
UNIMPLEMENTED;
@ -89,7 +86,7 @@ EngCreatePath ( VOID )
*/
VOID
APIENTRY
EngDeletePath ( IN PATHOBJ *ppo )
EngDeletePath(IN PATHOBJ *ppo)
{
// www.osr.com/ddk/graphics/gdifncs_3fl3.htm
UNIMPLEMENTED;
@ -100,14 +97,13 @@ EngDeletePath ( IN PATHOBJ *ppo )
*/
BOOL
APIENTRY
EngEnumForms (
EngEnumForms(
IN HANDLE hPrinter,
IN DWORD Level,
OUT LPBYTE pForm,
IN DWORD cbBuf,
OUT LPDWORD pcbNeeded,
OUT LPDWORD pcReturned
)
OUT LPDWORD pcReturned)
{
// www.osr.com/ddk/graphics/gdifncs_5e07.htm
UNIMPLEMENTED;
@ -119,15 +115,14 @@ EngEnumForms (
*/
BOOL
APIENTRY
EngFillPath (
EngFillPath(
IN SURFOBJ *pso,
IN PATHOBJ *ppo,
IN CLIPOBJ *pco,
IN BRUSHOBJ *pbo,
IN POINTL *pptlBrushOrg,
IN MIX mix,
IN FLONG flOptions
)
IN FLONG flOptions)
{
// www.osr.com/ddk/graphics/gdifncs_9pyf.htm
UNIMPLEMENTED;
@ -143,8 +138,7 @@ EngFindResource(
IN HANDLE h,
IN int iName,
IN int iType,
OUT PULONG pulSize
)
OUT PULONG pulSize)
{
// www.osr.com/ddk/graphics/gdifncs_7rjb.htm
UNIMPLEMENTED;
@ -158,8 +152,7 @@ BOOL
APIENTRY
EngGetFileChangeTime(
IN HANDLE h,
OUT LARGE_INTEGER *pChangeTime
)
OUT LARGE_INTEGER *pChangeTime)
{
// www.osr.com/ddk/graphics/gdifncs_1i1z.htm
UNIMPLEMENTED;
@ -173,8 +166,7 @@ BOOL
APIENTRY
EngGetFilePath(
IN HANDLE h,
OUT WCHAR (*pDest)[MAX_PATH+1]
)
OUT WCHAR (*pDest)[MAX_PATH + 1])
{
// www.osr.com/ddk/graphics/gdifncs_5g2v.htm
UNIMPLEMENTED;
@ -192,8 +184,7 @@ EngGetForm(
IN DWORD Level,
OUT LPBYTE pForm,
IN DWORD cbBuf,
OUT LPDWORD pcbNeeded
)
OUT LPDWORD pcbNeeded)
{
// www.osr.com/ddk/graphics/gdifncs_5vvr.htm
UNIMPLEMENTED;
@ -210,8 +201,7 @@ EngGetPrinter(
IN DWORD dwLevel,
OUT LPBYTE pPrinter,
IN DWORD cbBuf,
OUT LPDWORD pcbNeeded
)
OUT LPDWORD pcbNeeded)
{
// www.osr.com/ddk/graphics/gdifncs_50h3.htm
UNIMPLEMENTED;
@ -229,8 +219,7 @@ EngGetPrinterData(
OUT LPDWORD pType,
OUT LPBYTE pData,
IN DWORD nSize,
OUT LPDWORD pcbNeeded
)
OUT LPDWORD pcbNeeded)
{
// www.osr.com/ddk/graphics/gdifncs_8t5z.htm
UNIMPLEMENTED;
@ -242,7 +231,7 @@ EngGetPrinterData(
*/
LPWSTR
APIENTRY
EngGetPrinterDataFileName ( IN HDEV hdev )
EngGetPrinterDataFileName(IN HDEV hdev)
{
// www.osr.com/ddk/graphics/gdifncs_2giv.htm
UNIMPLEMENTED;
@ -260,8 +249,7 @@ EngGetType1FontList(
IN ULONG cjType1Buffer,
OUT PULONG pulLocalFonts,
OUT PULONG pulRemoteFonts,
OUT LARGE_INTEGER *pLastModified
)
OUT LARGE_INTEGER *pLastModified)
{
// www.osr.com/ddk/graphics/gdifncs_6e5j.htm
UNIMPLEMENTED;
@ -273,7 +261,7 @@ EngGetType1FontList(
*/
BOOL
APIENTRY
EngMarkBandingSurface ( IN HSURF hsurf )
EngMarkBandingSurface(IN HSURF hsurf)
{
// www.osr.com/ddk/graphics/gdifncs_2jon.htm
UNIMPLEMENTED;
@ -287,8 +275,7 @@ EngMultiByteToWideChar(
OUT LPWSTR WideCharString,
IN INT BytesInWideCharString,
IN LPSTR MultiByteString,
IN INT BytesInMultiByteString
)
IN INT BytesInMultiByteString)
{
// www.osr.com/ddk/graphics/gdifncs_32cn.htm
UNIMPLEMENTED;
@ -297,7 +284,7 @@ EngMultiByteToWideChar(
VOID
APIENTRY
EngQueryLocalTime ( OUT PENG_TIME_FIELDS ptf )
EngQueryLocalTime(OUT PENG_TIME_FIELDS ptf)
{
// www.osr.com/ddk/graphics/gdifncs_389z.htm
UNIMPLEMENTED;
@ -309,8 +296,7 @@ EngQueryPalette(
IN HPALETTE hPal,
OUT ULONG *piMode,
IN ULONG cColors,
OUT ULONG *pulColors
)
OUT ULONG *pulColors)
{
// www.osr.com/ddk/graphics/gdifncs_21t3.htm
UNIMPLEMENTED;
@ -324,8 +310,7 @@ EngSetPrinterData(
IN LPWSTR pType,
IN DWORD dwType,
IN LPBYTE lpbPrinterData,
IN DWORD cjPrinterData
)
IN DWORD cjPrinterData)
{
// www.osr.com/ddk/graphics/gdifncs_8drb.htm
UNIMPLEMENTED;
@ -344,8 +329,7 @@ EngStrokeAndFillPath(
IN BRUSHOBJ *pboFill,
IN POINTL *pptlBrushOrg,
IN MIX mixFill,
IN FLONG flOptions
)
IN FLONG flOptions)
{
// www.osr.com/ddk/graphics/gdifncs_2xwn.htm
UNIMPLEMENTED;
@ -362,8 +346,7 @@ EngStrokePath(
IN BRUSHOBJ *pbo,
IN POINTL *pptlBrushOrg,
IN LINEATTRS *plineattrs,
IN MIX mix
)
IN MIX mix)
{
// www.osr.com/ddk/graphics/gdifncs_4yaw.htm
UNIMPLEMENTED;
@ -377,8 +360,7 @@ EngWideCharToMultiByte(
IN LPWSTR WideCharString,
IN INT BytesInWideCharString,
OUT LPSTR MultiByteString,
IN INT BytesInMultiByteString
)
IN INT BytesInMultiByteString)
{
// www.osr.com/ddk/graphics/gdifncs_35wn.htm
UNIMPLEMENTED;
@ -387,12 +369,11 @@ EngWideCharToMultiByte(
BOOL
APIENTRY
EngWritePrinter (
EngWritePrinter(
IN HANDLE hPrinter,
IN LPVOID pBuf,
IN DWORD cbBuf,
OUT LPDWORD pcWritten
)
OUT LPDWORD pcWritten)
{
// www.osr.com/ddk/graphics/gdifncs_9v6v.htm
UNIMPLEMENTED;
@ -404,10 +385,9 @@ EngWritePrinter (
*/
ULONG
APIENTRY
FONTOBJ_cGetAllGlyphHandles (
FONTOBJ_cGetAllGlyphHandles(
IN FONTOBJ *FontObj,
IN HGLYPH *Glyphs
)
IN HGLYPH *Glyphs)
{
UNIMPLEMENTED;
return 0;
@ -423,8 +403,7 @@ FONTOBJ_cGetGlyphs(
IN ULONG Mode,
IN ULONG NumGlyphs,
IN HGLYPH *GlyphHandles,
IN PVOID *OutGlyphs
)
IN PVOID *OutGlyphs)
{
UNIMPLEMENTED;
return 0;
@ -435,7 +414,7 @@ FONTOBJ_cGetGlyphs(
*/
IFIMETRICS*
APIENTRY
FONTOBJ_pifi ( IN FONTOBJ *FontObj )
FONTOBJ_pifi(IN FONTOBJ *FontObj)
{
UNIMPLEMENTED;
return NULL;
@ -446,7 +425,7 @@ FONTOBJ_pifi ( IN FONTOBJ *FontObj )
*/
PVOID
APIENTRY
FONTOBJ_pvTrueTypeFontFile (
FONTOBJ_pvTrueTypeFontFile(
IN FONTOBJ *FontObj,
IN ULONG *FileSize)
{
@ -459,7 +438,7 @@ FONTOBJ_pvTrueTypeFontFile (
*/
XFORMOBJ*
APIENTRY
FONTOBJ_pxoGetXform ( IN FONTOBJ *FontObj )
FONTOBJ_pxoGetXform(IN FONTOBJ *FontObj)
{
UNIMPLEMENTED;
return NULL;
@ -470,7 +449,7 @@ FONTOBJ_pxoGetXform ( IN FONTOBJ *FontObj )
*/
VOID
APIENTRY
FONTOBJ_vGetInfo (
FONTOBJ_vGetInfo(
IN FONTOBJ *FontObj,
IN ULONG InfoSize,
OUT PFONTINFO FontInfo)
@ -486,8 +465,7 @@ HT_ComputeRGBGammaTable(
IN USHORT RedGamma,
IN USHORT GreenGamma,
IN USHORT BlueGamma,
OUT LPBYTE pGammaTable
)
OUT LPBYTE pGammaTable)
{
// www.osr.com/ddk/graphics/gdifncs_9dpj.htm
UNIMPLEMENTED;
@ -500,8 +478,7 @@ HT_Get8BPPFormatPalette(
OUT LPPALETTEENTRY pPaletteEntry,
IN USHORT RedGamma,
IN USHORT GreenGamma,
IN USHORT BlueGamma
)
IN USHORT BlueGamma)
{
// www.osr.com/ddk/graphics/gdifncs_8kvb.htm
UNIMPLEMENTED;
@ -510,7 +487,7 @@ HT_Get8BPPFormatPalette(
BOOL
APIENTRY
PATHOBJ_bCloseFigure ( IN PATHOBJ *ppo )
PATHOBJ_bCloseFigure(IN PATHOBJ *ppo)
{
// www.osr.com/ddk/graphics/gdifncs_5mhz.htm
UNIMPLEMENTED;
@ -519,10 +496,9 @@ PATHOBJ_bCloseFigure ( IN PATHOBJ *ppo )
BOOL
APIENTRY
PATHOBJ_bEnum (
PATHOBJ_bEnum(
IN PATHOBJ *ppo,
OUT PATHDATA *ppd
)
OUT PATHDATA *ppd)
{
// www.osr.com/ddk/graphics/gdifncs_98o7.htm
UNIMPLEMENTED;
@ -534,8 +510,7 @@ APIENTRY
PATHOBJ_bEnumClipLines(
IN PATHOBJ *ppo,
IN ULONG cb,
OUT CLIPLINE *pcl
)
OUT CLIPLINE *pcl)
{
// www.osr.com/ddk/graphics/gdifncs_4147.htm
UNIMPLEMENTED;
@ -546,8 +521,7 @@ BOOL
APIENTRY
PATHOBJ_bMoveTo(
IN PATHOBJ *ppo,
IN POINTFIX ptfx
)
IN POINTFIX ptfx)
{
// www.osr.com/ddk/graphics/gdifncs_70vb.htm
UNIMPLEMENTED;
@ -559,8 +533,7 @@ APIENTRY
PATHOBJ_bPolyBezierTo(
IN PATHOBJ *ppo,
IN POINTFIX *pptfx,
IN ULONG cptfx
)
IN ULONG cptfx)
{
// www.osr.com/ddk/graphics/gdifncs_2c9z.htm
UNIMPLEMENTED;
@ -572,8 +545,7 @@ APIENTRY
PATHOBJ_bPolyLineTo(
IN PATHOBJ *ppo,
IN POINTFIX *pptfx,
IN ULONG cptfx
)
IN ULONG cptfx)
{
// www.osr.com/ddk/graphics/gdifncs_0x47.htm
UNIMPLEMENTED;
@ -582,7 +554,7 @@ PATHOBJ_bPolyLineTo(
VOID
APIENTRY
PATHOBJ_vEnumStart ( IN PATHOBJ *ppo )
PATHOBJ_vEnumStart(IN PATHOBJ *ppo)
{
// www.osr.com/ddk/graphics/gdifncs_74br.htm
UNIMPLEMENTED;
@ -594,8 +566,7 @@ PATHOBJ_vEnumStartClipLines(
IN PATHOBJ *ppo,
IN CLIPOBJ *pco,
IN SURFOBJ *pso,
IN LINEATTRS *pla
)
IN LINEATTRS *pla)
{
// www.osr.com/ddk/graphics/gdifncs_5grr.htm
UNIMPLEMENTED;
@ -605,8 +576,7 @@ VOID
APIENTRY
PATHOBJ_vGetBounds(
IN PATHOBJ *ppo,
OUT PRECTFX prectfx
)
OUT PRECTFX prectfx)
{
// www.osr.com/ddk/graphics/gdifncs_8qp3.htm
UNIMPLEMENTED;
@ -615,7 +585,8 @@ PATHOBJ_vGetBounds(
/*
* @unimplemented
*/
ULONG APIENTRY
ULONG
APIENTRY
EngDitherColor(
IN HDEV hdev,
IN ULONG iMode,
@ -629,7 +600,8 @@ EngDitherColor(
/*
* @unimplemented
*/
HANDLE APIENTRY
HANDLE
APIENTRY
BRUSHOBJ_hGetColorTransform(
IN BRUSHOBJ *Brush)
{
@ -652,7 +624,8 @@ EngDeleteFile(
/*
* @unimplemented
*/
BOOL APIENTRY
BOOL
APIENTRY
EngGetPrinterDriver(
IN HANDLE Printer,
IN LPWSTR Environment,
@ -668,7 +641,8 @@ EngGetPrinterDriver(
/*
* @unimplemented
*/
ULONG APIENTRY
ULONG
APIENTRY
EngHangNotification(
IN HDEV Dev,
IN PVOID Reserved)
@ -680,7 +654,8 @@ EngHangNotification(
/*
* @unimplemented
*/
BOOL APIENTRY
BOOL
APIENTRY
EngLpkInstalled()
{
UNIMPLEMENTED;
@ -690,7 +665,8 @@ EngLpkInstalled()
/*
* @unimplemented
*/
BOOL APIENTRY
BOOL
APIENTRY
EngPlgBlt(
IN SURFOBJ *Dest,
IN SURFOBJ *Source,
@ -711,7 +687,8 @@ EngPlgBlt(
/*
* @unimplemented
*/
BOOL APIENTRY
BOOL
APIENTRY
EngQueryDeviceAttribute(
IN HDEV Device,
IN ENG_DEVICE_ATTRIBUTE Attribute,
@ -740,7 +717,8 @@ EngQueryFileTimeStamp(IN LPWSTR FileName)
/*
* @unimplemented
*/
FD_GLYPHSET * APIENTRY
FD_GLYPHSET *
APIENTRY
FONTOBJ_pfdg(
IN FONTOBJ *FontObj)
{
@ -751,7 +729,8 @@ FONTOBJ_pfdg(
/*
* @unimplemented
*/
PBYTE APIENTRY
PBYTE
APIENTRY
FONTOBJ_pjOpenTypeTablePointer(
IN FONTOBJ *FontObj,
IN ULONG Tag,
@ -764,7 +743,8 @@ FONTOBJ_pjOpenTypeTablePointer(
/*
* @unimplemented
*/
PFD_GLYPHATTR APIENTRY
PFD_GLYPHATTR
APIENTRY
FONTOBJ_pQueryGlyphAttrs(
IN FONTOBJ *FontObj,
IN ULONG Mode)
@ -776,7 +756,8 @@ FONTOBJ_pQueryGlyphAttrs(
/*
* @unimplemented
*/
LPWSTR APIENTRY
LPWSTR
APIENTRY
FONTOBJ_pwszFontFilePaths(
IN FONTOBJ *FontObj,
OUT ULONG *PathLength)
@ -788,7 +769,8 @@ FONTOBJ_pwszFontFilePaths(
/*
* @unimplemented
*/
LONG APIENTRY
LONG
APIENTRY
HT_Get8BPPMaskPalette(
IN OUT LPPALETTEENTRY PaletteEntry,
IN BOOL Use8BPPMaskPal,
@ -848,8 +830,7 @@ NtGdiAddFontMemResourceEx(
IN DWORD cjBuffer,
IN DESIGNVECTOR *pdv,
IN ULONG cjDV,
OUT DWORD *pNumFonts
)
OUT DWORD *pNumFonts)
{
UNIMPLEMENTED;
return NULL;
@ -1208,7 +1189,7 @@ NtGdiGetEudcTimeStampEx(
*/
BOOL
APIENTRY
NtGdiInitSpool()
NtGdiInitSpool(VOID)
{
UNIMPLEMENTED;
return FALSE;
@ -1219,7 +1200,8 @@ NtGdiInitSpool()
*/
INT
APIENTRY
NtGdiQueryFonts( OUT PUNIVERSAL_FONT_ID pufiFontList,
NtGdiQueryFonts(
OUT PUNIVERSAL_FONT_ID pufiFontList,
IN ULONG nBufferSize,
OUT PLARGE_INTEGER pTimeStamp)
{
@ -1232,7 +1214,8 @@ NtGdiQueryFonts( OUT PUNIVERSAL_FONT_ID pufiFontList,
*/
INT
APIENTRY
NtGdiGetSpoolMessage( DWORD u1,
NtGdiGetSpoolMessage(
DWORD u1,
DWORD u2,
DWORD u3,
DWORD u4)
@ -1559,7 +1542,7 @@ NtGdiIcmBrushInfo(
*/
BOOL
APIENTRY
NtGdiInit()
NtGdiInit(VOID)
{
return TRUE;
}
@ -1695,7 +1678,8 @@ EngControlSprites(
PVOID
APIENTRY
EngFntCacheAlloc(IN ULONG FastCheckSum,
EngFntCacheAlloc(
IN ULONG FastCheckSum,
IN ULONG ulSize)
{
UNIMPLEMENTED;
@ -1704,7 +1688,8 @@ EngFntCacheAlloc(IN ULONG FastCheckSum,
VOID
APIENTRY
EngFntCacheFault(IN ULONG ulFastCheckSum,
EngFntCacheFault(
IN ULONG ulFastCheckSum,
IN ULONG iFaultMode)
{
UNIMPLEMENTED;
@ -1712,7 +1697,8 @@ EngFntCacheFault(IN ULONG ulFastCheckSum,
PVOID
APIENTRY
EngFntCacheLookUp(IN ULONG FastCheckSum,
EngFntCacheLookUp(
IN ULONG FastCheckSum,
OUT PULONG pulSize)
{
UNIMPLEMENTED;
@ -1721,7 +1707,8 @@ EngFntCacheLookUp(IN ULONG FastCheckSum,
BOOLEAN
APIENTRY
EngNineGrid(IN SURFOBJ* pDestSurfaceObj,
EngNineGrid(
IN SURFOBJ* pDestSurfaceObj,
IN SURFOBJ* pSourceSurfaceObj,
IN CLIPOBJ* pClipObj,
IN XLATEOBJ* pXlateObj,

View file

@ -11,8 +11,10 @@
#define NDEBUG
#include <debug.h>
BOOL APIENTRY
EngTransparentBlt(SURFOBJ *psoDest,
BOOL
APIENTRY
EngTransparentBlt(
SURFOBJ *psoDest,
SURFOBJ *psoSource,
CLIPOBJ *Clip,
XLATEOBJ *ColorTranslation,
@ -35,7 +37,7 @@ EngTransparentBlt(SURFOBJ *psoDest,
InputRect = *SourceRect;
if(!IntEngEnter(&EnterLeaveSource, psoSource, &InputRect, TRUE, &Translate, &InputObj))
if (!IntEngEnter(&EnterLeaveSource, psoSource, &InputRect, TRUE, &Translate, &InputObj))
{
return FALSE;
}
@ -56,24 +58,24 @@ EngTransparentBlt(SURFOBJ *psoDest,
OutputRect.bottom = DestRect->top;
}
if(Clip)
if (Clip)
{
if(OutputRect.left < Clip->rclBounds.left)
if (OutputRect.left < Clip->rclBounds.left)
{
InputRect.left += Clip->rclBounds.left - OutputRect.left;
OutputRect.left = Clip->rclBounds.left;
}
if(Clip->rclBounds.right < OutputRect.right)
if (Clip->rclBounds.right < OutputRect.right)
{
InputRect.right -= OutputRect.right - Clip->rclBounds.right;
OutputRect.right = Clip->rclBounds.right;
}
if(OutputRect.top < Clip->rclBounds.top)
if (OutputRect.top < Clip->rclBounds.top)
{
InputRect.top += Clip->rclBounds.top - OutputRect.top;
OutputRect.top = Clip->rclBounds.top;
}
if(Clip->rclBounds.bottom < OutputRect.bottom)
if (Clip->rclBounds.bottom < OutputRect.bottom)
{
InputRect.bottom -= OutputRect.bottom - Clip->rclBounds.bottom;
OutputRect.bottom = Clip->rclBounds.bottom;
@ -82,13 +84,13 @@ EngTransparentBlt(SURFOBJ *psoDest,
/* Check for degenerate case: if height or width of OutputRect is 0 pixels there's
nothing to do */
if(OutputRect.right <= OutputRect.left || OutputRect.bottom <= OutputRect.top)
if (OutputRect.right <= OutputRect.left || OutputRect.bottom <= OutputRect.top)
{
IntEngLeave(&EnterLeaveSource);
return TRUE;
}
if(!IntEngEnter(&EnterLeaveDest, psoDest, &OutputRect, FALSE, &Translate, &OutputObj))
if (!IntEngEnter(&EnterLeaveDest, psoDest, &OutputRect, FALSE, &Translate, &OutputObj))
{
IntEngLeave(&EnterLeaveSource);
return FALSE;
@ -105,7 +107,7 @@ EngTransparentBlt(SURFOBJ *psoDest,
DstWidth = OutputRect.right - OutputRect.left;
SrcHeight = InputRect.bottom - InputRect.top;
SrcWidth = InputRect.right - InputRect.left;
switch(ClippingType)
switch (ClippingType)
{
case DC_TRIVIAL:
{
@ -139,9 +141,9 @@ EngTransparentBlt(SURFOBJ *psoDest,
RECT_ENUM RectEnum;
BOOL EnumMore;
if(OutputObj == InputObj)
if (OutputObj == InputObj)
{
if(OutputRect.top < InputRect.top)
if (OutputRect.top < InputRect.top)
{
Direction = OutputRect.left < (InputRect.left ? CD_RIGHTDOWN : CD_LEFTDOWN);
}
@ -177,13 +179,14 @@ EngTransparentBlt(SURFOBJ *psoDest,
Ret = DibFunctionsForBitmapFormat[psoDest->iBitmapFormat].DIB_TransparentBlt(
OutputObj, InputObj, &CombinedRect, &InputToCombinedRect, ColorTranslation, iTransColor);
if(!Ret)
if (!Ret)
{
break;
}
}
}
} while(EnumMore && Ret);
}
while (EnumMore && Ret);
break;
}
default:
@ -199,8 +202,10 @@ EngTransparentBlt(SURFOBJ *psoDest,
return Ret;
}
BOOL FASTCALL
IntEngTransparentBlt(SURFOBJ *psoDest,
BOOL
FASTCALL
IntEngTransparentBlt(
SURFOBJ *psoDest,
SURFOBJ *psoSource,
CLIPOBJ *Clip,
XLATEOBJ *ColorTranslation,
@ -230,12 +235,12 @@ IntEngTransparentBlt(SURFOBJ *psoDest,
if (!Clip) Clip = &gxcoTrivial.ClipObj;
InputClippedRect = *DestRect;
if(InputClippedRect.right < InputClippedRect.left)
if (InputClippedRect.right < InputClippedRect.left)
{
InputClippedRect.left = DestRect->right;
InputClippedRect.right = DestRect->left;
}
if(InputClippedRect.bottom < InputClippedRect.top)
if (InputClippedRect.bottom < InputClippedRect.top)
{
InputClippedRect.top = DestRect->bottom;
InputClippedRect.bottom = DestRect->top;
@ -246,7 +251,7 @@ IntEngTransparentBlt(SURFOBJ *psoDest,
* outside the surface */
if (Clip->iDComplexity != DC_TRIVIAL)
{
if(!RECTL_bIntersectRect(&OutputRect, &InputClippedRect, &Clip->rclBounds))
if (!RECTL_bIntersectRect(&OutputRect, &InputClippedRect, &Clip->rclBounds))
{
return TRUE;
}
@ -266,19 +271,30 @@ IntEngTransparentBlt(SURFOBJ *psoDest,
OutputRect = InputClippedRect;
}
if(psurfDest->flags & HOOK_TRANSPARENTBLT)
if (psurfDest->flags & HOOK_TRANSPARENTBLT)
{
Ret = GDIDEVFUNCS(psoDest).TransparentBlt(
psoDest, psoSource, Clip, ColorTranslation, &OutputRect,
&InputRect, iTransColor, Reserved);
Ret = GDIDEVFUNCS(psoDest).TransparentBlt(psoDest,
psoSource,
Clip,
ColorTranslation,
&OutputRect,
&InputRect,
iTransColor,
Reserved);
}
else
Ret = FALSE;
if(!Ret)
if (!Ret)
{
Ret = EngTransparentBlt(psoDest, psoSource, Clip, ColorTranslation,
&OutputRect, &InputRect, iTransColor, Reserved);
Ret = EngTransparentBlt(psoDest,
psoSource,
Clip,
ColorTranslation,
&OutputRect,
&InputRect,
iTransColor,
Reserved);
}
return Ret;