1 | /*****************************************************************************\ |
2 | Snes9x - Portable Super Nintendo Entertainment System (TM) emulator. |
3 | This file is licensed under the Snes9x License. |
4 | For further information, consult the LICENSE file in the root directory. |
5 | \*****************************************************************************/ |
6 | |
7 | #define _TILEIMPL_CPP_ |
8 | #include "tileimpl.h" |
9 | |
10 | namespace TileImpl { |
11 | |
12 | template<class MATH, class BPSTART> |
13 | void HiresBase<MATH, BPSTART>::Draw(int N, int M, uint32 Offset, uint32 OffsetInLine, uint8 Pix, uint8 Z1, uint8 Z2) |
14 | { |
15 | if (Z1 > GFX.DB[Offset + 2 * N] && (M)) |
16 | { |
17 | GFX.S[Offset + 2 * N + 1] = MATH::Calc(GFX.ScreenColors[Pix], GFX.SubScreen[Offset + 2 * N], GFX.SubZBuffer[Offset + 2 * N]); |
18 | if ((OffsetInLine + 2 * N ) != (SNES_WIDTH - 1) << 1) |
19 | GFX.S[Offset + 2 * N + 2] = MATH::Calc((GFX.ClipColors ? 0 : GFX.SubScreen[Offset + 2 * N + 2]), GFX.RealScreenColors[Pix], GFX.SubZBuffer[Offset + 2 * N]); |
20 | if ((OffsetInLine + 2 * N) == 0 || (OffsetInLine + 2 * N) == GFX.RealPPL) |
21 | GFX.S[Offset + 2 * N] = MATH::Calc((GFX.ClipColors ? 0 : GFX.SubScreen[Offset + 2 * N]), GFX.RealScreenColors[Pix], GFX.SubZBuffer[Offset + 2 * N]); |
22 | GFX.DB[Offset + 2 * N] = GFX.DB[Offset + 2 * N + 1] = Z2; |
23 | } |
24 | } |
25 | |
26 | |
27 | // hires double width |
28 | template struct Renderers<DrawTile16, Hires>; |
29 | template struct Renderers<DrawClippedTile16, Hires>; |
30 | template struct Renderers<DrawMosaicPixel16, Hires>; |
31 | template struct Renderers<DrawBackdrop16, Hires>; |
32 | template struct Renderers<DrawMode7MosaicBG1, Hires>; |
33 | template struct Renderers<DrawMode7BG1, Hires>; |
34 | template struct Renderers<DrawMode7MosaicBG2, Hires>; |
35 | template struct Renderers<DrawMode7BG2, Hires>; |
36 | |
37 | // hires double width interlace |
38 | template struct Renderers<DrawTile16, HiresInterlace>; |
39 | template struct Renderers<DrawClippedTile16, HiresInterlace>; |
40 | template struct Renderers<DrawMosaicPixel16, HiresInterlace>; |
41 | //template struct Renderers<DrawBackdrop16, Hires>; |
42 | //template struct Renderers<DrawMode7MosaicBG1, Hires>; |
43 | //template struct Renderers<DrawMode7BG1, Hires>; |
44 | //template struct Renderers<DrawMode7MosaicBG2, Hires>; |
45 | //template struct Renderers<DrawMode7BG2, Hires>; |
46 | |
47 | } // namespace TileImpl |
48 | |