ReactOS 0.4.15-dev-7788-g1ad9096
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 35 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 siSrc
ULONG ulSolidColor
SURFINFO siDst
ULONG iFormat

◆ 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}
PFN_DIBFUNCTION gapfnBitBlt_PATCOPY_Solid[]
XLATEOBJ * pxlo
ENGAPI ULONG APIENTRY XLATEOBJ_iXlate(_In_ XLATEOBJ *pxlo, _In_ ULONG iColor)
Definition: xlateobj.c:664

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}

◆ 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}

◆ 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}

◆ 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:317

◆ 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}
PFN_DIBFUNCTION gapfnBitBlt_PATCOPY_Solid[]

◆ 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}

◆ 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}

◆ 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}

◆ 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}

◆ 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}

◆ 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}

◆ 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}
PFN_DIBFUNCTION gapfnBitBlt_SRCCOPY[7][7]

◆ 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}

◆ 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}
PFN_DIBFUNCTION gapfnBitBlt_SRCINVERT[7][7]

◆ 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}

◆ 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}

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}

◆ 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}
VOID FASTCALL Dib_BitBlt_BLACKNESS(PBLTDATA pBltData)
Definition: BitBlt_other.c:8
VOID FASTCALL Dib_BitBlt_WHITENESS(PBLTDATA pBltData)
Definition: BitBlt_other.c:17
SURFINFO siMsk
#define BLACKNESS
Definition: wingdi.h:323
#define WHITENESS
Definition: wingdi.h:337
#define MAKEROP4(f, b)
Definition: wingdi.h:2946

◆ 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}

◆ Dib_MaskPatBlt()

VOID FASTCALL Dib_MaskPatBlt ( PBLTDATA  pBltData)

Definition at line 22 of file MaskPatBlt.c.

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

◆ 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}

◆ 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}

◆ 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}

◆ 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}

◆ 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}

◆ 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}

◆ 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}

Variable Documentation

◆ gajIndexPerRop

const UCHAR gajIndexPerRop[256]
extern

Definition at line 80 of file DibLib.c.

Referenced by EngBitBlt().

◆ gapfnDibFunction

const PFN_DIBFUNCTION gapfnDibFunction[]
extern

Definition at line 54 of file DibLib.c.

Referenced by EngBitBlt().

◆ gapfnMaskFunction

const PFN_DIBFUNCTION gapfnMaskFunction[8]
extern

Definition at line 341 of file DibLib.c.

Referenced by EngBitBlt().