1 /*  Copyright 2012 Guillaume Duhamel
2 
3     This file is part of Yabause.
4 
5     Yabause is free software; you can redistribute it and/or modify
6     it under the terms of the GNU General Public License as published by
7     the Free Software Foundation; either version 2 of the License, or
8     (at your option) any later version.
9 
10     Yabause is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13     GNU General Public License for more details.
14 
15     You should have received a copy of the GNU General Public License
16     along with Yabause; if not, write to the Free Software
17     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
18 */
19 
20 #ifndef TITAN_H
21 #define TITAN_H
22 
23 #include "../core.h"
24 #include "../vidshared.h"
25 
26 #define TITAN_BLEND_TOP     0
27 #define TITAN_BLEND_BOTTOM  1
28 #define TITAN_BLEND_ADD     2
29 
30 #define TITAN_SPRITE 5
31 #define TITAN_RBG0 4
32 #define TITAN_NBG0 3
33 #define TITAN_NBG1 2
34 #define TITAN_NBG2 1
35 #define TITAN_NBG3 0
36 #define TITAN_BACK -1
37 
38 #define TITAN_NORMAL_SHADOW 1
39 #define TITAN_MSB_SHADOW 2
40 
41 int TitanInit();
42 int TitanDeInit();
43 void TitanErase();
44 
45 void TitanSetResolution(int width, int height);
46 void TitanGetResolution(int * width, int * height);
47 
48 void TitanSetBlendingMode(int blend_mode);
49 
50 void TitanPutBackHLine(s32 y, u32 color);
51 
52 void TitanPutLineHLine(int linescreen, s32 y, u32 color);
53 
54 void TitanPutPixel(int priority, s32 x, s32 y, u32 color, int linescreen, vdp2draw_struct* info);
55 void TitanPutHLine(int priority, s32 x, s32 y, s32 width, u32 color);
56 
57 void TitanRender(pixel_t * dispbuffer);
58 
59 void TitanWriteColor(pixel_t * dispbuffer, s32 bufwidth, s32 x, s32 y, u32 color);
60 
61 #endif
62