/// <summary> /// This is the XBR4x by Hyllian (see http://board.byuu.org/viewtopic.php?f=10&t=2248) /// </summary> public static void Xbr4X(IPixelWorker <sPixel> worker, bool allowAlphaBlending) { Contract.Assume(worker != null); var a1 = worker.SourceM1M2(); var b1 = worker.SourceP0M2(); var c1 = worker.SourceP1M2(); var a0 = worker.SourceM2M1(); var pa = worker.SourceM1M1(); var pb = worker.SourceP0M1(); var pc = worker.SourceP1M1(); var c4 = worker.SourceP2M1(); var d0 = worker.SourceM2P0(); var pd = worker.SourceM1P0(); var pe = worker.SourceP0P0(); var pf = worker.SourceP1P0(); var f4 = worker.SourceP2P0(); var g0 = worker.SourceM2P1(); var pg = worker.SourceM1P1(); var ph = worker.SourceP0P1(); var pi = worker.SourceP1P1(); var i4 = worker.SourceP2P1(); var g5 = worker.SourceM1P2(); var h5 = worker.SourceP0P2(); var i5 = worker.SourceP1P2(); sPixel e1, e2, e3, e4, e5, e6, e7, e8, e9, ea, eb, ec, ed, ee, ef; var e0 = e1 = e2 = e3 = e4 = e5 = e6 = e7 = e8 = e9 = ea = eb = ec = ed = ee = ef = pe; _Kernel4Xv2(pe, pi, ph, pf, pg, pc, pd, pb, f4, i4, h5, i5, ref ef, ref ee, ref eb, ref e3, ref e7, ref ea, ref ed, ref ec, allowAlphaBlending); _Kernel4Xv2(pe, pc, pf, pb, pi, pa, ph, pd, b1, c1, f4, c4, ref e3, ref e7, ref e2, ref e0, ref e1, ref e6, ref eb, ref ef, allowAlphaBlending); _Kernel4Xv2(pe, pa, pb, pd, pc, pg, pf, ph, d0, a0, b1, a1, ref e0, ref e1, ref e4, ref ec, ref e8, ref e5, ref e2, ref e3, allowAlphaBlending); _Kernel4Xv2(pe, pg, pd, ph, pa, pi, pb, pf, h5, g5, d0, g0, ref ec, ref e8, ref ed, ref ef, ref ee, ref e9, ref e4, ref e0, allowAlphaBlending); worker.TargetP0P0(e0); worker.TargetP1P0(e1); worker.TargetP2P0(e2); worker.TargetP3P0(e3); worker.TargetP0P1(e4); worker.TargetP1P1(e5); worker.TargetP2P1(e6); worker.TargetP3P1(e7); worker.TargetP0P2(e8); worker.TargetP1P2(e9); worker.TargetP2P2(ea); worker.TargetP3P2(eb); worker.TargetP0P3(ec); worker.TargetP1P3(ed); worker.TargetP2P3(ee); worker.TargetP3P3(ef); }
/// <summary> /// This is the XBR3x by Hyllian (see http://board.byuu.org/viewtopic.php?f=10&t=2248) /// </summary> public static void Xbr3X(IPixelWorker <sPixel> worker, bool allowAlphaBlending, bool useOriginalImplementation) { Contract.Assume(worker != null); var a1 = worker.SourceM1M2(); var b1 = worker.SourceP0M2(); var c1 = worker.SourceP1M2(); var a0 = worker.SourceM2M1(); var pa = worker.SourceM1M1(); var pb = worker.SourceP0M1(); var pc = worker.SourceP1M1(); var c4 = worker.SourceP2M1(); var d0 = worker.SourceM2P0(); var pd = worker.SourceM1P0(); var pe = worker.SourceP0P0(); var pf = worker.SourceP1P0(); var f4 = worker.SourceP2P0(); var g0 = worker.SourceM2P1(); var pg = worker.SourceM1P1(); var ph = worker.SourceP0P1(); var pi = worker.SourceP1P1(); var i4 = worker.SourceP2P1(); var g5 = worker.SourceM1P2(); var h5 = worker.SourceP0P2(); var i5 = worker.SourceP1P2(); sPixel e1, e2, e3, e4, e5, e6, e7, e8; var e0 = e1 = e2 = e3 = e4 = e5 = e6 = e7 = e8 = pe; _Kernel3X(pe, pi, ph, pf, pg, pc, pd, pb, f4, i4, h5, i5, ref e2, ref e5, ref e6, ref e7, ref e8, allowAlphaBlending, useOriginalImplementation); _Kernel3X(pe, pc, pf, pb, pi, pa, ph, pd, b1, c1, f4, c4, ref e0, ref e1, ref e8, ref e5, ref e2, allowAlphaBlending, useOriginalImplementation); _Kernel3X(pe, pa, pb, pd, pc, pg, pf, ph, d0, a0, b1, a1, ref e6, ref e3, ref e2, ref e1, ref e0, allowAlphaBlending, useOriginalImplementation); _Kernel3X(pe, pg, pd, ph, pa, pi, pb, pf, h5, g5, d0, g0, ref e8, ref e7, ref e0, ref e3, ref e6, allowAlphaBlending, useOriginalImplementation); worker.TargetP0P0(e0); worker.TargetP1P0(e1); worker.TargetP2P0(e2); worker.TargetP0P1(e3); worker.TargetP1P1(e4); worker.TargetP2P1(e5); worker.TargetP0P2(e6); worker.TargetP1P2(e7); worker.TargetP2P2(e8); }
/// <summary> /// This is the XBR2x by Hyllian (see http://board.byuu.org/viewtopic.php?f=10&t=2248) /// </summary> public static void Xbr2X(IPixelWorker <sPixel> worker, bool allowAlphaBlending) { Contract.Assume(worker != null); var a1 = worker.SourceM1M2(); var b1 = worker.SourceP0M2(); var c1 = worker.SourceP1M2(); var a0 = worker.SourceM2M1(); var pa = worker.SourceM1M1(); var pb = worker.SourceP0M1(); var pc = worker.SourceP1M1(); var c4 = worker.SourceP2M1(); var d0 = worker.SourceM2P0(); var pd = worker.SourceM1P0(); var pe = worker.SourceP0P0(); var pf = worker.SourceP1P0(); var f4 = worker.SourceP2P0(); var g0 = worker.SourceM2P1(); var pg = worker.SourceM1P1(); var ph = worker.SourceP0P1(); var pi = worker.SourceP1P1(); var i4 = worker.SourceP2P1(); var g5 = worker.SourceM1P2(); var h5 = worker.SourceP0P2(); var i5 = worker.SourceP1P2(); sPixel e1, e2, e3; var e0 = e1 = e2 = e3 = pe; _Kernel2Xv5(pe, pi, ph, pf, pg, pc, pd, pb, f4, i4, h5, i5, ref e1, ref e2, ref e3, allowAlphaBlending); _Kernel2Xv5(pe, pc, pf, pb, pi, pa, ph, pd, b1, c1, f4, c4, ref e0, ref e3, ref e1, allowAlphaBlending); _Kernel2Xv5(pe, pa, pb, pd, pc, pg, pf, ph, d0, a0, b1, a1, ref e2, ref e1, ref e0, allowAlphaBlending); _Kernel2Xv5(pe, pg, pd, ph, pa, pi, pb, pf, h5, g5, d0, g0, ref e3, ref e0, ref e2, allowAlphaBlending); worker.TargetP0P0(e0); worker.TargetP1P0(e1); worker.TargetP0P1(e2); worker.TargetP1P1(e3); }