X64 transport [Part 5] (Update plugins.cpp)
[xy_vsfilter.git] / src / apps / mplayerc / PixelShaderCompiler.h
blobe9061d9201c2f7407514226fa63be59f756ffcfd
1 /*
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)
8 * any later version.
9 *
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
22 #pragma once
24 #include <d3dx9shader.h>
26 class CPixelShaderCompiler
28 typedef HRESULT (WINAPI * D3DXCompileShaderPtr) (
29 LPCSTR pSrcData,
30 UINT SrcDataLen,
31 CONST D3DXMACRO* pDefines,
32 LPD3DXINCLUDE pInclude,
33 LPCSTR pFunctionName,
34 LPCSTR pProfile,
35 DWORD Flags,
36 LPD3DXBUFFER* ppShader,
37 LPD3DXBUFFER* ppErrorMsgs,
38 LPD3DXCONSTANTTABLE* ppConstantTable);
40 typedef HRESULT (WINAPI * D3DXDisassembleShaderPtr) (
41 CONST DWORD* pShader,
42 BOOL EnableColorCode,
43 LPCSTR pComments,
44 LPD3DXBUFFER* ppDisassembly);
46 HMODULE m_hDll;
47 D3DXCompileShaderPtr m_pD3DXCompileShader;
48 D3DXDisassembleShaderPtr m_pD3DXDisassembleShader;
50 CComPtr<IDirect3DDevice9> m_pD3DDev;
52 public:
53 CPixelShaderCompiler(IDirect3DDevice9* pD3DDev, bool fStaySilent = false);
54 virtual ~CPixelShaderCompiler();
56 HRESULT CompileShader(
57 LPCSTR pSrcData,
58 LPCSTR pFunctionName,
59 LPCSTR pProfile,
60 DWORD Flags,
61 IDirect3DPixelShader9** ppPixelShader,
62 CString* disasm = NULL,
63 CString* errmsg = NULL);