ReactOS  0.4.14-dev-358-gbef841c
DibLib_interface.h File Reference
#include "RopFunctions.h"
Include dependency graph for DibLib_interface.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  SURFINFO
 
struct  BLTDATA
 

Typedefs

typedef struct BLTDATAPBLTDATA
 
typedef VOID(FASTCALLPFN_DIBFUNCTION) (PBLTDATA pBltData)
 

Functions

VOID FASTCALL Dib_BitBlt_NOOP (PBLTDATA pBltData)
 
VOID FASTCALL Dib_BitBlt_SOLIDFILL (PBLTDATA pBltData)
 
VOID FASTCALL Dib_BitBlt_BLACKNESS (PBLTDATA pBltData)
 
VOID FASTCALL Dib_BitBlt_WHITENESS (PBLTDATA pBltData)
 
VOID FASTCALL Dib_BitBlt_PATCOPY (PBLTDATA pBltData)
 
VOID FASTCALL Dib_BitBlt_NOTPATCOPY (PBLTDATA pBltData)
 
VOID FASTCALL Dib_BitBlt_DSTINVERT (PBLTDATA pBltData)
 
VOID FASTCALL Dib_BitBlt_SRCCOPY (PBLTDATA pBltData)
 
VOID FASTCALL Dib_BitBlt_NOTSRCCOPY (PBLTDATA pBltData)
 
VOID FASTCALL Dib_BitBlt_SRCERASE (PBLTDATA pBltData)
 
VOID FASTCALL Dib_BitBlt_NOTSRCERASE (PBLTDATA pBltData)
 
VOID FASTCALL Dib_BitBlt_PATINVERT (PBLTDATA pBltData)
 
VOID FASTCALL Dib_BitBlt_SRCINVERT (PBLTDATA pBltData)
 
VOID FASTCALL Dib_BitBlt_SRCAND (PBLTDATA pBltData)
 
VOID FASTCALL Dib_BitBlt_MERGEPAINT (PBLTDATA pBltData)
 
VOID FASTCALL Dib_BitBlt_MERGECOPY (PBLTDATA pBltData)
 
VOID FASTCALL Dib_BitBlt_SRCPAINT (PBLTDATA pBltData)
 
VOID FASTCALL Dib_BitBlt_PATPAINT (PBLTDATA pBltData)
 
VOID FASTCALL Dib_SrcPatBlt (PBLTDATA pBltData)
 
VOID FASTCALL Dib_PatPaint (PBLTDATA pBltData)
 
VOID FASTCALL Dib_SrcPaint (PBLTDATA pBltData)
 
VOID FASTCALL Dib_BitBlt (PBLTDATA pBltData)
 
VOID FASTCALL Dib_MaskCopy (PBLTDATA pBltData)
 
VOID FASTCALL Dib_MaskPatBlt (PBLTDATA pBltData)
 
VOID FASTCALL Dib_MaskSrcBlt (PBLTDATA pBltData)
 
VOID FASTCALL Dib_MaskSrcPatBlt (PBLTDATA pBltData)
 
VOID FASTCALL Dib_MaskPaint (PBLTDATA pBltData)
 
VOID FASTCALL Dib_MaskPatPaint (PBLTDATA pBltData)
 
VOID FASTCALL Dib_MaskSrcPaint (PBLTDATA pBltData)
 
VOID FASTCALL Dib_MaskBlt (PBLTDATA pBltData)
 

Variables

const UCHAR gajIndexPerRop [256]
 
const PFN_DIBFUNCTION gapfnDibFunction []
 
const PFN_DIBFUNCTION gapfnMaskFunction [8]
 

Typedef Documentation

◆ PBLTDATA

typedef struct BLTDATA * PBLTDATA

◆ PFN_DIBFUNCTION

typedef VOID(FASTCALL * PFN_DIBFUNCTION) (PBLTDATA pBltData)

Definition at line 37 of file DibLib_interface.h.

Function Documentation

◆ Dib_BitBlt()

VOID FASTCALL Dib_BitBlt ( PBLTDATA  pBltData)

Definition at line 22 of file BitBlt.c.

23 {
24  /* Check for solid brush */
25  if (pBltData->ulSolidColor != 0xFFFFFFFF)
26  {
27  /* Use the solid version of PATCOPY! */
28  gapfnBitBlt_Solid[pBltData->siDst.iFormat][pBltData->siSrc.iFormat](pBltData);
29  }
30  else
31  {
32  /* Use the pattern version */
33  gapfnBitBlt[pBltData->siDst.iFormat][pBltData->siSrc.iFormat](pBltData);
34  }
35 }
SURFINFO siDst
ULONG iFormat
ULONG ulSolidColor
SURFINFO siSrc

◆ Dib_BitBlt_BLACKNESS()

VOID FASTCALL Dib_BitBlt_BLACKNESS ( PBLTDATA  pBltData)

Definition at line 8 of file BitBlt_other.c.

9 {
10  /* Pass it to the colorfil function */
11  pBltData->ulSolidColor = XLATEOBJ_iXlate(pBltData->pxlo, 0);
12  gapfnBitBlt_PATCOPY_Solid[pBltData->siDst.iFormat](pBltData);
13 }
SURFINFO siDst
PFN_DIBFUNCTION gapfnBitBlt_PATCOPY_Solid[]
ULONG iFormat
ULONG ulSolidColor
ENGAPI ULONG APIENTRY XLATEOBJ_iXlate(_In_ XLATEOBJ *pxlo, _In_ ULONG iColor)
Definition: xlateobj.c:664
XLATEOBJ * pxlo

Referenced by Dib_MaskCopy().

◆ Dib_BitBlt_DSTINVERT()

VOID FASTCALL Dib_BitBlt_DSTINVERT ( PBLTDATA  pBltData)

Definition at line 16 of file BitBlt_DSTINVERT.c.

17 {
18  gapfnBitBlt_DSTINVERT[pBltData->siDst.iFormat](pBltData);
19 }
SURFINFO siDst
ULONG iFormat

◆ Dib_BitBlt_MERGECOPY()

VOID FASTCALL Dib_BitBlt_MERGECOPY ( PBLTDATA  pBltData)

Definition at line 21 of file BitBlt_MERGECOPY.c.

22 {
23  /* Check for solid brush */
24  if (pBltData->ulSolidColor != 0xFFFFFFFF)
25  {
26  /* Use the solid version of PATCOPY! */
27  gapfnBitBlt_MERGECOPY_Solid[pBltData->siDst.iFormat][pBltData->siSrc.iFormat](pBltData);
28  }
29  else
30  {
31  /* Use the pattern version */
32  gapfnBitBlt_MERGECOPY[pBltData->siDst.iFormat][pBltData->siSrc.iFormat](pBltData);
33  }
34 }
SURFINFO siDst
ULONG iFormat
ULONG ulSolidColor
SURFINFO siSrc

◆ Dib_BitBlt_MERGEPAINT()

VOID FASTCALL Dib_BitBlt_MERGEPAINT ( PBLTDATA  pBltData)

Definition at line 17 of file BitBlt_MERGEPAINT.c.

18 {
19  // TODO: XLATEless same-surface variants
20  gapfnBitBlt_MERGEPAINT[pBltData->siDst.iFormat][pBltData->siSrc.iFormat](pBltData);
21 }
SURFINFO siDst
ULONG iFormat
SURFINFO siSrc

◆ Dib_BitBlt_NOOP()

VOID FASTCALL Dib_BitBlt_NOOP ( PBLTDATA  pBltData)

Definition at line 26 of file BitBlt_other.c.

27 {
28  UNREFERENCED_PARAMETER(pBltData);
29 }
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:323

◆ Dib_BitBlt_NOTPATCOPY()

VOID FASTCALL Dib_BitBlt_NOTPATCOPY ( PBLTDATA  pBltData)

Definition at line 19 of file BitBlt_NOTPATCOPY.c.

20 {
21  /* Check for solid brush */
22  if (pBltData->ulSolidColor != 0xFFFFFFFF)
23  {
24  /* Prepare inverted colot */
25  pBltData->ulSolidColor = ~pBltData->ulSolidColor;
26 
27  /* Use the solid version of PATCOPY! */
28  gapfnBitBlt_PATCOPY_Solid[pBltData->siDst.iFormat](pBltData);
29  }
30  else
31  {
32  /* Use the pattern version */
33  gapfnBitBlt_NOTPATCOPY[pBltData->siDst.iFormat](pBltData);
34  }
35 }
SURFINFO siDst
PFN_DIBFUNCTION gapfnBitBlt_PATCOPY_Solid[]
ULONG iFormat
ULONG ulSolidColor

◆ Dib_BitBlt_NOTSRCCOPY()

VOID FASTCALL Dib_BitBlt_NOTSRCCOPY ( PBLTDATA  pBltData)

Definition at line 17 of file BitBlt_NOTSRCCOPY.c.

18 {
19  // TODO: XLATEless same-surface variants
20  gapfnBitBlt_NOTSRCCOPY[pBltData->siDst.iFormat][pBltData->siSrc.iFormat](pBltData);
21 }
SURFINFO siDst
ULONG iFormat
SURFINFO siSrc

◆ Dib_BitBlt_NOTSRCERASE()

VOID FASTCALL Dib_BitBlt_NOTSRCERASE ( PBLTDATA  pBltData)

Definition at line 17 of file BitBlt_NOTSRCERASE.c.

18 {
19  // TODO: XLATEless same-surface variants
20  gapfnBitBlt_NOTSRCERASE[pBltData->siDst.iFormat][pBltData->siSrc.iFormat](pBltData);
21 }
SURFINFO siDst
ULONG iFormat
SURFINFO siSrc

◆ Dib_BitBlt_PATCOPY()

VOID FASTCALL Dib_BitBlt_PATCOPY ( PBLTDATA  pBltData)

Definition at line 22 of file BitBlt_PATCOPY.c.

23 {
24  /* Check for solid brush */
25  if (pBltData->ulSolidColor != 0xFFFFFFFF)
26  {
27  /* Use the solid version of PATCOPY! */
28  gapfnBitBlt_PATCOPY_Solid[pBltData->siDst.iFormat](pBltData);
29  }
30  else
31  {
32  /* Use the pattern version */
33  gapfnBitBlt_PATCOPY[pBltData->siDst.iFormat](pBltData);
34  }
35 }
SURFINFO siDst
PFN_DIBFUNCTION gapfnBitBlt_PATCOPY_Solid[]
ULONG iFormat
ULONG ulSolidColor

◆ Dib_BitBlt_PATINVERT()

VOID FASTCALL Dib_BitBlt_PATINVERT ( PBLTDATA  pBltData)

Definition at line 22 of file BitBlt_PATINVERT.c.

23 {
24  /* Check for solid brush */
25  if (pBltData->ulSolidColor != 0xFFFFFFFF)
26  {
27  /* Use the solid version of PATCOPY! */
28  gapfnBitBlt_PATINVERT_Solid[pBltData->siDst.iFormat](pBltData);
29  }
30  else
31  {
32  /* Use the pattern version */
33  gapfnBitBlt_PATINVERT[pBltData->siDst.iFormat](pBltData);
34  }
35 }
SURFINFO siDst
ULONG iFormat
ULONG ulSolidColor

◆ Dib_BitBlt_PATPAINT()

VOID FASTCALL Dib_BitBlt_PATPAINT ( PBLTDATA  pBltData)

Definition at line 22 of file BitBlt_PATPAINT.c.

23 {
24  /* Check for solid brush */
25  if (pBltData->ulSolidColor != 0xFFFFFFFF)
26  {
27  /* Use the solid version of PATCOPY! */
28  gapfnBitBlt_PATPAINT_Solid[pBltData->siDst.iFormat][pBltData->siSrc.iFormat](pBltData);
29  }
30  else
31  {
32  /* Use the pattern version */
33  gapfnBitBlt_PATPAINT[pBltData->siDst.iFormat][pBltData->siSrc.iFormat](pBltData);
34  }
35 }
SURFINFO siDst
ULONG iFormat
ULONG ulSolidColor
SURFINFO siSrc

◆ Dib_BitBlt_SOLIDFILL()

VOID FASTCALL Dib_BitBlt_SOLIDFILL ( PBLTDATA  pBltData)

◆ Dib_BitBlt_SRCAND()

VOID FASTCALL Dib_BitBlt_SRCAND ( PBLTDATA  pBltData)

Definition at line 17 of file BitBlt_SRCAND.c.

18 {
19  // TODO: XLATEless same-surface variants
20  gapfnBitBlt_SRCAND[pBltData->siDst.iFormat][pBltData->siSrc.iFormat](pBltData);
21 }
SURFINFO siDst
ULONG iFormat
SURFINFO siSrc

◆ Dib_BitBlt_SRCCOPY()

VOID FASTCALL Dib_BitBlt_SRCCOPY ( PBLTDATA  pBltData)

Definition at line 70 of file BitBlt_SRCCOPY.c.

71 {
72  gapfnBitBlt_SRCCOPY[pBltData->siDst.iFormat][pBltData->siSrc.iFormat](pBltData);
73 }
SURFINFO siDst
ULONG iFormat
PFN_DIBFUNCTION gapfnBitBlt_SRCCOPY[7][7]
SURFINFO siSrc

◆ Dib_BitBlt_SRCERASE()

VOID FASTCALL Dib_BitBlt_SRCERASE ( PBLTDATA  pBltData)

Definition at line 17 of file BitBlt_SRCERASE.c.

18 {
19  // TODO: XLATEless same-surface variants
20  gapfnBitBlt_SRCERASE[pBltData->siDst.iFormat][pBltData->siSrc.iFormat](pBltData);
21 }
SURFINFO siDst
ULONG iFormat
SURFINFO siSrc

◆ Dib_BitBlt_SRCINVERT()

VOID FASTCALL Dib_BitBlt_SRCINVERT ( PBLTDATA  pBltData)

Definition at line 17 of file BitBlt_SRCINVERT.c.

18 {
19  // TODO: XLATEless same-surface variants
20  gapfnBitBlt_SRCINVERT[pBltData->siDst.iFormat][pBltData->siSrc.iFormat](pBltData);
21 }
SURFINFO siDst
ULONG iFormat
PFN_DIBFUNCTION gapfnBitBlt_SRCINVERT[7][7]
SURFINFO siSrc

◆ Dib_BitBlt_SRCPAINT()

VOID FASTCALL Dib_BitBlt_SRCPAINT ( PBLTDATA  pBltData)

Definition at line 17 of file BitBlt_SRCPAINT.c.

18 {
19  // TODO: XLATEless same-surface variants
20  gapfnBitBlt_SRCPAINT[pBltData->siDst.iFormat][pBltData->siSrc.iFormat](pBltData);
21 }
SURFINFO siDst
ULONG iFormat
SURFINFO siSrc

◆ Dib_BitBlt_WHITENESS()

VOID FASTCALL Dib_BitBlt_WHITENESS ( PBLTDATA  pBltData)

Definition at line 17 of file BitBlt_other.c.

18 {
19  /* Pass it to the colorfil function */
20  pBltData->ulSolidColor = XLATEOBJ_iXlate(pBltData->pxlo, 0xFFFFFF);
21  gapfnBitBlt_PATCOPY_Solid[pBltData->siDst.iFormat](pBltData);
22 }
SURFINFO siDst
PFN_DIBFUNCTION gapfnBitBlt_PATCOPY_Solid[]
ULONG iFormat
ULONG ulSolidColor
ENGAPI ULONG APIENTRY XLATEOBJ_iXlate(_In_ XLATEOBJ *pxlo, _In_ ULONG iColor)
Definition: xlateobj.c:664
XLATEOBJ * pxlo

Referenced by Dib_MaskCopy().

◆ Dib_MaskBlt()

VOID FASTCALL Dib_MaskBlt ( PBLTDATA  pBltData)

Definition at line 22 of file MaskBlt.c.

23 {
24  gapfnMaskBlt[pBltData->siDst.iFormat][pBltData->siSrc.iFormat](pBltData);
25 }
SURFINFO siDst
ULONG iFormat
SURFINFO siSrc

◆ Dib_MaskCopy()

VOID FASTCALL Dib_MaskCopy ( PBLTDATA  pBltData)

Definition at line 9 of file MaskCopy.c.

10 {
11  pBltData->siSrc = pBltData->siMsk;
12 
13  /* Create an XLATEOBJ */
14  pBltData->pxlo = 0;// FIXME: use 1bpp -> destbpp
15 
16  /* 4 possibilities... */
17  if (pBltData->rop4 == MAKEROP4(BLACKNESS, WHITENESS))
18  {
19  gapfnBitBlt_SRCCOPY[pBltData->siDst.iFormat][pBltData->siSrc.iFormat](pBltData);
20  }
21  else if (pBltData->rop4 == MAKEROP4(WHITENESS, BLACKNESS))
22  {
23  gapfnBitBlt_SRCINVERT[pBltData->siDst.iFormat][pBltData->siSrc.iFormat](pBltData);
24  }
25  else if (pBltData->rop4 == MAKEROP4(BLACKNESS, BLACKNESS))
26  {
27  Dib_BitBlt_BLACKNESS(pBltData);
28  }
29  else // if (pBltData->rop4 == MAKEROP4(WHITENESS, WHITENESS))
30  {
31  Dib_BitBlt_WHITENESS(pBltData);
32  }
33 }
SURFINFO siDst
SURFINFO siMsk
ULONG iFormat
#define MAKEROP4(f, b)
Definition: wingdi.h:2941
PFN_DIBFUNCTION gapfnBitBlt_SRCINVERT[7][7]
VOID FASTCALL Dib_BitBlt_BLACKNESS(PBLTDATA pBltData)
Definition: BitBlt_other.c:8
VOID FASTCALL Dib_BitBlt_WHITENESS(PBLTDATA pBltData)
Definition: BitBlt_other.c:17
#define WHITENESS
Definition: wingdi.h:336
PFN_DIBFUNCTION gapfnBitBlt_SRCCOPY[7][7]
#define BLACKNESS
Definition: wingdi.h:322
SURFINFO siSrc
XLATEOBJ * pxlo

◆ Dib_MaskPaint()

VOID FASTCALL Dib_MaskPaint ( PBLTDATA  pBltData)

Definition at line 17 of file MaskPaint.c.

18 {
19  // TODO: XLATEless same-surface variants
20  gapfnMaskPaint[pBltData->siDst.iFormat](pBltData);
21 }
SURFINFO siDst
ULONG iFormat

◆ Dib_MaskPatBlt()

VOID FASTCALL Dib_MaskPatBlt ( PBLTDATA  pBltData)

Definition at line 22 of file MaskPatBlt.c.

23 {
24  gapfnMaskPatBlt[pBltData->siDst.iFormat](pBltData);
25 }
SURFINFO siDst
ULONG iFormat

◆ Dib_MaskPatPaint()

VOID FASTCALL Dib_MaskPatPaint ( PBLTDATA  pBltData)

Definition at line 22 of file MaskPatPaint.c.

23 {
24  /* Check for solid brush */
25  if (pBltData->ulSolidColor != 0xFFFFFFFF)
26  {
27  /* Use the solid version of PATCOPY! */
28  gapfnMaskPatPaint_Solid[pBltData->siDst.iFormat](pBltData);
29  }
30  else
31  {
32  /* Use the pattern version */
33  gapfnMaskPatPaint[pBltData->siDst.iFormat](pBltData);
34  }
35 }
SURFINFO siDst
ULONG iFormat
ULONG ulSolidColor

◆ Dib_MaskSrcBlt()

VOID FASTCALL Dib_MaskSrcBlt ( PBLTDATA  pBltData)

Definition at line 17 of file MaskSrcBlt.c.

18 {
19  gapfnMaskSrcBlt[pBltData->siDst.iFormat][pBltData->siSrc.iFormat](pBltData);
20 }
SURFINFO siDst
ULONG iFormat
SURFINFO siSrc

◆ Dib_MaskSrcPaint()

VOID FASTCALL Dib_MaskSrcPaint ( PBLTDATA  pBltData)

Definition at line 17 of file MaskSrcPaint.c.

18 {
19  gapfnMaskSrcPaint[pBltData->siDst.iFormat][pBltData->siSrc.iFormat](pBltData);
20 }
SURFINFO siDst
ULONG iFormat
SURFINFO siSrc

◆ Dib_MaskSrcPatBlt()

VOID FASTCALL Dib_MaskSrcPatBlt ( PBLTDATA  pBltData)

Definition at line 22 of file MaskSrcPatBlt.c.

23 {
24  gapfnMaskSrcPatBlt[pBltData->siDst.iFormat][pBltData->siSrc.iFormat](pBltData);
25 }
SURFINFO siDst
ULONG iFormat
SURFINFO siSrc

◆ Dib_PatPaint()

VOID FASTCALL Dib_PatPaint ( PBLTDATA  pBltData)

Definition at line 22 of file PatPaint.c.

23 {
24  /* Check for solid brush */
25  if (pBltData->ulSolidColor != 0xFFFFFFFF)
26  {
27  /* Use the solid version of PATCOPY! */
28  gapfnPatPaint_Solid[pBltData->siDst.iFormat](pBltData);
29  }
30  else
31  {
32  /* Use the pattern version */
33  gapfnPatPaint[pBltData->siDst.iFormat](pBltData);
34  }
35 }
SURFINFO siDst
ULONG iFormat
ULONG ulSolidColor

◆ Dib_SrcPaint()

VOID FASTCALL Dib_SrcPaint ( PBLTDATA  pBltData)

Definition at line 17 of file SrcPaint.c.

18 {
19  // TODO: XLATEless same-surface variants
20  gapfnSrcPaint[pBltData->siDst.iFormat][pBltData->siSrc.iFormat](pBltData);
21 }
SURFINFO siDst
ULONG iFormat
SURFINFO siSrc

◆ Dib_SrcPatBlt()

VOID FASTCALL Dib_SrcPatBlt ( PBLTDATA  pBltData)

Definition at line 22 of file SrcPatBlt.c.

23 {
24  /* Check for solid brush */
25  if (pBltData->ulSolidColor != 0xFFFFFFFF)
26  {
27  /* Use the solid version of PATCOPY! */
28  gapfnSrcPatBlt_Solid[pBltData->siDst.iFormat][pBltData->siSrc.iFormat](pBltData);
29  }
30  else
31  {
32  /* Use the pattern version */
33  gapfnSrcPatBlt[pBltData->siDst.iFormat][pBltData->siSrc.iFormat](pBltData);
34  }
35 }
SURFINFO siDst
ULONG iFormat
ULONG ulSolidColor
SURFINFO siSrc

Variable Documentation

◆ gajIndexPerRop

const UCHAR gajIndexPerRop[256]

Definition at line 80 of file DibLib.c.

Referenced by EngBitBlt().

◆ gapfnDibFunction

const PFN_DIBFUNCTION gapfnDibFunction[]

Definition at line 54 of file DibLib.c.

Referenced by EngBitBlt().

◆ gapfnMaskFunction

const PFN_DIBFUNCTION gapfnMaskFunction[8]

Definition at line 341 of file DibLib.c.

Referenced by EngBitBlt().