2 * PROJECT: Win32 subsystem
3 * LICENSE: See COPYING in the top level directory
4 * FILE: subsystems/win32/win32k/dib/dib.c
5 * PURPOSE: ROP handling, function pointer arrays, misc
6 * PROGRAMMERS: Ge van Geldorp
11 #include "..\diblib\DibLib_interface.h"
15 unsigned char notmask
[2] = { 0x0f, 0xf0 };
16 unsigned char altnotmask
[2] = { 0xf0, 0x0f };
19 DIB_DoRop(ULONG Rop
, ULONG Dest
, ULONG Source
, ULONG Pattern
)
21 return gapfnRop
[Rop
& 0xFF](Dest
, Source
, Pattern
);
24 DIB_FUNCTIONS DibFunctionsForBitmapFormat
[] =
28 Dummy_PutPixel
, Dummy_GetPixel
, Dummy_HLine
, Dummy_VLine
,
29 0, 0, Dummy_StretchBlt
, Dummy_TransparentBlt
,
34 DIB_1BPP_PutPixel
, DIB_1BPP_GetPixel
, DIB_1BPP_HLine
, DIB_1BPP_VLine
,
35 0, 0, DIB_XXBPP_StretchBlt
,
36 DIB_1BPP_TransparentBlt
, 0, DIB_XXBPP_AlphaBlend
40 DIB_4BPP_PutPixel
, DIB_4BPP_GetPixel
, DIB_4BPP_HLine
, DIB_4BPP_VLine
,
41 0, 0, DIB_XXBPP_StretchBlt
,
42 DIB_4BPP_TransparentBlt
, 0, DIB_XXBPP_AlphaBlend
46 DIB_8BPP_PutPixel
, DIB_8BPP_GetPixel
, DIB_8BPP_HLine
, DIB_8BPP_VLine
,
47 0, 0, DIB_XXBPP_StretchBlt
,
48 DIB_8BPP_TransparentBlt
, 0, DIB_XXBPP_AlphaBlend
52 DIB_16BPP_PutPixel
, DIB_16BPP_GetPixel
, DIB_16BPP_HLine
, DIB_16BPP_VLine
,
53 0, 0, DIB_XXBPP_StretchBlt
,
54 DIB_16BPP_TransparentBlt
, 0, DIB_XXBPP_AlphaBlend
58 DIB_24BPP_PutPixel
, DIB_24BPP_GetPixel
, DIB_24BPP_HLine
, DIB_24BPP_VLine
,
59 0, 0, DIB_XXBPP_StretchBlt
,
60 DIB_24BPP_TransparentBlt
, 0, DIB_24BPP_AlphaBlend
64 DIB_32BPP_PutPixel
, DIB_32BPP_GetPixel
, DIB_32BPP_HLine
, DIB_32BPP_VLine
,
65 0, 0, DIB_XXBPP_StretchBlt
,
66 DIB_32BPP_TransparentBlt
, 0, DIB_32BPP_AlphaBlend
70 Dummy_PutPixel
, Dummy_GetPixel
, Dummy_HLine
, Dummy_VLine
,
71 0, 0, Dummy_StretchBlt
, Dummy_TransparentBlt
,
76 Dummy_PutPixel
, Dummy_GetPixel
, Dummy_HLine
, Dummy_VLine
,
77 0, 0, Dummy_StretchBlt
, Dummy_TransparentBlt
,
82 Dummy_PutPixel
, Dummy_GetPixel
, Dummy_HLine
, Dummy_VLine
,
83 0, 0, Dummy_StretchBlt
, Dummy_TransparentBlt
,
88 Dummy_PutPixel
, Dummy_GetPixel
, Dummy_HLine
, Dummy_VLine
,
89 0, 0, Dummy_StretchBlt
, Dummy_TransparentBlt
,
95 VOID
Dummy_PutPixel(SURFOBJ
* SurfObj
, LONG x
, LONG y
, ULONG c
)
100 ULONG
Dummy_GetPixel(SURFOBJ
* SurfObj
, LONG x
, LONG y
)
105 VOID
Dummy_HLine(SURFOBJ
* SurfObj
, LONG x1
, LONG x2
, LONG y
, ULONG c
)
110 VOID
Dummy_VLine(SURFOBJ
* SurfObj
, LONG x
, LONG y1
, LONG y2
, ULONG c
)
115 BOOLEAN
Dummy_BitBlt(PBLTINFO BltInfo
)
120 BOOLEAN
Dummy_StretchBlt(SURFOBJ
*DestSurf
, SURFOBJ
*SourceSurf
,
121 SURFOBJ
*PatternSurface
, SURFOBJ
*MaskSurf
,
122 RECTL
* DestRect
, RECTL
*SourceRect
,
123 POINTL
* MaskOrigin
, BRUSHOBJ
* Brush
,
125 XLATEOBJ
*ColorTranslation
,
131 BOOLEAN
Dummy_TransparentBlt(SURFOBJ
*DestSurf
, SURFOBJ
*SourceSurf
,
132 RECTL
* DestRect
, RECTL
*SourceRect
,
133 XLATEOBJ
*ColorTranslation
, ULONG iTransColor
)
138 BOOLEAN
Dummy_ColorFill(SURFOBJ
* Dest
, RECTL
* DestRect
, ULONG Color
)
145 Dummy_AlphaBlend(SURFOBJ
* Dest
, SURFOBJ
* Source
, RECTL
* DestRect
,
146 RECTL
* SourceRect
, CLIPOBJ
* ClipRegion
,
147 XLATEOBJ
* ColorTranslation
, BLENDOBJ
* BlendObj
)