2 * Copyright (C) 2003-2006 Gabest
3 * http://www.gabest.org
5 * This Program 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, or (at your option)
10 * This Program 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.
15 * You should have received a copy of the GNU General Public License
16 * along with GNU Make; see the file COPYING. If not, write to
17 * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
18 * http://www.gnu.org/copyleft/gpl.html
24 #include <d3dx9shader.h>
26 class CPixelShaderCompiler
28 typedef HRESULT (WINAPI
* D3DXCompileShaderPtr
) (
31 CONST D3DXMACRO
* pDefines
,
32 LPD3DXINCLUDE pInclude
,
36 LPD3DXBUFFER
* ppShader
,
37 LPD3DXBUFFER
* ppErrorMsgs
,
38 LPD3DXCONSTANTTABLE
* ppConstantTable
);
40 typedef HRESULT (WINAPI
* D3DXDisassembleShaderPtr
) (
44 LPD3DXBUFFER
* ppDisassembly
);
47 D3DXCompileShaderPtr m_pD3DXCompileShader
;
48 D3DXDisassembleShaderPtr m_pD3DXDisassembleShader
;
50 CComPtr
<IDirect3DDevice9
> m_pD3DDev
;
53 CPixelShaderCompiler(IDirect3DDevice9
* pD3DDev
, bool fStaySilent
= false);
54 virtual ~CPixelShaderCompiler();
56 HRESULT
CompileShader(
61 IDirect3DPixelShader9
** ppPixelShader
,
62 CString
* disasm
= NULL
,
63 CString
* errmsg
= NULL
);