d07c171f |
1 | /* |
2 | Copyright (C) 2003 Rice1964 |
3 | |
4 | This program is free software; you can redistribute it and/or |
5 | modify it under the terms of the GNU General Public License |
6 | as published by the Free Software Foundation; either version 2 |
7 | of the License, or (at your option) any later version. |
8 | |
9 | This program is distributed in the hope that it will be useful, |
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
12 | GNU General Public License for more details. |
13 | |
14 | You should have received a copy of the GNU General Public License |
15 | along with this program; if not, write to the Free Software |
16 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
17 | */ |
18 | |
19 | #ifndef _BLENDER_H_ |
20 | #define _BLENDER_H_ |
21 | |
22 | #include "typedefs.h" |
23 | |
24 | class CRender; |
25 | |
26 | class CBlender |
27 | { |
28 | public: |
29 | virtual ~CBlender() {} |
30 | |
31 | virtual void InitBlenderMode(void); |
32 | virtual void NormalAlphaBlender(void)=0; |
33 | virtual void DisableAlphaBlender(void)=0; |
34 | |
35 | virtual void BlendFunc(uint32 srcFunc, uint32 desFunc)=0; |
36 | |
37 | virtual void Enable()=0; |
38 | virtual void Disable()=0; |
39 | protected: |
40 | CBlender(CRender *pRender) : m_pRender(pRender) {} |
41 | CRender *m_pRender; |
42 | }; |
43 | |
44 | typedef enum _BLEND |
45 | { |
46 | BLEND_ZERO = 1, |
47 | BLEND_ONE = 2, |
48 | BLEND_SRCCOLOR = 3, |
49 | BLEND_INVSRCCOLOR = 4, |
50 | BLEND_SRCALPHA = 5, |
51 | BLEND_INVSRCALPHA = 6, |
52 | BLEND_DESTALPHA = 7, |
53 | BLEND_INVDESTALPHA = 8, |
54 | BLEND_DESTCOLOR = 9, |
55 | BLEND_INVDESTCOLOR = 10, |
56 | BLEND_SRCALPHASAT = 11, |
57 | BLEND_BOTHSRCALPHA = 12, |
58 | BLEND_BOTHINVSRCALPHA = 13, |
59 | BLEND_BLENDFACTOR = 14, |
60 | BLEND_INVBLENDFACTOR = 15, |
61 | BLEND_FORCE_DWORD = 0x7fffffff |
62 | } BLEND; |
63 | |
64 | #endif |
65 | |
66 | |
67 | |