ReactOS 0.4.17-dev-934-g091855f
d3d10effect.idl File Reference

Go to the source code of this file.

Classes

struct  _D3D10_EFFECT_TYPE_DESC
 
struct  _D3D10_EFFECT_VARIABLE_DESC
 
struct  _D3D10_TECHNIQUE_DESC
 
struct  _D3D10_STATE_BLOCK_MASK
 
struct  _D3D10_EFFECT_DESC
 
struct  _D3D10_EFFECT_SHADER_DESC
 
struct  _D3D10_PASS_DESC
 
struct  _D3D10_PASS_SHADER_DESC
 
interface  ID3D10EffectType
 
interface  ID3D10EffectVariable
 
interface  ID3D10EffectConstantBuffer
 
interface  ID3D10EffectScalarVariable
 
interface  ID3D10EffectVectorVariable
 
interface  ID3D10EffectMatrixVariable
 
interface  ID3D10EffectStringVariable
 
interface  ID3D10EffectShaderResourceVariable
 
interface  ID3D10EffectRenderTargetViewVariable
 
interface  ID3D10EffectDepthStencilViewVariable
 
interface  ID3D10EffectShaderVariable
 
interface  ID3D10EffectBlendVariable
 
interface  ID3D10EffectDepthStencilVariable
 
interface  ID3D10EffectRasterizerVariable
 
interface  ID3D10EffectSamplerVariable
 
interface  ID3D10EffectTechnique
 
interface  ID3D10Effect
 
interface  ID3D10EffectPool
 
interface  ID3D10EffectPass
 
interface  ID3D10StateBlock
 

Macros

#define D3D10_BYTES_FROM_BITS(x)   (((x) + 7) >> 3)
 

Typedefs

typedef enum _D3D10_DEVICE_STATE_TYPES D3D10_DEVICE_STATE_TYPES
 
typedef struct _D3D10_EFFECT_TYPE_DESC D3D10_EFFECT_TYPE_DESC
 
typedef struct _D3D10_EFFECT_VARIABLE_DESC D3D10_EFFECT_VARIABLE_DESC
 
typedef struct _D3D10_TECHNIQUE_DESC D3D10_TECHNIQUE_DESC
 
typedef struct _D3D10_STATE_BLOCK_MASK D3D10_STATE_BLOCK_MASK
 
typedef struct _D3D10_EFFECT_DESC D3D10_EFFECT_DESC
 
typedef struct _D3D10_EFFECT_SHADER_DESC D3D10_EFFECT_SHADER_DESC
 
typedef struct _D3D10_PASS_DESC D3D10_PASS_DESC
 
typedef struct _D3D10_PASS_SHADER_DESC D3D10_PASS_SHADER_DESC
 

Enumerations

enum  _D3D10_DEVICE_STATE_TYPES {
  D3D10_DST_SO_BUFFERS = 1 , D3D10_DST_OM_RENDER_TARGETS , D3D10_DST_OM_DEPTH_STENCIL_STATE , D3D10_DST_OM_BLEND_STATE ,
  D3D10_DST_VS , D3D10_DST_VS_SAMPLERS , D3D10_DST_VS_SHADER_RESOURCES , D3D10_DST_VS_CONSTANT_BUFFERS ,
  D3D10_DST_GS , D3D10_DST_GS_SAMPLERS , D3D10_DST_GS_SHADER_RESOURCES , D3D10_DST_GS_CONSTANT_BUFFERS ,
  D3D10_DST_PS , D3D10_DST_PS_SAMPLERS , D3D10_DST_PS_SHADER_RESOURCES , D3D10_DST_PS_CONSTANT_BUFFERS ,
  D3D10_DST_IA_VERTEX_BUFFERS , D3D10_DST_IA_INDEX_BUFFER , D3D10_DST_IA_INPUT_LAYOUT , D3D10_DST_IA_PRIMITIVE_TOPOLOGY ,
  D3D10_DST_RS_VIEWPORTS , D3D10_DST_RS_SCISSOR_RECTS , D3D10_DST_RS_RASTERIZER_STATE , D3D10_DST_PREDICATION
}
 

Functions

HRESULT __stdcall D3D10CompileEffectFromMemory (void *data, SIZE_T data_size, const char *filename, const D3D10_SHADER_MACRO *defines, ID3D10Include *include, UINT hlsl_flags, UINT fx_flags, ID3D10Blob **effect, ID3D10Blob **errors)
 
HRESULT __stdcall D3D10CreateEffectFromMemory (void *data, SIZE_T data_size, UINT flags, ID3D10Device *device, ID3D10EffectPool *effect_pool, ID3D10Effect **effect)
 
HRESULT __stdcall D3D10CreateEffectPoolFromMemory (void *data, SIZE_T data_size, UINT fx_flags, ID3D10Device *device, ID3D10EffectPool **effect_pool)
 
HRESULT __stdcall D3D10CreateStateBlock (ID3D10Device *device, D3D10_STATE_BLOCK_MASK *mask, ID3D10StateBlock **stateblock)
 
HRESULT __stdcall D3D10StateBlockMaskDifference (D3D10_STATE_BLOCK_MASK *mask_x, D3D10_STATE_BLOCK_MASK *mask_y, D3D10_STATE_BLOCK_MASK *result)
 
HRESULT __stdcall D3D10StateBlockMaskDisableAll (D3D10_STATE_BLOCK_MASK *mask)
 
HRESULT __stdcall D3D10StateBlockMaskDisableCapture (D3D10_STATE_BLOCK_MASK *mask, D3D10_DEVICE_STATE_TYPES state_type, UINT start_idx, UINT count)
 
HRESULT __stdcall D3D10StateBlockMaskEnableAll (D3D10_STATE_BLOCK_MASK *mask)
 
HRESULT __stdcall D3D10StateBlockMaskEnableCapture (D3D10_STATE_BLOCK_MASK *mask, D3D10_DEVICE_STATE_TYPES state_type, UINT start_idx, UINT count)
 
BOOL __stdcall D3D10StateBlockMaskGetSetting (D3D10_STATE_BLOCK_MASK *mask, D3D10_DEVICE_STATE_TYPES state_type, UINT idx)
 
HRESULT __stdcall D3D10StateBlockMaskIntersect (D3D10_STATE_BLOCK_MASK *mask_x, D3D10_STATE_BLOCK_MASK *mask_y, D3D10_STATE_BLOCK_MASK *result)
 
HRESULT __stdcall D3D10StateBlockMaskUnion (D3D10_STATE_BLOCK_MASK *mask_x, D3D10_STATE_BLOCK_MASK *mask_y, D3D10_STATE_BLOCK_MASK *result)
 

Variables

const unsigned int D3D10_EFFECT_VARIABLE_POOLED = 0x1
 
const unsigned int D3D10_EFFECT_VARIABLE_ANNOTATION = 0x2
 
const unsigned int D3D10_EFFECT_VARIABLE_EXPLICIT_BIND_POINT = 0x4
 
const unsigned int D3D10_EFFECT_COMPILE_CHILD_EFFECT = 0x0001
 
const unsigned int D3D10_EFFECT_COMPILE_ALLOW_SLOW_OPS = 0x0002
 
const unsigned int D3D10_EFFECT_SINGLE_THREADED = 0x0008
 

Macro Definition Documentation

◆ D3D10_BYTES_FROM_BITS

#define D3D10_BYTES_FROM_BITS (   x)    (((x) + 7) >> 3)

Definition at line 41 of file d3d10effect.idl.

Typedef Documentation

◆ D3D10_DEVICE_STATE_TYPES

◆ D3D10_EFFECT_DESC

◆ D3D10_EFFECT_SHADER_DESC

◆ D3D10_EFFECT_TYPE_DESC

◆ D3D10_EFFECT_VARIABLE_DESC

◆ D3D10_PASS_DESC

◆ D3D10_PASS_SHADER_DESC

◆ D3D10_STATE_BLOCK_MASK

◆ D3D10_TECHNIQUE_DESC

Enumeration Type Documentation

◆ _D3D10_DEVICE_STATE_TYPES

Enumerator
D3D10_DST_SO_BUFFERS 
D3D10_DST_OM_RENDER_TARGETS 
D3D10_DST_OM_DEPTH_STENCIL_STATE 
D3D10_DST_OM_BLEND_STATE 
D3D10_DST_VS 
D3D10_DST_VS_SAMPLERS 
D3D10_DST_VS_SHADER_RESOURCES 
D3D10_DST_VS_CONSTANT_BUFFERS 
D3D10_DST_GS 
D3D10_DST_GS_SAMPLERS 
D3D10_DST_GS_SHADER_RESOURCES 
D3D10_DST_GS_CONSTANT_BUFFERS 
D3D10_DST_PS 
D3D10_DST_PS_SAMPLERS 
D3D10_DST_PS_SHADER_RESOURCES 
D3D10_DST_PS_CONSTANT_BUFFERS 
D3D10_DST_IA_VERTEX_BUFFERS 
D3D10_DST_IA_INDEX_BUFFER 
D3D10_DST_IA_INPUT_LAYOUT 
D3D10_DST_IA_PRIMITIVE_TOPOLOGY 
D3D10_DST_RS_VIEWPORTS 
D3D10_DST_RS_SCISSOR_RECTS 
D3D10_DST_RS_RASTERIZER_STATE 
D3D10_DST_PREDICATION 

Definition at line 48 of file d3d10effect.idl.

49{
enum _D3D10_DEVICE_STATE_TYPES D3D10_DEVICE_STATE_TYPES
@ D3D10_DST_PS_SHADER_RESOURCES
Definition: d3d10effect.idl:64
@ D3D10_DST_VS
Definition: d3d10effect.idl:54
@ D3D10_DST_IA_INPUT_LAYOUT
Definition: d3d10effect.idl:68
@ D3D10_DST_OM_RENDER_TARGETS
Definition: d3d10effect.idl:51
@ D3D10_DST_GS_SHADER_RESOURCES
Definition: d3d10effect.idl:60
@ D3D10_DST_RS_SCISSOR_RECTS
Definition: d3d10effect.idl:71
@ D3D10_DST_PS_CONSTANT_BUFFERS
Definition: d3d10effect.idl:65
@ D3D10_DST_IA_VERTEX_BUFFERS
Definition: d3d10effect.idl:66
@ D3D10_DST_GS_CONSTANT_BUFFERS
Definition: d3d10effect.idl:61
@ D3D10_DST_IA_PRIMITIVE_TOPOLOGY
Definition: d3d10effect.idl:69
@ D3D10_DST_OM_BLEND_STATE
Definition: d3d10effect.idl:53
@ D3D10_DST_RS_VIEWPORTS
Definition: d3d10effect.idl:70
@ D3D10_DST_PS
Definition: d3d10effect.idl:62
@ D3D10_DST_GS
Definition: d3d10effect.idl:58
@ D3D10_DST_PS_SAMPLERS
Definition: d3d10effect.idl:63
@ D3D10_DST_SO_BUFFERS
Definition: d3d10effect.idl:50
@ D3D10_DST_OM_DEPTH_STENCIL_STATE
Definition: d3d10effect.idl:52
@ D3D10_DST_VS_SHADER_RESOURCES
Definition: d3d10effect.idl:56
@ D3D10_DST_VS_SAMPLERS
Definition: d3d10effect.idl:55
@ D3D10_DST_PREDICATION
Definition: d3d10effect.idl:73
@ D3D10_DST_RS_RASTERIZER_STATE
Definition: d3d10effect.idl:72
@ D3D10_DST_GS_SAMPLERS
Definition: d3d10effect.idl:59
@ D3D10_DST_VS_CONSTANT_BUFFERS
Definition: d3d10effect.idl:57
@ D3D10_DST_IA_INDEX_BUFFER
Definition: d3d10effect.idl:67

Function Documentation

◆ D3D10CompileEffectFromMemory()

HRESULT __stdcall D3D10CompileEffectFromMemory ( void *  data,
SIZE_T  data_size,
const char *  filename,
const D3D10_SHADER_MACRO *  defines,
ID3D10Include *  include,
UINT  hlsl_flags,
UINT  fx_flags,
ID3D10Blob **  effect,
ID3D10Blob **  errors 
)

Definition at line 233 of file d3d10_main.c.

236{
237 TRACE("data %p, data_size %Iu, filename %s, defines %p, include %p, "
238 "hlsl_flags %#x, fx_flags %#x, effect %p, errors %p.\n",
240 hlsl_flags, fx_flags, effect, errors);
241
242 return D3DCompileFromMemory(data, data_size, filename, defines, include,
243 NULL, "fx_4_0", hlsl_flags, fx_flags, effect, errors);
244}
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)
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
#define NULL
Definition: types.h:112
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
const char * filename
Definition: ioapi.h:137
int int static __inline const char * wine_dbgstr_a(const char *s)
Definition: debug.h:160
#define TRACE(s)
Definition: solgame.cpp:4

◆ D3D10CreateEffectFromMemory()

HRESULT __stdcall D3D10CreateEffectFromMemory ( void *  data,
SIZE_T  data_size,
UINT  flags,
ID3D10Device *  device,
ID3D10EffectPool *  effect_pool,
ID3D10Effect **  effect 
)

Definition at line 10133 of file effect.c.

10135{
10136 struct d3d10_effect *object, *pool = NULL;
10137 HRESULT hr;
10138
10139 TRACE("data %p, data_size %Iu, flags %#x, device %p, effect_pool %p, effect %p.\n",
10140 data, data_size, flags, device, effect_pool, effect);
10141
10142 if (!(flags & D3D10_EFFECT_COMPILE_CHILD_EFFECT) != !effect_pool)
10143 return E_INVALIDARG;
10144
10145 if (effect_pool && !(pool = unsafe_impl_from_ID3D10EffectPool(effect_pool)))
10146 {
10147 WARN("External pool implementations are not supported.\n");
10148 return E_INVALIDARG;
10149 }
10150
10151 if (FAILED(hr = d3d10_create_effect(data, data_size, device, pool, 0, &object)))
10152 {
10153 WARN("Failed to create an effect, hr %#lx.\n", hr);
10154 return hr;
10155 }
10156
10157 *effect = &object->ID3D10Effect_iface;
10158
10159 TRACE("Created effect %p\n", object);
10160
10161 return hr;
10162}
#define WARN(fmt,...)
Definition: precomp.h:61
const unsigned int D3D10_EFFECT_COMPILE_CHILD_EFFECT
#define E_INVALIDARG
Definition: ddrawi.h:101
HRESULT hr
Definition: delayimp.cpp:582
static HRESULT d3d10_create_effect(void *data, SIZE_T data_size, ID3D10Device *device, struct d3d10_effect *pool, unsigned int flags, struct d3d10_effect **effect)
Definition: effect.c:10097
static struct d3d10_effect * unsafe_impl_from_ID3D10EffectPool(ID3D10EffectPool *iface)
Definition: effect.c:43
GLbitfield flags
Definition: glext.h:7161
#define FAILED(hr)
Definition: intsafe.h:51
Definition: devices.h:37

Referenced by create_effect().

◆ D3D10CreateEffectPoolFromMemory()

HRESULT __stdcall D3D10CreateEffectPoolFromMemory ( void *  data,
SIZE_T  data_size,
UINT  fx_flags,
ID3D10Device *  device,
ID3D10EffectPool **  effect_pool 
)

Definition at line 10196 of file effect.c.

10198{
10199 struct d3d10_effect *object;
10200 HRESULT hr;
10201
10202 TRACE("data %p, data_size %Iu, fx_flags %#x, device %p, effect_pool %p.\n",
10203 data, data_size, fx_flags, device, effect_pool);
10204
10205 if (!data)
10206 return E_INVALIDARG;
10207
10208 if (FAILED(hr = d3d10_create_effect(data, data_size, device, NULL,
10209 D3D10_EFFECT_IS_POOL, &object)))
10210 {
10211 WARN("Failed to create an effect, hr %#lx.\n", hr);
10212 return hr;
10213 }
10214
10215 *effect_pool = &object->ID3D10EffectPool_iface;
10216
10217 TRACE("Created effect pool %p.\n", object);
10218
10219 return hr;
10220}
@ D3D10_EFFECT_IS_POOL

◆ D3D10CreateStateBlock()

HRESULT __stdcall D3D10CreateStateBlock ( ID3D10Device *  device,
D3D10_STATE_BLOCK_MASK *  mask,
ID3D10StateBlock **  stateblock 
)

Definition at line 553 of file stateblock.c.

555{
556 struct d3d10_stateblock *object;
557
558 TRACE("device %p, mask %p, stateblock %p.\n", device, mask, stateblock);
559
560 if (!(object = calloc(1, sizeof(*object))))
561 {
562 ERR("Failed to allocate D3D10 stateblock object memory.\n");
563 return E_OUTOFMEMORY;
564 }
565
566 object->ID3D10StateBlock_iface.lpVtbl = &d3d10_stateblock_vtbl;
567 object->refcount = 1;
568
569 object->device = device;
570 ID3D10Device_AddRef(object->device);
571 object->mask = *mask;
572
573 TRACE("Created stateblock %p.\n", object);
574 *stateblock = &object->ID3D10StateBlock_iface;
575
576 return S_OK;
577}
#define ERR(fmt,...)
Definition: precomp.h:57
static const struct ID3D10StateBlockVtbl d3d10_stateblock_vtbl
Definition: stateblock.c:540
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
GLenum GLint GLuint mask
Definition: glext.h:6028
#define S_OK
Definition: intsafe.h:52
#define calloc
Definition: rosglue.h:14
ID3D10Device * device
Definition: stateblock.c:29

◆ D3D10StateBlockMaskDifference()

HRESULT __stdcall D3D10StateBlockMaskDifference ( D3D10_STATE_BLOCK_MASK *  mask_x,
D3D10_STATE_BLOCK_MASK *  mask_y,
D3D10_STATE_BLOCK_MASK *  result 
)

Definition at line 649 of file stateblock.c.

651{
652 UINT count = sizeof(*result) / sizeof(DWORD);
653 UINT i;
654
655 TRACE("mask_x %p, mask_y %p, result %p.\n", mask_x, mask_y, result);
656
657 if (!mask_x || !mask_y || !result)
658 return E_INVALIDARG;
659
660 for (i = 0; i < count; ++i)
661 {
662 ((DWORD *)result)[i] = ((DWORD *)mask_x)[i] ^ ((DWORD *)mask_y)[i];
663 }
664 for (i = count * sizeof(DWORD); i < sizeof(*result); ++i)
665 {
666 ((BYTE *)result)[i] = ((BYTE *)mask_x)[i] ^ ((BYTE *)mask_y)[i];
667 }
668
669 return S_OK;
670}
unsigned long DWORD
Definition: ntddk_ex.h:95
GLuint GLuint GLsizei count
Definition: gl.h:1545
GLuint64EXT * result
Definition: glext.h:11304
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
unsigned int UINT
Definition: sysinfo.c:13
#define DWORD
Definition: nt_native.h:44
unsigned char BYTE
Definition: xxhash.c:193

◆ D3D10StateBlockMaskDisableAll()

HRESULT __stdcall D3D10StateBlockMaskDisableAll ( D3D10_STATE_BLOCK_MASK *  mask)

Definition at line 672 of file stateblock.c.

673{
674 TRACE("mask %p.\n", mask);
675
676 if (!mask)
677 return E_INVALIDARG;
678
679 memset(mask, 0, sizeof(*mask));
680
681 return S_OK;
682}
#define memset(x, y, z)
Definition: compat.h:39

◆ D3D10StateBlockMaskDisableCapture()

HRESULT __stdcall D3D10StateBlockMaskDisableCapture ( D3D10_STATE_BLOCK_MASK *  mask,
D3D10_DEVICE_STATE_TYPES  state_type,
UINT  start_idx,
UINT  count 
)

Definition at line 684 of file stateblock.c.

686{
687 TRACE("mask %p state_type %s, start_idx %u, count %u.\n",
688 mask, debug_d3d10_device_state_types(state_type), start_idx, count);
689
690 if (!mask)
691 return E_INVALIDARG;
692
693 switch (state_type)
694 {
696 return stateblock_mask_clear_bits(&mask->SOBuffers, 1, start_idx, count);
698 return stateblock_mask_clear_bits(&mask->OMRenderTargets, 1, start_idx, count);
700 return stateblock_mask_clear_bits(&mask->OMDepthStencilState, 1, start_idx, count);
702 return stateblock_mask_clear_bits(&mask->OMBlendState, 1, start_idx, count);
703 case D3D10_DST_VS:
704 return stateblock_mask_clear_bits(&mask->VS, 1, start_idx, count);
706 return stateblock_mask_clear_bits(mask->VSSamplers,
709 return stateblock_mask_clear_bits(mask->VSShaderResources,
712 return stateblock_mask_clear_bits(mask->VSConstantBuffers,
714 case D3D10_DST_GS:
715 return stateblock_mask_clear_bits(&mask->GS, 1, start_idx, count);
717 return stateblock_mask_clear_bits(mask->GSSamplers,
720 return stateblock_mask_clear_bits(mask->GSShaderResources,
723 return stateblock_mask_clear_bits(mask->GSConstantBuffers,
725 case D3D10_DST_PS:
726 return stateblock_mask_clear_bits(&mask->PS, 1, start_idx, count);
728 return stateblock_mask_clear_bits(mask->PSSamplers,
731 return stateblock_mask_clear_bits(mask->PSShaderResources,
734 return stateblock_mask_clear_bits(mask->PSConstantBuffers,
737 return stateblock_mask_clear_bits(mask->IAVertexBuffers,
740 return stateblock_mask_clear_bits(&mask->IAIndexBuffer, 1, start_idx, count);
742 return stateblock_mask_clear_bits(&mask->IAInputLayout, 1, start_idx, count);
744 return stateblock_mask_clear_bits(&mask->IAPrimitiveTopology, 1, start_idx, count);
746 return stateblock_mask_clear_bits(&mask->RSViewports, 1, start_idx, count);
748 return stateblock_mask_clear_bits(&mask->RSScissorRects, 1, start_idx, count);
750 return stateblock_mask_clear_bits(&mask->RSRasterizerState, 1, start_idx, count);
752 return stateblock_mask_clear_bits(&mask->Predication, 1, start_idx, count);
753 default:
754 FIXME("Unhandled state_type %#x.\n", state_type);
755 return E_INVALIDARG;
756 }
757}
#define FIXME(fmt,...)
Definition: precomp.h:53
static HRESULT stateblock_mask_clear_bits(BYTE *field, UINT field_size, UINT start_bit, UINT count)
Definition: stateblock.c:618
static const char * debug_d3d10_device_state_types(D3D10_DEVICE_STATE_TYPES t)
Definition: stateblock.c:70
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_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT
Definition: d3d10.idl:75
const unsigned int D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT
Definition: d3d10.idl:147

◆ D3D10StateBlockMaskEnableAll()

HRESULT __stdcall D3D10StateBlockMaskEnableAll ( D3D10_STATE_BLOCK_MASK *  mask)

Definition at line 759 of file stateblock.c.

760{
761 TRACE("mask %p.\n", mask);
762
763 if (!mask)
764 return E_INVALIDARG;
765
766 memset(mask, 0xff, sizeof(*mask));
767
768 return S_OK;
769}

◆ D3D10StateBlockMaskEnableCapture()

HRESULT __stdcall D3D10StateBlockMaskEnableCapture ( D3D10_STATE_BLOCK_MASK *  mask,
D3D10_DEVICE_STATE_TYPES  state_type,
UINT  start_idx,
UINT  count 
)

Definition at line 771 of file stateblock.c.

773{
774 TRACE("mask %p state_type %s, start_idx %u, count %u.\n",
775 mask, debug_d3d10_device_state_types(state_type), start_idx, count);
776
777 if (!mask)
778 return E_INVALIDARG;
779
780 switch (state_type)
781 {
783 return stateblock_mask_set_bits(&mask->SOBuffers, 1, start_idx, count);
785 return stateblock_mask_set_bits(&mask->OMRenderTargets, 1, start_idx, count);
787 return stateblock_mask_set_bits(&mask->OMDepthStencilState, 1, start_idx, count);
789 return stateblock_mask_set_bits(&mask->OMBlendState, 1, start_idx, count);
790 case D3D10_DST_VS:
791 return stateblock_mask_set_bits(&mask->VS, 1, start_idx, count);
793 return stateblock_mask_set_bits(mask->VSSamplers,
796 return stateblock_mask_set_bits(mask->VSShaderResources,
799 return stateblock_mask_set_bits(mask->VSConstantBuffers,
801 case D3D10_DST_GS:
802 return stateblock_mask_set_bits(&mask->GS, 1, start_idx, count);
804 return stateblock_mask_set_bits(mask->GSSamplers,
807 return stateblock_mask_set_bits(mask->GSShaderResources,
810 return stateblock_mask_set_bits(mask->GSConstantBuffers,
812 case D3D10_DST_PS:
813 return stateblock_mask_set_bits(&mask->PS, 1, start_idx, count);
815 return stateblock_mask_set_bits(mask->PSSamplers,
818 return stateblock_mask_set_bits(mask->PSShaderResources,
821 return stateblock_mask_set_bits(mask->PSConstantBuffers,
824 return stateblock_mask_set_bits(mask->IAVertexBuffers,
827 return stateblock_mask_set_bits(&mask->IAIndexBuffer, 1, start_idx, count);
829 return stateblock_mask_set_bits(&mask->IAInputLayout, 1, start_idx, count);
831 return stateblock_mask_set_bits(&mask->IAPrimitiveTopology, 1, start_idx, count);
833 return stateblock_mask_set_bits(&mask->RSViewports, 1, start_idx, count);
835 return stateblock_mask_set_bits(&mask->RSScissorRects, 1, start_idx, count);
837 return stateblock_mask_set_bits(&mask->RSRasterizerState, 1, start_idx, count);
839 return stateblock_mask_set_bits(&mask->Predication, 1, start_idx, count);
840 default:
841 FIXME("Unhandled state_type %#x.\n", state_type);
842 return E_INVALIDARG;
843 }
844}
static HRESULT stateblock_mask_set_bits(BYTE *field, UINT field_size, UINT start_bit, UINT count)
Definition: stateblock.c:587

Referenced by d3d10_effect_pass_ComputeStateBlockMask().

◆ D3D10StateBlockMaskGetSetting()

BOOL __stdcall D3D10StateBlockMaskGetSetting ( D3D10_STATE_BLOCK_MASK *  mask,
D3D10_DEVICE_STATE_TYPES  state_type,
UINT  idx 
)

Definition at line 846 of file stateblock.c.

848{
849 TRACE("mask %p state_type %s, idx %u.\n",
851
852 if (!mask)
853 return FALSE;
854
855 switch (state_type)
856 {
858 return stateblock_mask_get_bit(&mask->SOBuffers, 1, idx);
860 return stateblock_mask_get_bit(&mask->OMRenderTargets, 1, idx);
862 return stateblock_mask_get_bit(&mask->OMDepthStencilState, 1, idx);
864 return stateblock_mask_get_bit(&mask->OMBlendState, 1, idx);
865 case D3D10_DST_VS:
866 return stateblock_mask_get_bit(&mask->VS, 1, idx);
868 return stateblock_mask_get_bit(mask->VSSamplers,
871 return stateblock_mask_get_bit(mask->VSShaderResources,
874 return stateblock_mask_get_bit(mask->VSConstantBuffers,
876 case D3D10_DST_GS:
877 return stateblock_mask_get_bit(&mask->GS, 1, idx);
879 return stateblock_mask_get_bit(mask->GSSamplers,
882 return stateblock_mask_get_bit(mask->GSShaderResources,
885 return stateblock_mask_get_bit(mask->GSConstantBuffers,
887 case D3D10_DST_PS:
888 return stateblock_mask_get_bit(&mask->PS, 1, idx);
890 return stateblock_mask_get_bit(mask->PSSamplers,
893 return stateblock_mask_get_bit(mask->PSShaderResources,
896 return stateblock_mask_get_bit(mask->PSConstantBuffers,
899 return stateblock_mask_get_bit(mask->IAVertexBuffers,
902 return stateblock_mask_get_bit(&mask->IAIndexBuffer, 1, idx);
904 return stateblock_mask_get_bit(&mask->IAInputLayout, 1, idx);
906 return stateblock_mask_get_bit(&mask->IAPrimitiveTopology, 1, idx);
908 return stateblock_mask_get_bit(&mask->RSViewports, 1, idx);
910 return stateblock_mask_get_bit(&mask->RSScissorRects, 1, idx);
912 return stateblock_mask_get_bit(&mask->RSRasterizerState, 1, idx);
914 return stateblock_mask_get_bit(&mask->Predication, 1, idx);
915 default:
916 FIXME("Unhandled state_type %#x.\n", state_type);
917 return FALSE;
918 }
919}
static BOOL stateblock_mask_get_bit(BYTE *field, UINT field_size, UINT idx)
Definition: stateblock.c:579
#define FALSE
Definition: types.h:117
unsigned int idx
Definition: utils.c:40

◆ D3D10StateBlockMaskIntersect()

HRESULT __stdcall D3D10StateBlockMaskIntersect ( D3D10_STATE_BLOCK_MASK *  mask_x,
D3D10_STATE_BLOCK_MASK *  mask_y,
D3D10_STATE_BLOCK_MASK *  result 
)

Definition at line 921 of file stateblock.c.

923{
924 UINT count = sizeof(*result) / sizeof(DWORD);
925 UINT i;
926
927 TRACE("mask_x %p, mask_y %p, result %p.\n", mask_x, mask_y, result);
928
929 if (!mask_x || !mask_y || !result)
930 return E_INVALIDARG;
931
932 for (i = 0; i < count; ++i)
933 {
934 ((DWORD *)result)[i] = ((DWORD *)mask_x)[i] & ((DWORD *)mask_y)[i];
935 }
936 for (i = count * sizeof(DWORD); i < sizeof(*result); ++i)
937 {
938 ((BYTE *)result)[i] = ((BYTE *)mask_x)[i] & ((BYTE *)mask_y)[i];
939 }
940
941 return S_OK;
942}

◆ D3D10StateBlockMaskUnion()

HRESULT __stdcall D3D10StateBlockMaskUnion ( D3D10_STATE_BLOCK_MASK *  mask_x,
D3D10_STATE_BLOCK_MASK *  mask_y,
D3D10_STATE_BLOCK_MASK *  result 
)

Definition at line 944 of file stateblock.c.

946{
947 UINT count = sizeof(*result) / sizeof(DWORD);
948 UINT i;
949
950 TRACE("mask_x %p, mask_y %p, result %p.\n", mask_x, mask_y, result);
951
952 if (!mask_x || !mask_y || !result)
953 return E_INVALIDARG;
954
955 for (i = 0; i < count; ++i)
956 {
957 ((DWORD *)result)[i] = ((DWORD *)mask_x)[i] | ((DWORD *)mask_y)[i];
958 }
959 for (i = count * sizeof(DWORD); i < sizeof(*result); ++i)
960 {
961 ((BYTE *)result)[i] = ((BYTE *)mask_x)[i] | ((BYTE *)mask_y)[i];
962 }
963
964 return S_OK;
965}

Variable Documentation

◆ D3D10_EFFECT_COMPILE_ALLOW_SLOW_OPS

const unsigned int D3D10_EFFECT_COMPILE_ALLOW_SLOW_OPS = 0x0002

Definition at line 174 of file d3d10effect.idl.

◆ D3D10_EFFECT_COMPILE_CHILD_EFFECT

const unsigned int D3D10_EFFECT_COMPILE_CHILD_EFFECT = 0x0001

Definition at line 173 of file d3d10effect.idl.

Referenced by D3D10CreateEffectFromMemory().

◆ D3D10_EFFECT_SINGLE_THREADED

const unsigned int D3D10_EFFECT_SINGLE_THREADED = 0x0008

Definition at line 175 of file d3d10effect.idl.

◆ D3D10_EFFECT_VARIABLE_ANNOTATION

const unsigned int D3D10_EFFECT_VARIABLE_ANNOTATION = 0x2

Definition at line 45 of file d3d10effect.idl.

Referenced by parse_fx10_annotation().

◆ D3D10_EFFECT_VARIABLE_EXPLICIT_BIND_POINT

const unsigned int D3D10_EFFECT_VARIABLE_EXPLICIT_BIND_POINT = 0x4

◆ D3D10_EFFECT_VARIABLE_POOLED

const unsigned int D3D10_EFFECT_VARIABLE_POOLED = 0x1

Definition at line 44 of file d3d10effect.idl.

Referenced by is_var_shared(), parse_fx10_buffer(), and parse_fx10_variable_head().