Skip to content

Instantly share code, notes, and snippets.

@shangdawei
Last active October 20, 2017 03:40
Show Gist options
  • Save shangdawei/42623874a7d393d1893093a6b0878ce2 to your computer and use it in GitHub Desktop.
Save shangdawei/42623874a7d393d1893093a6b0878ce2 to your computer and use it in GitHub Desktop.
BitBLT ROP
BF_XFER_0 = BF_XFER_BLACKNESS, // BLACKNESS ---------- Dst < 0 : BitFieldClr
BF_XFER_1 = BF_XFER_WHITENESS, // WHITENESS ---------- Dst < 1 : BitFieldSet
BF_XFER_BLACKNESS = 0UL, // BLACKNESS ---------- Dst < 0 : BitFieldClr
BF_XFER_DN = BF_XFER_DSTINVERT, // DSTINVERT ---------- Dst ^ 1 : BitFieldInv
BF_XFER_DSA = BF_XFER_SRCAND, // SRCAND ------------- Src & Dst
BF_XFER_DSNO = BF_XFER_MERGEPAINT, // MERGEPAINT --------- ~Src | Dst
BF_XFER_DSO = BF_XFER_SRCPAINT, // SRCPAINT ----------- Src | Dst
BF_XFER_DSON = BF_XFER_NOTSRCERASE, // NOTSRCERASE -------- ~(Src | Dst)
BF_XFER_DSTINVERT, // DSTINVERT ---------- Dst ^ 1 : BitFieldInv
BF_XFER_DSX = BF_XFER_SRCINVERT, // SRCINVERT ---------- Src ^ Dst
BF_XFER_MERGEPAINT, // MERGEPAINT --------- ~Src | Dst
BF_XFER_NOTSRCCOPY, // NOTSRCCOPY --------- ~Src > Dst
BF_XFER_NOTSRCERASE, // NOTSRCERASE -------- ~(Src | Dst)
BF_XFER_S = BF_XFER_SRCCOPY, // SRCCOPY ------------ Src > Dst
BF_XFER_SDNA = BF_XFER_SRCERASE, // SRCERASE ----------- Src & ~Dst
BF_XFER_SN = BF_XFER_NOTSRCCOPY, // NOTSRCCOPY --------- ~Src > Dst
BF_XFER_SRCAND, // SRCAND ------------- Src & Dst
BF_XFER_SRCCOPY, // SRCCOPY ------------ Src > Dst
BF_XFER_SRCERASE, // SRCERASE ----------- Src & ~Dst
BF_XFER_SRCINVERT, // SRCINVERT ---------- Src ^ Dst
BF_XFER_SRCPAINT, // SRCPAINT ----------- Src | Dst
BF_XFER_WHITENESS, // WHITENESS ---------- Dst < 1 : BitFieldSet
BF_XFER_0 = BF_XFER_BLACKNESS, // BLACKNESS ---------- Dst < 0 : BitFieldClr
BF_XFER_BLACKNESS = 0UL, // BLACKNESS ---------- Dst < 0 : BitFieldClr
BF_XFER_DN = BF_XFER_DSTINVERT, // DSTINVERT ---------- Dst ^ 1 : BitFieldInv
BF_XFER_DSTINVERT, // DSTINVERT ---------- Dst ^ 1 : BitFieldInv
BF_XFER_MERGEPAINT, // MERGEPAINT --------- ~Src | Dst
BF_XFER_NOTSRCCOPY, // NOTSRCCOPY --------- ~Src > Dst
BF_XFER_SN = BF_XFER_NOTSRCCOPY, // NOTSRCCOPY --------- ~Src > Dst
BF_XFER_NOTSRCERASE, // NOTSRCERASE -------- ~(Src | Dst)
BF_XFER_DSA = BF_XFER_SRCAND, // SRCAND ------------- Src & Dst
BF_XFER_SRCAND, // SRCAND ------------- Src & Dst
BF_XFER_S = BF_XFER_SRCCOPY, // SRCCOPY ------------ Src > Dst
BF_XFER_SRCCOPY, // SRCCOPY ------------ Src > Dst
BF_XFER_SDNA = BF_XFER_SRCERASE, // SRCERASE ----------- Src & ~Dst
BF_XFER_SRCERASE, // SRCERASE ----------- Src & ~Dst
BF_XFER_DSX = BF_XFER_SRCINVERT, // SRCINVERT ---------- Src ^ Dst
BF_XFER_SRCINVERT, // SRCINVERT ---------- Src ^ Dst
BF_XFER_DSO = BF_XFER_SRCPAINT, // SRCPAINT ----------- Src | Dst
BF_XFER_SRCPAINT, // SRCPAINT ----------- Src | Dst
BF_XFER_1 = BF_XFER_WHITENESS, // WHITENESS ---------- Dst < 1 : BitFieldSet
BF_XFER_WHITENESS, // WHITENESS ---------- Dst < 1 : BitFieldSet
BF_XFER_DSON = BF_XFER_NOTSRCERASE, // NOTSRCERASE -------- ~(Src | Dst)
BF_XFER_DSNO = BF_XFER_MERGEPAINT, // MERGEPAINT --------- ~Src | Dst
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment