ReactOS 0.4.17-dev-934-g091855f
d3dx10_43_main.c
Go to the documentation of this file.
1/*
2 * D3DX10 main file
3 *
4 * Copyright (c) 2010 Owen Rudge for CodeWeavers
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 *
20 */
21
22#include "wine/debug.h"
23
24#include <stdarg.h>
25
26#define COBJMACROS
27
28#include "windef.h"
29#include "winbase.h"
30#include "winuser.h"
31#include "objbase.h"
32
33#include "d3d10_1.h"
34#include "d3dx10.h"
35
37
38/***********************************************************************
39 * D3DX10CheckVersion
40 *
41 * Checks whether we are compiling against the correct d3d and d3dx library.
42 */
43BOOL WINAPI D3DX10CheckVersion(UINT d3dsdkvers, UINT d3dxsdkvers)
44{
45 if ((d3dsdkvers == D3D10_SDK_VERSION) && (d3dxsdkvers == 43))
46 return TRUE;
47
48 return FALSE;
49}
50
52 const D3D10_SHADER_MACRO *defines, ID3D10Include *include, const char *profile, UINT hlslflags,
53 UINT fxflags, ID3D10Device *device, ID3DX10ThreadPump *pump, ID3D10EffectPool **effectpool,
54 ID3D10Blob **errors, HRESULT *hresult)
55{
56 FIXME("data %p, datasize %Iu, filename %s, defines %p, include %p, profile %s, hlslflags %#x, fxflags %#x, "
57 "device %p, pump %p, effectpool %p, errors %p, hresult %p.\n",
59 pump, effectpool, errors, hresult);
60
61 return E_NOTIMPL;
62}
63
65{
68 static ID3D10SamplerState * const sampler_states[D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT];
70 static const unsigned int so_offsets[D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT] =
71 {~0u, ~0u, ~0u, ~0u, ~0u, ~0u, ~0u, ~0u, ~0u, ~0u, ~0u, ~0u, ~0u, ~0u, ~0u, ~0u};
72 static const unsigned int strides[D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT];
73 static const unsigned int offsets[D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT];
74 static const float blend_factors[4];
75
76 TRACE("device %p.\n", device);
77
78 if (!device)
79 return E_INVALIDARG;
80
81 ID3D10Device_VSSetConstantBuffers(device, 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT, buffers);
82 ID3D10Device_PSSetConstantBuffers(device, 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT, buffers);
83 ID3D10Device_GSSetConstantBuffers(device, 0, D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT, buffers);
84
85 ID3D10Device_VSSetSamplers(device, 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT, sampler_states);
86 ID3D10Device_PSSetSamplers(device, 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT, sampler_states);
87 ID3D10Device_GSSetSamplers(device, 0, D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT, sampler_states);
88
89 ID3D10Device_VSSetShaderResources(device, 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT, views);
90 ID3D10Device_PSSetShaderResources(device, 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT, views);
91 ID3D10Device_GSSetShaderResources(device, 0, D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT, views);
92
93 ID3D10Device_VSSetShader(device, NULL);
94 ID3D10Device_PSSetShader(device, NULL);
95 ID3D10Device_GSSetShader(device, NULL);
96
97 ID3D10Device_OMSetRenderTargets(device, D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT, target_views, NULL);
98
99 ID3D10Device_IASetIndexBuffer(device, NULL, DXGI_FORMAT_R32_UINT, 0);
100 ID3D10Device_IASetInputLayout(device, NULL);
101 ID3D10Device_IASetVertexBuffers(device, 0, D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT, buffers, strides, offsets);
102
103 ID3D10Device_SOSetTargets(device, D3D10_SO_BUFFER_SLOT_COUNT, buffers, so_offsets);
104
105 ID3D10Device_OMSetBlendState(device, NULL, blend_factors, 0);
106 ID3D10Device_OMSetDepthStencilState(device, NULL, 0);
107
108 ID3D10Device_RSSetState(device, NULL);
109
110 ID3D10Device_SetPredication(device, NULL, FALSE);
111
112 return S_OK;
113}
114
116 HMODULE swrast, unsigned int flags, ID3D10Device **device)
117{
118 HRESULT hr;
119
120 TRACE("adapter %p, driver_type %d, swrast %p, flags %#x, device %p.\n", adapter, driver_type,
122
125 return hr;
126
129 return hr;
130
131 return hr;
132}
133
135 HMODULE swrast, unsigned int flags, DXGI_SWAP_CHAIN_DESC *desc, IDXGISwapChain **swapchain,
137{
138 HRESULT hr;
139
140 TRACE("adapter %p, driver_type %d, swrast %p, flags %#x, desc %p, swapchain %p, device %p.\n",
141 adapter, driver_type, swrast, flags, desc, swapchain, device);
142
144 D3D10_1_SDK_VERSION, desc, swapchain, (ID3D10Device1 **)device)))
145 return hr;
146
149}
150
152{
153 FIXME("texture %p, src_level %u, filter %#x stub!\n", texture, src_level, filter);
154
155 return E_NOTIMPL;
156}
157
159{
160 TRACE("device %p, device1 %p.\n", device, device1);
161
162 return ID3D10Device_QueryInterface(device, &IID_ID3D10Device1, (void **)device1);
163}
164
166{
167 FIXME("enable %#x stub.\n", enable);
168
169 return D3DX_NOT_OPTIMIZED;
170}
171
173 ID3D10Resource *dst_texture)
174{
175 FIXME("src_texture %p, load_info %p, dst_texture %p stub!\n", src_texture, load_info, dst_texture);
176
177 return E_NOTIMPL;
178}
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
Definition: precomp.h:23
#define FIXME(fmt,...)
Definition: precomp.h:53
const unsigned int D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT
Definition: d3d10.idl:98
const unsigned int D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT
Definition: d3d10.idl:93
const unsigned int D3D10_SO_BUFFER_SLOT_COUNT
Definition: d3d10.idl:206
const unsigned int D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT
Definition: d3d10.idl:203
const unsigned int D3D10_SDK_VERSION
Definition: d3d10.idl:248
const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT
Definition: d3d10.idl:75
const unsigned int D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT
Definition: d3d10.idl:147
const UINT D3D10_1_SDK_VERSION
Definition: d3d10_1.idl:150
@ D3D10_FEATURE_LEVEL_10_0
Definition: d3d10_1.idl:54
@ D3D10_FEATURE_LEVEL_10_1
Definition: d3d10_1.idl:55
HRESULT WINAPI D3D10CreateDeviceAndSwapChain1(IDXGIAdapter *adapter, D3D10_DRIVER_TYPE driver_type, HMODULE swrast, UINT flags, D3D10_FEATURE_LEVEL1 feature_level, UINT sdk_version, DXGI_SWAP_CHAIN_DESC *swapchain_desc, IDXGISwapChain **swapchain, ID3D10Device1 **device)
Definition: d3d10_1_main.c:188
HRESULT WINAPI D3D10CreateDevice1(IDXGIAdapter *adapter, D3D10_DRIVER_TYPE driver_type, HMODULE swrast, UINT flags, D3D10_FEATURE_LEVEL1 hw_level, UINT sdk_version, ID3D10Device1 **device)
Definition: d3d10_1_main.c:182
D3D10_DRIVER_TYPE
Definition: d3d10misc.h:28
static SIZE_T const char const D3D_SHADER_MACRO ID3DInclude * include
Definition: asm.c:31
static SIZE_T const char const D3D_SHADER_MACRO * defines
Definition: asm.c:31
static SIZE_T datasize
Definition: asm.c:30
HRESULT WINAPI D3DX10CreateDevice(IDXGIAdapter *adapter, D3D10_DRIVER_TYPE driver_type, HMODULE swrast, unsigned int flags, ID3D10Device **device)
HRESULT WINAPI D3DX10GetFeatureLevel1(ID3D10Device *device, ID3D10Device1 **device1)
HRESULT WINAPI D3DX10UnsetAllDeviceObjects(ID3D10Device *device)
HRESULT WINAPI D3DX10FilterTexture(ID3D10Resource *texture, UINT src_level, UINT filter)
HRESULT WINAPI D3DX10LoadTextureFromTexture(ID3D10Resource *src_texture, D3DX10_TEXTURE_LOAD_INFO *load_info, ID3D10Resource *dst_texture)
BOOL WINAPI D3DX10CheckVersion(UINT d3dsdkvers, UINT d3dxsdkvers)
HRESULT WINAPI D3DX10CreateDeviceAndSwapChain(IDXGIAdapter *adapter, D3D10_DRIVER_TYPE driver_type, HMODULE swrast, unsigned int flags, DXGI_SWAP_CHAIN_DESC *desc, IDXGISwapChain **swapchain, ID3D10Device **device)
D3DX_CPU_OPTIMIZATION WINAPI D3DXCpuOptimizations(BOOL enable)
HRESULT WINAPI D3DX10CreateEffectPoolFromMemory(const void *data, SIZE_T datasize, const char *filename, const D3D10_SHADER_MACRO *defines, ID3D10Include *include, const char *profile, UINT hlslflags, UINT fxflags, ID3D10Device *device, ID3DX10ThreadPump *pump, ID3D10EffectPool **effectpool, ID3D10Blob **errors, HRESULT *hresult)
enum _D3DX_CPU_OPTIMIZATION D3DX_CPU_OPTIMIZATION
@ D3DX_NOT_OPTIMIZED
Definition: d3dx10math.h:57
#define E_INVALIDARG
Definition: ddrawi.h:101
#define E_NOTIMPL
Definition: ddrawi.h:99
HRESULT hr
Definition: delayimp.cpp:582
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
@ DXGI_FORMAT_R32_UINT
Definition: dxgiformat.idl:65
unsigned int BOOL
Definition: ntddk_ex.h:94
static const FxOffsetAndName offsets[]
return adapter
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLenum GLuint texture
Definition: glext.h:6295
GLbitfield flags
Definition: glext.h:7161
GLboolean enable
Definition: glext.h:11120
const GLuint * buffers
Definition: glext.h:5916
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
Definition: glfuncs.h:240
unsigned int UINT
Definition: sysinfo.c:13
static D3D_DRIVER_TYPE driver_type
Definition: hlsl_d3d11.c:27
static D3D_DRIVER_TYPE HMODULE swrast
Definition: hlsl_d3d11.c:28
#define S_OK
Definition: intsafe.h:52
#define SUCCEEDED(hr)
Definition: intsafe.h:50
const char * filename
Definition: ioapi.h:137
#define debugstr_a
Definition: kernel32.h:31
#define profile
Definition: kernel32.h:12
D3D11_SHADER_VARIABLE_DESC desc
Definition: reflection.c:1683
#define TRACE(s)
Definition: solgame.cpp:4
Definition: devices.h:37
Definition: filter.c:165
ULONG_PTR SIZE_T
Definition: typedefs.h:80
#define WINAPI
Definition: msvc.h:6