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

View file

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

View file

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

View file

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

View file

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

View file

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