ReactOS 0.4.17-dev-934-g091855f
d3d10_private.h File Reference
#include <math.h>
#include <stdint.h>
#include "wine/debug.h"
#include "wine/rbtree.h"
#include "winbase.h"
#include "winuser.h"
#include "objbase.h"
#include "d3d10.h"
#include "d3dcompiler.h"
#include "utils.h"
Include dependency graph for d3d10_private.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  d3d10_matrix
 
struct  d3d10_effect_shader_resource
 
struct  d3d10_effect_shader_signature
 
struct  d3d10_effect_shader_variable
 
struct  d3d10_effect_prop_dependencies
 
struct  d3d10_effect_sampler_desc
 
struct  d3d10_effect_state_object_variable
 
struct  d3d10_effect_resource_variable
 
struct  d3d10_effect_buffer_variable
 
struct  d3d10_effect_type
 
struct  d3d10_effect_type_member
 
struct  d3d10_effect_annotations
 
struct  d3d10_effect_variable
 
struct  d3d10_effect_pass_shader_desc
 
struct  d3d10_effect_pass
 
struct  d3d10_effect_technique
 
struct  d3d10_effect_anonymous_shader
 
struct  d3d10_effect_var_array
 
struct  d3d10_effect
 

Macros

#define COBJMACROS
 
#define D3DERR_INVALIDCALL   0x8876086c
 

Enumerations

enum  d3d10_effect_object_type_flags { D3D10_EOT_FLAG_GS_SO = 0x1 }
 
enum  d3d10_effect_object_operation {
  D3D10_EOO_CONST = 1 , D3D10_EOO_VAR = 2 , D3D10_EOO_CONST_INDEX = 3 , D3D10_EOO_VAR_INDEX = 4 ,
  D3D10_EOO_INDEX_EXPRESSION = 5 , D3D10_EOO_VALUE_EXPRESSION = 6 , D3D10_EOO_ANONYMOUS_SHADER = 7
}
 
enum  d3d10_effect_flags { D3D10_EFFECT_OPTIMIZED = 0x1 , D3D10_EFFECT_IS_POOL = 0x2 }
 

Functions

HRESULT d3d10_effect_parse (struct d3d10_effect *effect, const void *data, SIZE_T data_size)
 
HRESULT WINAPI D3D10CoreCreateDevice (IDXGIFactory *factory, IDXGIAdapter *adapter, unsigned int flags, D3D_FEATURE_LEVEL feature_level, ID3D10Device **device)
 
HRESULT WINAPI D3DCompileFromMemory (const void *data, SIZE_T data_size, const char *filename, const D3D_SHADER_MACRO *defines, ID3DInclude *include, const char *entrypoint, const char *target, UINT sflags, UINT eflags, ID3DBlob **shader, ID3DBlob **error_messages)
 
HRESULT WINAPI D3DDisassembleCode (const void *data, SIZE_T data_size, UINT flags, const char *comments, ID3DBlob **disassembly)
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 28 of file d3d10_private.h.

◆ D3DERR_INVALIDCALL

#define D3DERR_INVALIDCALL   0x8876086c

Definition at line 42 of file d3d10_private.h.

Enumeration Type Documentation

◆ d3d10_effect_flags

Enumerator
D3D10_EFFECT_OPTIMIZED 
D3D10_EFFECT_IS_POOL 

Definition at line 262 of file d3d10_private.h.

263{
266};
@ D3D10_EFFECT_OPTIMIZED
@ D3D10_EFFECT_IS_POOL

◆ d3d10_effect_object_operation

Enumerator
D3D10_EOO_CONST 
D3D10_EOO_VAR 
D3D10_EOO_CONST_INDEX 
D3D10_EOO_VAR_INDEX 
D3D10_EOO_INDEX_EXPRESSION 
D3D10_EOO_VALUE_EXPRESSION 
D3D10_EOO_ANONYMOUS_SHADER 

Definition at line 49 of file d3d10_private.h.

50{
52 D3D10_EOO_VAR = 2,
58};
@ D3D10_EOO_VALUE_EXPRESSION
Definition: d3d10_private.h:56
@ D3D10_EOO_CONST
Definition: d3d10_private.h:51
@ D3D10_EOO_VAR_INDEX
Definition: d3d10_private.h:54
@ D3D10_EOO_INDEX_EXPRESSION
Definition: d3d10_private.h:55
@ D3D10_EOO_VAR
Definition: d3d10_private.h:52
@ D3D10_EOO_ANONYMOUS_SHADER
Definition: d3d10_private.h:57
@ D3D10_EOO_CONST_INDEX
Definition: d3d10_private.h:53

◆ d3d10_effect_object_type_flags

Enumerator
D3D10_EOT_FLAG_GS_SO 

Definition at line 44 of file d3d10_private.h.

45{
47};
@ D3D10_EOT_FLAG_GS_SO
Definition: d3d10_private.h:46

Function Documentation

◆ d3d10_effect_parse()

HRESULT d3d10_effect_parse ( struct d3d10_effect *  effect,
const void *  data,
SIZE_T  data_size 
)

Definition at line 4308 of file effect.c.

4309{
4310 const struct vkd3d_shader_code dxbc = {.code = data, .size = data_size};
4312 struct vkd3d_shader_dxbc_desc dxbc_desc;
4313 HRESULT hr = S_OK;
4314 unsigned int i;
4315 int ret;
4316
4317 if ((ret = vkd3d_shader_parse_dxbc(&dxbc, 0, &dxbc_desc, NULL)) < 0)
4318 {
4319 WARN("Failed to parse DXBC, ret %d.\n", ret);
4320 return E_FAIL;
4321 }
4322
4323 for (i = 0; i < dxbc_desc.section_count; ++i)
4324 {
4325 section = &dxbc_desc.sections[i];
4326
4327 TRACE("Section %u: tag %s, data {%p, %#Ix}.\n",
4328 i, debugstr_fourcc(section->tag),
4329 section->data.code, section->data.size);
4330
4331 if (section->tag != TAG_FX10)
4332 {
4333 FIXME("Unhandled chunk %s.\n", debugstr_fourcc(section->tag));
4334 continue;
4335 }
4336
4337 if (FAILED(hr = parse_fx10(effect, section->data.code, section->data.size)))
4338 break;
4339 }
4340
4341 vkd3d_shader_free_dxbc(&dxbc_desc);
4342
4343 return hr;
4344}
#define FIXME(fmt,...)
Definition: precomp.h:53
#define WARN(fmt,...)
Definition: precomp.h:61
#define E_FAIL
Definition: ddrawi.h:102
HRESULT hr
Definition: delayimp.cpp:582
#define NULL
Definition: types.h:112
static HRESULT parse_fx10(struct d3d10_effect *e, const char *data, size_t data_size)
Definition: effect.c:4230
#define TAG_FX10
Definition: effect.c:32
return ret
Definition: mutex.c:147
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
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 const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define S_OK
Definition: intsafe.h:52
#define FAILED(hr)
Definition: intsafe.h:51
static __inline const char * debugstr_fourcc(unsigned int cc)
Definition: debug.h:397
#define TRACE(s)
Definition: solgame.cpp:4
Definition: parser.c:56
const void * code
Definition: vkd3d_shader.h:413
VKD3D_SHADER_API void vkd3d_shader_free_dxbc(struct vkd3d_shader_dxbc_desc *dxbc)
Definition: dxbc.c:290
VKD3D_SHADER_API int vkd3d_shader_parse_dxbc(const struct vkd3d_shader_code *dxbc, uint32_t flags, struct vkd3d_shader_dxbc_desc *desc, char **messages)
Definition: dxbc.c:320

Referenced by d3d10_create_effect().

◆ D3D10CoreCreateDevice()

HRESULT WINAPI D3D10CoreCreateDevice ( IDXGIFactory *  factory,
IDXGIAdapter *  adapter,
unsigned int  flags,
D3D_FEATURE_LEVEL  feature_level,
ID3D10Device **  device 
)

Definition at line 39 of file d3d10core_main.c.

41{
43 HMODULE d3d11;
44 HRESULT hr;
45
46 TRACE("factory %p, adapter %p, flags %#x, feature_level %#x, device %p.\n",
47 factory, adapter, flags, feature_level, device);
48
49 d3d11 = LoadLibraryA("d3d11.dll");
50 hr = DXGID3D10CreateDevice(d3d11, factory, adapter, flags, &feature_level, 1, (void **)&dxgi_device);
51 FreeLibrary(d3d11);
52 if (FAILED(hr))
53 {
54 WARN("Failed to create device, hr %#lx.\n", hr);
55 return hr;
56 }
57
58 hr = IUnknown_QueryInterface(dxgi_device, &IID_ID3D10Device, (void **)device);
59 IUnknown_Release(dxgi_device);
60 if (FAILED(hr))
61 {
62 ERR("Failed to query ID3D10Device interface, returning E_FAIL.\n");
63 return E_FAIL;
64 }
65
66 return S_OK;
67}
#define ERR(fmt,...)
Definition: precomp.h:57
HRESULT WINAPI DXGID3D10CreateDevice(HMODULE d3d11, IDXGIFactory *factory, IDXGIAdapter *adapter, unsigned int flags, const D3D_FEATURE_LEVEL *feature_levels, unsigned int level_count, void **device)
Definition: dxgi_main.c:135
#define FreeLibrary(x)
Definition: compat.h:748
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryA(LPCSTR lpLibFileName)
Definition: loader.c:111
return adapter
GLbitfield flags
Definition: glext.h:7161
Definition: devices.h:37
Definition: main.c:439

Referenced by d3d10_create_device().

◆ D3DCompileFromMemory()

HRESULT WINAPI D3DCompileFromMemory ( const void *  data,
SIZE_T  data_size,
const char *  filename,
const D3D_SHADER_MACRO *  defines,
ID3DInclude *  include,
const char *  entrypoint,
const char *  target,
UINT  sflags,
UINT  eflags,
ID3DBlob **  shader,
ID3DBlob **  error_messages 
)

◆ D3DDisassembleCode()

HRESULT WINAPI D3DDisassembleCode ( const void *  data,
SIZE_T  data_size,
UINT  flags,
const char *  comments,
ID3DBlob **  disassembly 
)

Referenced by D3D10DisassembleShader().