ReactOS 0.4.17-dev-934-g091855f
d3d11_private.h File Reference
#include "wine/debug.h"
#include <assert.h>
#include "winbase.h"
#include "wingdi.h"
#include "winuser.h"
#include "objbase.h"
#include "dxgi1_6.h"
#include "d3d11_4.h"
#include "wine/wined3d.h"
#include "wine/winedxgi.h"
#include "wine/rbtree.h"
Include dependency graph for d3d11_private.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  d3d_texture1d
 
struct  d3d_texture2d
 
struct  d3d_texture3d
 
struct  d3d_buffer
 
struct  d3d_depthstencil_view
 
struct  d3d_rendertarget_view
 
struct  d3d_shader_resource_view
 
struct  d3d11_unordered_access_view
 
struct  d3d_video_decoder_output_view
 
struct  d3d_input_layout
 
struct  d3d_vertex_shader
 
struct  d3d11_hull_shader
 
struct  d3d11_domain_shader
 
struct  d3d_geometry_shader
 
struct  d3d_pixel_shader
 
struct  d3d11_compute_shader
 
struct  d3d11_class_linkage
 
struct  d3d_blend_state
 
struct  d3d_depthstencil_state
 
struct  d3d_rasterizer_state
 
struct  d3d_sampler_state
 
struct  d3d_query
 
struct  d3d_device_context_state_entry
 
struct  d3d_device_context_state
 
struct  d3d11_device_context
 
struct  d3d_device
 
struct  d3d11_command_list
 
struct  d3d_video_decoder
 
struct  layer_get_size_args
 
struct  dxgi_device_layer
 

Macros

#define COBJMACROS
 

Enumerations

enum  dxgi_device_layer_id {
  DXGI_DEVICE_LAYER_DEBUG1 = 0x8 , DXGI_DEVICE_LAYER_THREAD_SAFE = 0x10 , DXGI_DEVICE_LAYER_DEBUG2 = 0x20 , DXGI_DEVICE_LAYER_SWITCH_TO_REF = 0x30 ,
  DXGI_DEVICE_LAYER_D3D10_DEVICE = 0xffffffff , DXGI_DEVICE_LAYER_DEBUG1 = 0x8 , DXGI_DEVICE_LAYER_THREAD_SAFE = 0x10 , DXGI_DEVICE_LAYER_DEBUG2 = 0x20 ,
  DXGI_DEVICE_LAYER_SWITCH_TO_REF = 0x30 , DXGI_DEVICE_LAYER_D3D10_DEVICE = 0xffffffff
}
 

Functions

const char * debug_d3d10_primitive_topology (D3D10_PRIMITIVE_TOPOLOGY topology)
 
const char * debug_dxgi_format (DXGI_FORMAT format)
 
const char * debug_float4 (const float *values)
 
DXGI_FORMAT dxgi_format_from_wined3dformat (enum wined3d_format_id format)
 
enum wined3d_format_id wined3dformat_from_dxgi_format (DXGI_FORMAT format)
 
void d3d11_primitive_topology_from_wined3d_primitive_type (enum wined3d_primitive_type primitive_type, unsigned int patch_vertex_count, D3D11_PRIMITIVE_TOPOLOGY *topology)
 
void wined3d_primitive_type_from_d3d11_primitive_topology (D3D11_PRIMITIVE_TOPOLOGY topology, enum wined3d_primitive_type *type, unsigned int *patch_vertex_count)
 
unsigned int wined3d_getdata_flags_from_d3d11_async_getdata_flags (unsigned int d3d11_flags)
 
DWORD wined3d_usage_from_d3d11 (enum D3D11_USAGE usage)
 
struct wined3d_resource * wined3d_resource_from_d3d11_resource (ID3D11Resource *resource)
 
struct wined3d_resource * wined3d_resource_from_d3d10_resource (ID3D10Resource *resource)
 
DWORD wined3d_map_flags_from_d3d11_map_type (D3D11_MAP map_type)
 
DWORD wined3d_map_flags_from_d3d10_map_type (D3D10_MAP map_type)
 
DWORD wined3d_clear_flags_from_d3d11_clear_flags (UINT clear_flags)
 
unsigned int wined3d_access_from_d3d11 (D3D11_USAGE usage, UINT cpu_access)
 
HRESULT d3d_device_create_dxgi_resource (IUnknown *device, struct wined3d_resource *wined3d_resource, IUnknown *outer, BOOL needs_surface, IUnknown **dxgi_resource)
 
enum D3D11_USAGE d3d11_usage_from_d3d10_usage (enum D3D10_USAGE usage)
 
enum D3D10_USAGE d3d10_usage_from_d3d11_usage (enum D3D11_USAGE usage)
 
UINT d3d11_bind_flags_from_d3d10_bind_flags (UINT bind_flags)
 
UINT d3d10_bind_flags_from_d3d11_bind_flags (UINT bind_flags)
 
UINT d3d11_cpu_access_flags_from_d3d10_cpu_access_flags (UINT cpu_access_flags)
 
UINT d3d10_cpu_access_flags_from_d3d11_cpu_access_flags (UINT cpu_access_flags)
 
UINT d3d11_resource_misc_flags_from_d3d10_resource_misc_flags (UINT resource_misc_flags)
 
UINT d3d10_resource_misc_flags_from_d3d11_resource_misc_flags (UINT resource_misc_flags)
 
BOOL validate_d3d11_resource_access_flags (D3D11_RESOURCE_DIMENSION resource_dimension, D3D11_USAGE usage, UINT bind_flags, UINT cpu_access_flags, D3D_FEATURE_LEVEL feature_level)
 
HRESULT d3d_get_private_data (struct wined3d_private_store *store, REFGUID guid, UINT *data_size, void *data)
 
HRESULT d3d_set_private_data (struct wined3d_private_store *store, REFGUID guid, UINT data_size, const void *data)
 
HRESULT d3d_set_private_data_interface (struct wined3d_private_store *store, REFGUID guid, const IUnknown *object)
 
static unsigned int wined3d_bind_flags_from_d3d11 (UINT bind_flags, UINT misc_flags)
 
static UINT d3d11_bind_flags_from_wined3d (unsigned int bind_flags)
 
HRESULT d3d_texture1d_create (struct d3d_device *device, const D3D11_TEXTURE1D_DESC *desc, const D3D11_SUBRESOURCE_DATA *data, struct d3d_texture1d **texture)
 
struct d3d_texture1d * unsafe_impl_from_ID3D11Texture1D (ID3D11Texture1D *iface)
 
struct d3d_texture1d * unsafe_impl_from_ID3D10Texture1D (ID3D10Texture1D *iface)
 
static struct d3d_texture2d * impl_from_ID3D11Texture2D (ID3D11Texture2D *iface)
 
HRESULT d3d_texture2d_create (struct d3d_device *device, const D3D11_TEXTURE2D_DESC *desc, struct wined3d_texture *wined3d_texture, const D3D11_SUBRESOURCE_DATA *data, struct d3d_texture2d **out)
 
struct d3d_texture2d * unsafe_impl_from_ID3D11Texture2D (ID3D11Texture2D *iface)
 
struct d3d_texture2d * unsafe_impl_from_ID3D10Texture2D (ID3D10Texture2D *iface)
 
HRESULT d3d_texture3d_create (struct d3d_device *device, const D3D11_TEXTURE3D_DESC *desc, const D3D11_SUBRESOURCE_DATA *data, struct d3d_texture3d **texture)
 
struct d3d_texture3d * unsafe_impl_from_ID3D11Texture3D (ID3D11Texture3D *iface)
 
struct d3d_texture3d * unsafe_impl_from_ID3D10Texture3D (ID3D10Texture3D *iface)
 
HRESULT d3d_buffer_create (struct d3d_device *device, const D3D11_BUFFER_DESC *desc, const D3D11_SUBRESOURCE_DATA *data, struct d3d_buffer **buffer)
 
struct d3d_buffer * unsafe_impl_from_ID3D11Buffer (ID3D11Buffer *iface)
 
struct d3d_buffer * unsafe_impl_from_ID3D10Buffer (ID3D10Buffer *iface)
 
HRESULT d3d_depthstencil_view_create (struct d3d_device *device, ID3D11Resource *resource, const D3D11_DEPTH_STENCIL_VIEW_DESC *desc, struct d3d_depthstencil_view **view)
 
struct d3d_depthstencil_view * unsafe_impl_from_ID3D11DepthStencilView (ID3D11DepthStencilView *iface)
 
struct d3d_depthstencil_view * unsafe_impl_from_ID3D10DepthStencilView (ID3D10DepthStencilView *iface)
 
HRESULT d3d_rendertarget_view_create (struct d3d_device *device, ID3D11Resource *resource, const D3D11_RENDER_TARGET_VIEW_DESC *desc, struct d3d_rendertarget_view **view)
 
struct d3d_rendertarget_view * unsafe_impl_from_ID3D11RenderTargetView (ID3D11RenderTargetView *iface)
 
struct d3d_rendertarget_view * unsafe_impl_from_ID3D10RenderTargetView (ID3D10RenderTargetView *iface)
 
HRESULT d3d_shader_resource_view_create (struct d3d_device *device, ID3D11Resource *resource, const D3D11_SHADER_RESOURCE_VIEW_DESC *desc, struct d3d_shader_resource_view **view)
 
struct d3d_shader_resource_view * unsafe_impl_from_ID3D11ShaderResourceView (ID3D11ShaderResourceView *iface)
 
struct d3d_shader_resource_view * unsafe_impl_from_ID3D10ShaderResourceView (ID3D10ShaderResourceView *iface)
 
HRESULT d3d11_unordered_access_view_create (struct d3d_device *device, ID3D11Resource *resource, const D3D11_UNORDERED_ACCESS_VIEW_DESC *desc, struct d3d11_unordered_access_view **view)
 
struct d3d11_unordered_access_view * unsafe_impl_from_ID3D11UnorderedAccessView (ID3D11UnorderedAccessView *iface)
 
HRESULT d3d_video_decoder_output_view_create (struct d3d_device *device, ID3D11Resource *resource, const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *desc, struct d3d_video_decoder_output_view **view)
 
HRESULT d3d_input_layout_create (struct d3d_device *device, const D3D11_INPUT_ELEMENT_DESC *element_descs, UINT element_count, const void *shader_byte_code, SIZE_T shader_byte_code_length, struct d3d_input_layout **layout)
 
struct d3d_input_layout * unsafe_impl_from_ID3D11InputLayout (ID3D11InputLayout *iface)
 
struct d3d_input_layout * unsafe_impl_from_ID3D10InputLayout (ID3D10InputLayout *iface)
 
HRESULT d3d_vertex_shader_create (struct d3d_device *device, const void *byte_code, SIZE_T byte_code_length, struct d3d_vertex_shader **shader)
 
struct d3d_vertex_shader * unsafe_impl_from_ID3D11VertexShader (ID3D11VertexShader *iface)
 
struct d3d_vertex_shader * unsafe_impl_from_ID3D10VertexShader (ID3D10VertexShader *iface)
 
HRESULT d3d11_hull_shader_create (struct d3d_device *device, const void *byte_code, SIZE_T byte_code_length, struct d3d11_hull_shader **shader)
 
struct d3d11_hull_shader * unsafe_impl_from_ID3D11HullShader (ID3D11HullShader *iface)
 
HRESULT d3d11_domain_shader_create (struct d3d_device *device, const void *byte_code, SIZE_T byte_code_length, struct d3d11_domain_shader **shader)
 
struct d3d11_domain_shader * unsafe_impl_from_ID3D11DomainShader (ID3D11DomainShader *iface)
 
HRESULT d3d_geometry_shader_create (struct d3d_device *device, const void *byte_code, SIZE_T byte_code_length, const D3D11_SO_DECLARATION_ENTRY *so_entries, unsigned int so_entry_count, const unsigned int *buffer_strides, unsigned int buffer_stride_count, unsigned int rasterizer_stream, struct d3d_geometry_shader **shader)
 
struct d3d_geometry_shader * unsafe_impl_from_ID3D11GeometryShader (ID3D11GeometryShader *iface)
 
struct d3d_geometry_shader * unsafe_impl_from_ID3D10GeometryShader (ID3D10GeometryShader *iface)
 
HRESULT d3d_pixel_shader_create (struct d3d_device *device, const void *byte_code, SIZE_T byte_code_length, struct d3d_pixel_shader **shader)
 
struct d3d_pixel_shader * unsafe_impl_from_ID3D11PixelShader (ID3D11PixelShader *iface)
 
struct d3d_pixel_shader * unsafe_impl_from_ID3D10PixelShader (ID3D10PixelShader *iface)
 
HRESULT d3d11_compute_shader_create (struct d3d_device *device, const void *byte_code, SIZE_T byte_code_length, struct d3d11_compute_shader **shader)
 
struct d3d11_compute_shader * unsafe_impl_from_ID3D11ComputeShader (ID3D11ComputeShader *iface)
 
HRESULT d3d11_class_linkage_create (struct d3d_device *device, struct d3d11_class_linkage **class_linkage)
 
static struct d3d_blend_state * impl_from_ID3D11BlendState1 (ID3D11BlendState1 *iface)
 
HRESULT d3d_blend_state_create (struct d3d_device *device, const D3D11_BLEND_DESC1 *desc, struct d3d_blend_state **state)
 
struct d3d_blend_state * unsafe_impl_from_ID3D11BlendState (ID3D11BlendState *iface)
 
struct d3d_blend_state * unsafe_impl_from_ID3D10BlendState (ID3D10BlendState *iface)
 
static struct d3d_depthstencil_state * impl_from_ID3D11DepthStencilState (ID3D11DepthStencilState *iface)
 
HRESULT d3d_depthstencil_state_create (struct d3d_device *device, const D3D11_DEPTH_STENCIL_DESC *desc, struct d3d_depthstencil_state **state)
 
struct d3d_depthstencil_state * unsafe_impl_from_ID3D11DepthStencilState (ID3D11DepthStencilState *iface)
 
struct d3d_depthstencil_state * unsafe_impl_from_ID3D10DepthStencilState (ID3D10DepthStencilState *iface)
 
HRESULT d3d_rasterizer_state_create (struct d3d_device *device, const D3D11_RASTERIZER_DESC1 *desc, struct d3d_rasterizer_state **state)
 
struct d3d_rasterizer_state * unsafe_impl_from_ID3D11RasterizerState (ID3D11RasterizerState *iface)
 
struct d3d_rasterizer_state * unsafe_impl_from_ID3D10RasterizerState (ID3D10RasterizerState *iface)
 
HRESULT d3d_sampler_state_create (struct d3d_device *device, const D3D11_SAMPLER_DESC *desc, struct d3d_sampler_state **state)
 
struct d3d_sampler_state * unsafe_impl_from_ID3D11SamplerState (ID3D11SamplerState *iface)
 
struct d3d_sampler_state * unsafe_impl_from_ID3D10SamplerState (ID3D10SamplerState *iface)
 
HRESULT d3d_query_create (struct d3d_device *device, const D3D11_QUERY_DESC *desc, BOOL predicate, struct d3d_query **query)
 
struct d3d_query * unsafe_impl_from_ID3D11Query (ID3D11Query *iface)
 
struct d3d_query * unsafe_impl_from_ID3D10Query (ID3D10Query *iface)
 
struct d3d_query * unsafe_impl_from_ID3D11Asynchronous (ID3D11Asynchronous *iface)
 
static struct d3d_device * impl_from_ID3D11Device (ID3D11Device *iface)
 
static struct d3d_device * impl_from_ID3D11Device2 (ID3D11Device2 *iface)
 
static struct d3d_device * impl_from_ID3D10Device (ID3D10Device1 *iface)
 
void d3d_device_init (struct d3d_device *device, void *outer_unknown)
 
HRESULT d3d_video_decoder_create (struct d3d_device *device, const D3D11_VIDEO_DECODER_DESC *desc, const D3D11_VIDEO_DECODER_CONFIG *config, struct d3d_video_decoder **decoder)
 
HRESULT WINAPI DXGID3D10CreateDevice (HMODULE d3d10core, IDXGIFactory *factory, IDXGIAdapter *adapter, unsigned int flags, const D3D_FEATURE_LEVEL *feature_levels, unsigned int level_count, void **device)
 
HRESULT WINAPI DXGID3D10RegisterLayers (const struct dxgi_device_layer *layers, UINT layer_count)
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 26 of file d3d11_private.h.

Enumeration Type Documentation

◆ dxgi_device_layer_id

Enumerator
DXGI_DEVICE_LAYER_DEBUG1 
DXGI_DEVICE_LAYER_THREAD_SAFE 
DXGI_DEVICE_LAYER_DEBUG2 
DXGI_DEVICE_LAYER_SWITCH_TO_REF 
DXGI_DEVICE_LAYER_D3D10_DEVICE 
DXGI_DEVICE_LAYER_DEBUG1 
DXGI_DEVICE_LAYER_THREAD_SAFE 
DXGI_DEVICE_LAYER_DEBUG2 
DXGI_DEVICE_LAYER_SWITCH_TO_REF 
DXGI_DEVICE_LAYER_D3D10_DEVICE 

Definition at line 632 of file d3d11_private.h.

633{
639};
@ DXGI_DEVICE_LAYER_THREAD_SAFE
@ DXGI_DEVICE_LAYER_D3D10_DEVICE
@ DXGI_DEVICE_LAYER_DEBUG1
@ DXGI_DEVICE_LAYER_SWITCH_TO_REF
@ DXGI_DEVICE_LAYER_DEBUG2

Function Documentation

◆ d3d10_bind_flags_from_d3d11_bind_flags()

UINT d3d10_bind_flags_from_d3d11_bind_flags ( UINT  bind_flags)

Definition at line 502 of file utils.c.

503{
504 static const UINT handled_flags = D3D11_BIND_VERTEX_BUFFER
505 | D3D11_BIND_INDEX_BUFFER
506 | D3D11_BIND_CONSTANT_BUFFER
507 | D3D11_BIND_SHADER_RESOURCE
508 | D3D11_BIND_STREAM_OUTPUT
509 | D3D11_BIND_RENDER_TARGET
510 | D3D11_BIND_DEPTH_STENCIL
511 | D3D11_BIND_UNORDERED_ACCESS
512 | D3D11_BIND_DECODER
513 | D3D11_BIND_VIDEO_ENCODER;
514 UINT d3d10_bind_flags = bind_flags & handled_flags;
515
516 if (bind_flags & ~handled_flags)
517 FIXME("Unhandled bind flags %#x.\n", bind_flags & ~handled_flags);
518
519 return d3d10_bind_flags;
520}
#define FIXME(fmt,...)
Definition: precomp.h:53
unsigned int UINT
Definition: sysinfo.c:13

Referenced by d3d10_buffer_GetDesc(), d3d10_texture1d_GetDesc(), d3d10_texture2d_GetDesc(), and d3d10_texture3d_GetDesc().

◆ d3d10_cpu_access_flags_from_d3d11_cpu_access_flags()

UINT d3d10_cpu_access_flags_from_d3d11_cpu_access_flags ( UINT  cpu_access_flags)

Definition at line 534 of file utils.c.

535{
536 static const UINT handled_flags = D3D11_CPU_ACCESS_WRITE
537 | D3D11_CPU_ACCESS_READ;
538 UINT d3d10_cpu_access_flags = cpu_access_flags & handled_flags;
539
540 if (cpu_access_flags & ~handled_flags)
541 FIXME("Unhandled cpu access flags %#x.\n", cpu_access_flags & ~handled_flags);
542
543 return d3d10_cpu_access_flags;
544}

Referenced by d3d10_buffer_GetDesc(), d3d10_texture1d_GetDesc(), d3d10_texture2d_GetDesc(), and d3d10_texture3d_GetDesc().

◆ d3d10_resource_misc_flags_from_d3d11_resource_misc_flags()

UINT d3d10_resource_misc_flags_from_d3d11_resource_misc_flags ( UINT  resource_misc_flags)

Definition at line 567 of file utils.c.

568{
569 static const UINT bitwise_identical_flags = D3D11_RESOURCE_MISC_GENERATE_MIPS
572 const UINT handled_flags = bitwise_identical_flags
579 UINT d3d10_resource_misc_flags = resource_misc_flags & bitwise_identical_flags;
580
581 if (resource_misc_flags & D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX)
582 d3d10_resource_misc_flags |= D3D10_RESOURCE_MISC_SHARED_KEYEDMUTEX;
583 if (resource_misc_flags & D3D11_RESOURCE_MISC_GDI_COMPATIBLE)
584 d3d10_resource_misc_flags |= D3D10_RESOURCE_MISC_GDI_COMPATIBLE;
585
586 if (resource_misc_flags & ~handled_flags)
587 FIXME("Unhandled resource misc flags #%x.\n", resource_misc_flags & ~handled_flags);
588
589 return d3d10_resource_misc_flags;
590}
@ D3D10_RESOURCE_MISC_GDI_COMPATIBLE
Definition: d3d10.idl:892
@ D3D10_RESOURCE_MISC_SHARED_KEYEDMUTEX
Definition: d3d10.idl:891
@ D3D11_RESOURCE_MISC_BUFFER_STRUCTURED
Definition: d3d11.idl:1039
@ D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS
Definition: d3d11.idl:1037
@ D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX
Definition: d3d11.idl:1041
@ D3D11_RESOURCE_MISC_GENERATE_MIPS
Definition: d3d11.idl:1034
@ D3D11_RESOURCE_MISC_TEXTURECUBE
Definition: d3d11.idl:1036
@ D3D11_RESOURCE_MISC_SHARED_NTHANDLE
Definition: d3d11.idl:1043
@ D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS
Definition: d3d11.idl:1038
@ D3D11_RESOURCE_MISC_SHARED
Definition: d3d11.idl:1035
@ D3D11_RESOURCE_MISC_GDI_COMPATIBLE
Definition: d3d11.idl:1042

Referenced by d3d10_buffer_GetDesc(), d3d10_texture1d_GetDesc(), d3d10_texture2d_GetDesc(), and d3d10_texture3d_GetDesc().

◆ d3d10_usage_from_d3d11_usage()

enum D3D10_USAGE d3d10_usage_from_d3d11_usage ( enum D3D11_USAGE  usage)

Definition at line 471 of file utils.c.

472{
473 switch (usage)
474 {
475 case D3D11_USAGE_DEFAULT: return D3D10_USAGE_DEFAULT;
476 case D3D11_USAGE_IMMUTABLE: return D3D10_USAGE_IMMUTABLE;
477 case D3D11_USAGE_DYNAMIC: return D3D10_USAGE_DYNAMIC;
478 case D3D11_USAGE_STAGING: return D3D10_USAGE_STAGING;
479 default:
480 FIXME("Unhandled usage %#x.\n", usage);
481 return D3D10_USAGE_DEFAULT;
482 }
483}
@ D3D10_USAGE_DEFAULT
Definition: d3d10.idl:461
@ D3D10_USAGE_STAGING
Definition: d3d10.idl:464
@ D3D10_USAGE_DYNAMIC
Definition: d3d10.idl:463
@ D3D10_USAGE_IMMUTABLE
Definition: d3d10.idl:462
GLsizeiptr const GLvoid GLenum usage
Definition: glext.h:5919

Referenced by d3d10_buffer_GetDesc(), d3d10_texture1d_GetDesc(), d3d10_texture2d_GetDesc(), and d3d10_texture3d_GetDesc().

◆ d3d11_bind_flags_from_d3d10_bind_flags()

UINT d3d11_bind_flags_from_d3d10_bind_flags ( UINT  bind_flags)

Definition at line 485 of file utils.c.

486{
487 static const UINT handled_flags = D3D10_BIND_VERTEX_BUFFER
494 UINT d3d11_bind_flags = bind_flags & handled_flags;
495
496 if (bind_flags & ~handled_flags)
497 FIXME("Unhandled bind flags %#x.\n", bind_flags & ~handled_flags);
498
499 return d3d11_bind_flags;
500}
@ D3D10_BIND_INDEX_BUFFER
Definition: d3d10.idl:469
@ D3D10_BIND_DEPTH_STENCIL
Definition: d3d10.idl:474
@ D3D10_BIND_STREAM_OUTPUT
Definition: d3d10.idl:472
@ D3D10_BIND_SHADER_RESOURCE
Definition: d3d10.idl:471
@ D3D10_BIND_CONSTANT_BUFFER
Definition: d3d10.idl:470
@ D3D10_BIND_VERTEX_BUFFER
Definition: d3d10.idl:468
@ D3D10_BIND_RENDER_TARGET
Definition: d3d10.idl:473

Referenced by d3d10_device_CreateBuffer(), d3d10_device_CreateTexture1D(), d3d10_device_CreateTexture2D(), and d3d10_device_CreateTexture3D().

◆ d3d11_bind_flags_from_wined3d()

static UINT d3d11_bind_flags_from_wined3d ( unsigned int  bind_flags)
inlinestatic

Definition at line 102 of file d3d11_private.h.

103{
104 return bind_flags & (WINED3D_BIND_VERTEX_BUFFER
112}
#define WINED3D_BIND_VERTEX_BUFFER
Definition: wined3d.h:909
#define WINED3D_BIND_UNORDERED_ACCESS
Definition: wined3d.h:916
#define WINED3D_BIND_SHADER_RESOURCE
Definition: wined3d.h:912
#define WINED3D_BIND_DEPTH_STENCIL
Definition: wined3d.h:915
#define WINED3D_BIND_RENDER_TARGET
Definition: wined3d.h:914
#define WINED3D_BIND_CONSTANT_BUFFER
Definition: wined3d.h:911
#define WINED3D_BIND_STREAM_OUTPUT
Definition: wined3d.h:913
#define WINED3D_BIND_INDEX_BUFFER
Definition: wined3d.h:910

Referenced by dxgi_device_parent_register_swapchain_texture().

◆ d3d11_class_linkage_create()

HRESULT d3d11_class_linkage_create ( struct d3d_device *  device,
struct d3d11_class_linkage **  class_linkage 
)

Definition at line 1818 of file shader.c.

1819{
1821
1822 if (!(object = calloc(1, sizeof(*object))))
1823 return E_OUTOFMEMORY;
1824
1825 object->ID3D11ClassLinkage_iface.lpVtbl = &d3d11_class_linkage_vtbl;
1826 object->refcount = 1;
1827 wined3d_private_store_init(&object->private_store);
1828
1829 ID3D11Device2_AddRef(object->device = &device->ID3D11Device2_iface);
1830
1831 TRACE("Created class linkage %p.\n", object);
1832 *class_linkage = object;
1833
1834 return S_OK;
1835}
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
static const struct ID3D11ClassLinkageVtbl d3d11_class_linkage_vtbl
Definition: shader.c:1802
#define S_OK
Definition: intsafe.h:52
#define calloc
Definition: rosglue.h:14
#define TRACE(s)
Definition: solgame.cpp:4
Definition: devices.h:37
static void wined3d_private_store_init(struct wined3d_private_store *store)
Definition: wined3d.h:2607

Referenced by d3d11_device_CreateClassLinkage().

◆ d3d11_compute_shader_create()

HRESULT d3d11_compute_shader_create ( struct d3d_device *  device,
const void *  byte_code,
SIZE_T  byte_code_length,
struct d3d11_compute_shader **  shader 
)

Definition at line 1655 of file shader.c.

1657{
1659 HRESULT hr;
1660
1661 if (!(object = calloc(1, sizeof(*object))))
1662 return E_OUTOFMEMORY;
1663
1664 if (FAILED(hr = d3d11_compute_shader_init(object, device, byte_code, byte_code_length)))
1665 {
1666 free(object);
1667 return hr;
1668 }
1669
1670 TRACE("Created compute shader %p.\n", object);
1671 *shader = object;
1672
1673 return S_OK;
1674}
#define free
Definition: debug_ros.c:5
HRESULT hr
Definition: delayimp.cpp:582
static HRESULT d3d11_compute_shader_init(struct d3d11_compute_shader *shader, struct d3d_device *device, const void *byte_code, SIZE_T byte_code_length)
Definition: shader.c:1627
GLuint shader
Definition: glext.h:6030
#define FAILED(hr)
Definition: intsafe.h:51

Referenced by d3d11_device_CreateComputeShader().

◆ d3d11_cpu_access_flags_from_d3d10_cpu_access_flags()

UINT d3d11_cpu_access_flags_from_d3d10_cpu_access_flags ( UINT  cpu_access_flags)

Definition at line 522 of file utils.c.

523{
524 static const UINT handled_flags = D3D10_CPU_ACCESS_WRITE
526 UINT d3d11_cpu_access_flags = cpu_access_flags & handled_flags;
527
528 if (cpu_access_flags & ~handled_flags)
529 FIXME("Unhandled cpu access flags %#x.\n", cpu_access_flags & ~handled_flags);
530
531 return d3d11_cpu_access_flags;
532}
@ D3D10_CPU_ACCESS_WRITE
Definition: d3d10.idl:883
@ D3D10_CPU_ACCESS_READ
Definition: d3d10.idl:884

Referenced by d3d10_device_CreateBuffer(), d3d10_device_CreateTexture1D(), d3d10_device_CreateTexture2D(), and d3d10_device_CreateTexture3D().

◆ d3d11_domain_shader_create()

HRESULT d3d11_domain_shader_create ( struct d3d_device *  device,
const void *  byte_code,
SIZE_T  byte_code_length,
struct d3d11_domain_shader **  shader 
)

Definition at line 671 of file shader.c.

673{
675 HRESULT hr;
676
677 if (!(object = calloc(1, sizeof(*object))))
678 return E_OUTOFMEMORY;
679
680 if (FAILED(hr = d3d11_domain_shader_init(object, device, byte_code, byte_code_length)))
681 {
682 free(object);
683 return hr;
684 }
685
686 TRACE("Created domain shader %p.\n", object);
687 *shader = object;
688
689 return S_OK;
690}
static HRESULT d3d11_domain_shader_init(struct d3d11_domain_shader *shader, struct d3d_device *device, const void *byte_code, SIZE_T byte_code_length)
Definition: shader.c:643

Referenced by d3d11_device_CreateDomainShader().

◆ d3d11_hull_shader_create()

HRESULT d3d11_hull_shader_create ( struct d3d_device *  device,
const void *  byte_code,
SIZE_T  byte_code_length,
struct d3d11_hull_shader **  shader 
)

Definition at line 484 of file shader.c.

486{
488 HRESULT hr;
489
490 if (!(object = calloc(1, sizeof(*object))))
491 return E_OUTOFMEMORY;
492
493 if (FAILED(hr = d3d11_hull_shader_init(object, device, byte_code, byte_code_length)))
494 {
495 free(object);
496 return hr;
497 }
498
499 TRACE("Created hull shader %p.\n", object);
500 *shader = object;
501
502 return S_OK;
503}
static HRESULT d3d11_hull_shader_init(struct d3d11_hull_shader *shader, struct d3d_device *device, const void *byte_code, SIZE_T byte_code_length)
Definition: shader.c:456

Referenced by d3d11_device_CreateHullShader().

◆ d3d11_primitive_topology_from_wined3d_primitive_type()

void d3d11_primitive_topology_from_wined3d_primitive_type ( enum wined3d_primitive_type  primitive_type,
unsigned int  patch_vertex_count,
D3D11_PRIMITIVE_TOPOLOGY *  topology 
)

Definition at line 169 of file utils.c.

171{
172 if (primitive_type <= WINED3D_PT_TRIANGLESTRIP_ADJ)
173 {
174 *topology = (D3D11_PRIMITIVE_TOPOLOGY)primitive_type;
175 return;
176 }
177
178 if (primitive_type == WINED3D_PT_PATCH)
179 {
180 *topology = D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST + patch_vertex_count - 1;
181 return;
182 }
183
185}
D3D_PRIMITIVE_TOPOLOGY D3D11_PRIMITIVE_TOPOLOGY
Definition: d3d11.idl:26
@ D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST
Definition: d3dcommon.idl:447
@ D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED
Definition: d3dcommon.idl:437
@ WINED3D_PT_PATCH
Definition: wined3d.h:86
@ WINED3D_PT_TRIANGLESTRIP_ADJ
Definition: wined3d.h:85

Referenced by d3d11_device_context_IAGetPrimitiveTopology().

◆ d3d11_resource_misc_flags_from_d3d10_resource_misc_flags()

UINT d3d11_resource_misc_flags_from_d3d10_resource_misc_flags ( UINT  resource_misc_flags)

Definition at line 546 of file utils.c.

547{
548 static const UINT bitwise_identical_flags = D3D10_RESOURCE_MISC_GENERATE_MIPS
551 const UINT handled_flags = bitwise_identical_flags
554 UINT d3d11_resource_misc_flags = resource_misc_flags & bitwise_identical_flags;
555
556 if (resource_misc_flags & D3D10_RESOURCE_MISC_SHARED_KEYEDMUTEX)
557 d3d11_resource_misc_flags |= D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX;
558 if (resource_misc_flags & D3D10_RESOURCE_MISC_GDI_COMPATIBLE)
559 d3d11_resource_misc_flags |= D3D11_RESOURCE_MISC_GDI_COMPATIBLE;
560
561 if (resource_misc_flags & ~handled_flags)
562 FIXME("Unhandled resource misc flags %#x.\n", resource_misc_flags & ~handled_flags);
563
564 return d3d11_resource_misc_flags;
565}
@ D3D10_RESOURCE_MISC_GENERATE_MIPS
Definition: d3d10.idl:888
@ D3D10_RESOURCE_MISC_TEXTURECUBE
Definition: d3d10.idl:890
@ D3D10_RESOURCE_MISC_SHARED
Definition: d3d10.idl:889

Referenced by d3d10_device_CreateBuffer(), d3d10_device_CreateTexture1D(), d3d10_device_CreateTexture2D(), and d3d10_device_CreateTexture3D().

◆ d3d11_unordered_access_view_create()

HRESULT d3d11_unordered_access_view_create ( struct d3d_device *  device,
ID3D11Resource *  resource,
const D3D11_UNORDERED_ACCESS_VIEW_DESC *  desc,
struct d3d11_unordered_access_view **  view 
)

Definition at line 2553 of file view.c.

2555{
2557 HRESULT hr;
2558
2559 if (!(object = calloc(1, sizeof(*object))))
2560 return E_OUTOFMEMORY;
2561
2563 {
2564 WARN("Failed to initialise unordered access view, hr %#lx.\n", hr);
2565 free(object);
2566 return hr;
2567 }
2568
2569 TRACE("Created unordered access view %p.\n", object);
2570 *view = object;
2571
2572 return S_OK;
2573}
#define WARN(fmt,...)
Definition: precomp.h:61
static HRESULT d3d11_unordered_access_view_init(struct d3d11_unordered_access_view *view, struct d3d_device *device, ID3D11Resource *resource, const D3D11_UNORDERED_ACCESS_VIEW_DESC *desc)
Definition: view.c:2504
D3D11_SHADER_VARIABLE_DESC desc
Definition: reflection.c:1683

Referenced by d3d11_device_CreateUnorderedAccessView().

◆ d3d11_usage_from_d3d10_usage()

enum D3D11_USAGE d3d11_usage_from_d3d10_usage ( enum D3D10_USAGE  usage)

Definition at line 457 of file utils.c.

458{
459 switch (usage)
460 {
461 case D3D10_USAGE_DEFAULT: return D3D11_USAGE_DEFAULT;
462 case D3D10_USAGE_IMMUTABLE: return D3D11_USAGE_IMMUTABLE;
463 case D3D10_USAGE_DYNAMIC: return D3D11_USAGE_DYNAMIC;
464 case D3D10_USAGE_STAGING: return D3D11_USAGE_STAGING;
465 default:
466 FIXME("Unhandled usage %#x.\n", usage);
467 return D3D11_USAGE_DEFAULT;
468 }
469}

Referenced by d3d10_device_CreateBuffer(), d3d10_device_CreateTexture1D(), d3d10_device_CreateTexture2D(), and d3d10_device_CreateTexture3D().

◆ d3d_blend_state_create()

HRESULT d3d_blend_state_create ( struct d3d_device *  device,
const D3D11_BLEND_DESC1 *  desc,
struct d3d_blend_state **  state 
)

Definition at line 346 of file state.c.

348{
349 struct wined3d_blend_state_desc wined3d_desc;
350 struct d3d_blend_state *object;
351 struct wine_rb_entry *entry;
352 D3D11_BLEND_DESC1 tmp_desc;
353 unsigned int i, j;
354 HRESULT hr;
355
356 if (!desc)
357 return E_INVALIDARG;
358
359 /* D3D11_RENDER_TARGET_BLEND_DESC1 has a hole, which is a problem because we use
360 * D3D11_BLEND_DESC1 as a key in the rbtree. */
361 memset(&tmp_desc, 0, sizeof(tmp_desc));
362 tmp_desc.AlphaToCoverageEnable = desc->AlphaToCoverageEnable;
363 tmp_desc.IndependentBlendEnable = desc->IndependentBlendEnable;
365 {
366 j = desc->IndependentBlendEnable ? i : 0;
367 tmp_desc.RenderTarget[i].BlendEnable = desc->RenderTarget[j].BlendEnable;
368 if (tmp_desc.RenderTarget[i].BlendEnable)
369 {
370 tmp_desc.RenderTarget[i].SrcBlend = desc->RenderTarget[j].SrcBlend;
371 tmp_desc.RenderTarget[i].DestBlend = desc->RenderTarget[j].DestBlend;
372 tmp_desc.RenderTarget[i].BlendOp = desc->RenderTarget[j].BlendOp;
373 tmp_desc.RenderTarget[i].SrcBlendAlpha = desc->RenderTarget[j].SrcBlendAlpha;
374 tmp_desc.RenderTarget[i].DestBlendAlpha = desc->RenderTarget[j].DestBlendAlpha;
375 tmp_desc.RenderTarget[i].BlendOpAlpha = desc->RenderTarget[j].BlendOpAlpha;
376 }
377 else
378 {
385 }
386
387 tmp_desc.RenderTarget[i].LogicOpEnable = desc->RenderTarget[j].LogicOpEnable;
388 if (tmp_desc.RenderTarget[i].LogicOpEnable)
389 tmp_desc.RenderTarget[i].LogicOp = desc->RenderTarget[j].LogicOp;
390 else
392
393 tmp_desc.RenderTarget[i].RenderTargetWriteMask = desc->RenderTarget[j].RenderTargetWriteMask;
394 }
395
397 if ((entry = wine_rb_get(&device->blend_states, &tmp_desc)))
398 {
400
401 TRACE("Returning existing blend state %p.\n", object);
402 ID3D11BlendState1_AddRef(&object->ID3D11BlendState1_iface);
403 *state = object;
405
406 return S_OK;
407 }
408
409 if (!(object = calloc(1, sizeof(*object))))
410 {
412 return E_OUTOFMEMORY;
413 }
414
415 object->ID3D11BlendState1_iface.lpVtbl = &d3d11_blend_state_vtbl;
416 object->ID3D10BlendState1_iface.lpVtbl = &d3d10_blend_state_vtbl;
417 object->refcount = 1;
418 wined3d_private_store_init(&object->private_store);
419 object->desc = tmp_desc;
420
421 if (wine_rb_put(&device->blend_states, &tmp_desc, &object->entry) == -1)
422 {
423 ERR("Failed to insert blend state entry.\n");
424 wined3d_private_store_cleanup(&object->private_store);
425 free(object);
427 return E_FAIL;
428 }
429
430 wined3d_desc.alpha_to_coverage = desc->AlphaToCoverageEnable;
431 wined3d_desc.independent = desc->IndependentBlendEnable;
433 {
434 wined3d_desc.rt[i].enable = desc->RenderTarget[i].BlendEnable;
435 wined3d_desc.rt[i].src = wined3d_blend_from_d3d11(desc->RenderTarget[i].SrcBlend);
436 wined3d_desc.rt[i].dst = wined3d_blend_from_d3d11(desc->RenderTarget[i].DestBlend);
437 wined3d_desc.rt[i].op = wined3d_blend_op_from_d3d11(desc->RenderTarget[i].BlendOp);
438 wined3d_desc.rt[i].src_alpha = wined3d_blend_from_d3d11(desc->RenderTarget[i].SrcBlendAlpha);
439 wined3d_desc.rt[i].dst_alpha = wined3d_blend_from_d3d11(desc->RenderTarget[i].DestBlendAlpha);
440 wined3d_desc.rt[i].op_alpha = wined3d_blend_op_from_d3d11(desc->RenderTarget[i].BlendOpAlpha);
441 wined3d_desc.rt[i].writemask = desc->RenderTarget[i].RenderTargetWriteMask;
442 }
443
444 if (desc->RenderTarget[0].LogicOpEnable && desc->RenderTarget[0].LogicOp != D3D11_LOGIC_OP_NOOP)
445 FIXME("Ignoring logic op %#x.\n", desc->RenderTarget[0].LogicOp);
446
447 /* We cannot fail after creating a wined3d_blend_state object. It
448 * would lead to double free. */
449 if (FAILED(hr = wined3d_blend_state_create(device->wined3d_device, &wined3d_desc,
450 object, &d3d_blend_state_wined3d_parent_ops, &object->wined3d_state)))
451 {
452 WARN("Failed to create wined3d blend state, hr %#lx.\n", hr);
453 wined3d_private_store_cleanup(&object->private_store);
454 wine_rb_remove(&device->blend_states, &object->entry);
455 free(object);
457 return hr;
458 }
460
461 ID3D11Device2_AddRef(object->device = &device->ID3D11Device2_iface);
462
463 TRACE("Created blend state %p.\n", object);
464 *state = object;
465
466 return S_OK;
467}
static int state
Definition: maze.c:121
#define ERR(fmt,...)
Definition: precomp.h:57
@ D3D11_BLEND_ONE
Definition: d3d11.idl:301
@ D3D11_BLEND_ZERO
Definition: d3d11.idl:300
const unsigned int D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT
Definition: d3d11.idl:172
@ D3D11_BLEND_OP_ADD
Definition: d3d11.idl:321
@ D3D11_LOGIC_OP_NOOP
Definition: d3d11_1.idl:31
#define E_INVALIDARG
Definition: ddrawi.h:101
#define E_FAIL
Definition: ddrawi.h:102
static const struct ID3D11BlendState1Vtbl d3d11_blend_state_vtbl
Definition: state.c:164
static enum wined3d_blend_op wined3d_blend_op_from_d3d11(D3D11_BLEND_OP op)
Definition: state.c:341
static enum wined3d_blend wined3d_blend_from_d3d11(D3D11_BLEND factor)
Definition: state.c:336
static const struct wined3d_parent_ops d3d_blend_state_wined3d_parent_ops
Definition: state.c:331
static const struct ID3D10BlendState1Vtbl d3d10_blend_state_vtbl
Definition: state.c:304
HRESULT CDECL wined3d_blend_state_create(struct wined3d_device *device, const struct wined3d_blend_state_desc *desc, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_blend_state **state)
Definition: device.c:313
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
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 GLint GLint j
Definition: glfuncs.h:250
uint32_t entry
Definition: isohybrid.c:63
#define wine_rb_entry
Definition: rbtree.h:404
#define WINE_RB_ENTRY_VALUE
Definition: rbtree.h:414
#define wine_rb_put
Definition: rbtree.h:410
#define wine_rb_get
Definition: rbtree.h:409
#define wine_rb_remove
Definition: rbtree.h:411
#define memset(x, y, z)
Definition: compat.h:39
BOOL AlphaToCoverageEnable
Definition: d3d11_1.idl:96
BOOL IndependentBlendEnable
Definition: d3d11_1.idl:97
D3D11_RENDER_TARGET_BLEND_DESC1 RenderTarget[D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT]
Definition: d3d11_1.idl:98
static void wined3d_private_store_cleanup(struct wined3d_private_store *store)
Definition: wined3d.h:2636
void WINAPI wined3d_mutex_unlock(void)
Definition: wined3d_main.c:544
void WINAPI wined3d_mutex_lock(void)
Definition: wined3d_main.c:539

Referenced by d3d11_device_CreateBlendState1().

◆ d3d_buffer_create()

HRESULT d3d_buffer_create ( struct d3d_device *  device,
const D3D11_BUFFER_DESC *  desc,
const D3D11_SUBRESOURCE_DATA *  data,
struct d3d_buffer **  buffer 
)

Definition at line 504 of file buffer.c.

506{
507 struct d3d_buffer *object;
508 HRESULT hr;
509
510 if (!(object = calloc(1, sizeof(*object))))
511 return E_OUTOFMEMORY;
512
513 if (FAILED(hr = d3d_buffer_init(object, device, desc, data)))
514 {
515 WARN("Failed to initialise buffer, hr %#lx.\n", hr);
516 free(object);
517 return hr;
518 }
519
520 TRACE("Created buffer %p.\n", object);
521 *buffer = object;
522
523 return S_OK;
524}
static HRESULT d3d_buffer_init(struct d3d_buffer *buffer, struct d3d_device *device, const D3D11_BUFFER_DESC *desc, const D3D11_SUBRESOURCE_DATA *data)
Definition: buffer.c:455
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLuint buffer
Definition: glext.h:5915

Referenced by d3d10_device_CreateBuffer(), and d3d11_device_CreateBuffer().

◆ d3d_depthstencil_state_create()

HRESULT d3d_depthstencil_state_create ( struct d3d_device *  device,
const D3D11_DEPTH_STENCIL_DESC *  desc,
struct d3d_depthstencil_state **  state 
)

Definition at line 751 of file state.c.

753{
754 struct wined3d_depth_stencil_state_desc wined3d_desc;
756 D3D11_DEPTH_STENCIL_DESC tmp_desc;
757 struct wine_rb_entry *entry;
758 HRESULT hr;
759
760 if (!desc)
761 return E_INVALIDARG;
762
763 /* D3D11_DEPTH_STENCIL_DESC has a hole, which is a problem because we use
764 * it as a key in the rbtree. */
765 memset(&tmp_desc, 0, sizeof(tmp_desc));
766 tmp_desc.DepthEnable = desc->DepthEnable;
767 if (desc->DepthEnable)
768 {
769 tmp_desc.DepthWriteMask = desc->DepthWriteMask;
770 tmp_desc.DepthFunc = desc->DepthFunc;
771 }
772 else
773 {
774 tmp_desc.DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ALL;
775 tmp_desc.DepthFunc = D3D11_COMPARISON_LESS;
776 }
777 tmp_desc.StencilEnable = desc->StencilEnable;
778 if (desc->StencilEnable)
779 {
780 tmp_desc.StencilReadMask = desc->StencilReadMask;
781 tmp_desc.StencilWriteMask = desc->StencilWriteMask;
782 tmp_desc.FrontFace = desc->FrontFace;
783 tmp_desc.BackFace = desc->BackFace;
784 }
785 else
786 {
787 tmp_desc.StencilReadMask = D3D11_DEFAULT_STENCIL_READ_MASK;
788 tmp_desc.StencilWriteMask = D3D11_DEFAULT_STENCIL_WRITE_MASK;
789 tmp_desc.FrontFace.StencilFailOp = D3D11_STENCIL_OP_KEEP;
790 tmp_desc.FrontFace.StencilDepthFailOp = D3D11_STENCIL_OP_KEEP;
791 tmp_desc.FrontFace.StencilPassOp = D3D11_STENCIL_OP_KEEP;
792 tmp_desc.FrontFace.StencilFunc = D3D11_COMPARISON_ALWAYS;
793 tmp_desc.BackFace.StencilFailOp = D3D11_STENCIL_OP_KEEP;
794 tmp_desc.BackFace.StencilDepthFailOp = D3D11_STENCIL_OP_KEEP;
795 tmp_desc.BackFace.StencilPassOp = D3D11_STENCIL_OP_KEEP;
796 tmp_desc.BackFace.StencilFunc = D3D11_COMPARISON_ALWAYS;
797 }
798
800 if ((entry = wine_rb_get(&device->depthstencil_states, &tmp_desc)))
801 {
803
804 TRACE("Returning existing depthstencil state %p.\n", object);
805 ID3D11DepthStencilState_AddRef(&object->ID3D11DepthStencilState_iface);
806 *state = object;
808
809 return S_OK;
810 }
811
812 if (!(object = calloc(1, sizeof(*object))))
813 {
815 return E_OUTOFMEMORY;
816 }
817
818 object->ID3D11DepthStencilState_iface.lpVtbl = &d3d11_depthstencil_state_vtbl;
819 object->ID3D10DepthStencilState_iface.lpVtbl = &d3d10_depthstencil_state_vtbl;
820 object->refcount = 1;
821 wined3d_private_store_init(&object->private_store);
822 object->desc = tmp_desc;
823
824 if (wine_rb_put(&device->depthstencil_states, &tmp_desc, &object->entry) == -1)
825 {
826 ERR("Failed to insert depth/stencil state entry.\n");
827 wined3d_private_store_cleanup(&object->private_store);
828 free(object);
830 return E_FAIL;
831 }
832
833 wined3d_desc.depth = desc->DepthEnable;
834 wined3d_desc.depth_write = desc->DepthWriteMask;
835 wined3d_desc.depth_func = wined3d_cmp_func_from_d3d11(desc->DepthFunc);
836 wined3d_desc.stencil = desc->StencilEnable;
837 wined3d_desc.stencil_read_mask = desc->StencilReadMask;
838 wined3d_desc.stencil_write_mask = desc->StencilWriteMask;
839 wined3d_desc.front.fail_op = wined3d_stencil_op_from_d3d11(desc->FrontFace.StencilFailOp);
840 wined3d_desc.front.depth_fail_op = wined3d_stencil_op_from_d3d11(desc->FrontFace.StencilDepthFailOp);
841 wined3d_desc.front.pass_op = wined3d_stencil_op_from_d3d11(desc->FrontFace.StencilPassOp);
842 wined3d_desc.front.func = wined3d_cmp_func_from_d3d11(desc->FrontFace.StencilFunc);
843 wined3d_desc.back.fail_op = wined3d_stencil_op_from_d3d11(desc->BackFace.StencilFailOp);
844 wined3d_desc.back.depth_fail_op = wined3d_stencil_op_from_d3d11(desc->BackFace.StencilDepthFailOp);
845 wined3d_desc.back.pass_op = wined3d_stencil_op_from_d3d11(desc->BackFace.StencilPassOp);
846 wined3d_desc.back.func = wined3d_cmp_func_from_d3d11(desc->BackFace.StencilFunc);
847
848 /* We cannot fail after creating a wined3d_depth_stencil_state object. It
849 * would lead to double free. */
850 if (FAILED(hr = wined3d_depth_stencil_state_create(device->wined3d_device, &wined3d_desc,
851 object, &d3d_depthstencil_state_wined3d_parent_ops, &object->wined3d_state)))
852 {
853 WARN("Failed to create wined3d depth/stencil state, hr %#lx.\n", hr);
854 wined3d_private_store_cleanup(&object->private_store);
855 wine_rb_remove(&device->depthstencil_states, &object->entry);
856 free(object);
858 return hr;
859 }
861
862 ID3D11Device2_AddRef(object->device = &device->ID3D11Device2_iface);
863
864 TRACE("Created depth/stencil state %p.\n", object);
865 *state = object;
866
867 return S_OK;
868}
const UINT D3D11_DEFAULT_STENCIL_READ_MASK
Definition: d3d11.idl:146
@ D3D11_COMPARISON_ALWAYS
Definition: d3d11.idl:594
@ D3D11_COMPARISON_LESS
Definition: d3d11.idl:588
@ D3D11_DEPTH_WRITE_MASK_ALL
Definition: d3d11.idl:633
const UINT D3D11_DEFAULT_STENCIL_WRITE_MASK
Definition: d3d11.idl:148
static const struct ID3D10DepthStencilStateVtbl d3d10_depthstencil_state_vtbl
Definition: state.c:711
static const struct wined3d_parent_ops d3d_depthstencil_state_wined3d_parent_ops
Definition: state.c:736
static const struct ID3D11DepthStencilStateVtbl d3d11_depthstencil_state_vtbl
Definition: state.c:604
static enum wined3d_stencil_op wined3d_stencil_op_from_d3d11(D3D11_STENCIL_OP stencil_op)
Definition: state.c:746
static enum wined3d_cmp_func wined3d_cmp_func_from_d3d11(D3D11_COMPARISON_FUNC func)
Definition: state.c:741
HRESULT CDECL wined3d_depth_stencil_state_create(struct wined3d_device *device, const struct wined3d_depth_stencil_state_desc *desc, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_depth_stencil_state **state)
Definition: device.c:404

Referenced by d3d10_device_CreateDepthStencilState(), and d3d11_device_CreateDepthStencilState().

◆ d3d_depthstencil_view_create()

HRESULT d3d_depthstencil_view_create ( struct d3d_device *  device,
ID3D11Resource *  resource,
const D3D11_DEPTH_STENCIL_VIEW_DESC *  desc,
struct d3d_depthstencil_view **  view 
)

Definition at line 1315 of file view.c.

1317{
1319 HRESULT hr;
1320
1321 if (!(object = calloc(1, sizeof(*object))))
1322 return E_OUTOFMEMORY;
1323
1325 {
1326 WARN("Failed to initialise depth/stencil view, hr %#lx.\n", hr);
1327 free(object);
1328 return hr;
1329 }
1330
1331 TRACE("Created depthstencil view %p.\n", object);
1332 *view = object;
1333
1334 return S_OK;
1335}
static HRESULT d3d_depthstencil_view_init(struct d3d_depthstencil_view *view, struct d3d_device *device, ID3D11Resource *resource, const D3D11_DEPTH_STENCIL_VIEW_DESC *desc)
Definition: view.c:1267

Referenced by d3d10_device_CreateDepthStencilView(), and d3d11_device_CreateDepthStencilView().

◆ d3d_device_create_dxgi_resource()

HRESULT d3d_device_create_dxgi_resource ( IUnknown *  device,
struct wined3d_resource *  wined3d_resource,
IUnknown *  outer,
BOOL  needs_surface,
IUnknown **  dxgi_resource 
)

Definition at line 416 of file texture.c.

418{
419 IWineDXGIDevice *wine_device;
420 HRESULT hr;
421
422 if (FAILED(hr = IUnknown_QueryInterface(device, &IID_IWineDXGIDevice, (void **)&wine_device)))
423 {
424 ERR("Device should implement IWineDXGIDevice.\n");
425 return E_FAIL;
426 }
427
428 hr = IWineDXGIDevice_create_resource(wine_device, wined3d_resource, 0, NULL, outer,
429 needs_surface, (void **)dxgi_resource);
430 IWineDXGIDevice_Release(wine_device);
431 if (FAILED(hr))
432 {
433 ERR("Failed to create DXGI resource, returning %#.lx\n", hr);
435 }
436
437 return hr;
438}
#define NULL
Definition: types.h:112
static IUnknown * outer
Definition: compobj.c:82

Referenced by d3d_buffer_init(), d3d_texture1d_create(), d3d_texture2d_create(), and d3d_texture3d_init().

◆ d3d_device_init()

void d3d_device_init ( struct d3d_device *  device,
void *  outer_unknown 
)

Definition at line 7756 of file device.c.

7757{
7758 device->IUnknown_inner.lpVtbl = &d3d_device_inner_unknown_vtbl;
7759 device->ID3D11Device2_iface.lpVtbl = &d3d11_device_vtbl;
7760 device->ID3D10Device1_iface.lpVtbl = &d3d10_device1_vtbl;
7761 device->ID3D10Multithread_iface.lpVtbl = &d3d10_multithread_vtbl;
7762 device->ID3D11VideoDevice1_iface.lpVtbl = &d3d11_video_device1_vtbl;
7763 device->IWineDXGIDeviceParent_iface.lpVtbl = &d3d_dxgi_device_parent_vtbl;
7764 device->device_parent.ops = &d3d_wined3d_device_parent_ops;
7765 device->refcount = 1;
7766 /* COM aggregation always takes place */
7767 device->outer_unk = outer_unknown;
7768 device->d3d11_only = FALSE;
7769 device->state = NULL;
7770
7772 ID3D11DeviceContext1_Release(&device->immediate_context.ID3D11DeviceContext1_iface);
7773
7775 wine_rb_init(&device->depthstencil_states, d3d_depthstencil_state_compare);
7776 wine_rb_init(&device->rasterizer_states, d3d_rasterizer_state_compare);
7778}
@ D3D11_DEVICE_CONTEXT_IMMEDIATE
Definition: d3d11.idl:644
#define FALSE
Definition: types.h:117
static int d3d_blend_state_compare(const void *key, const struct wine_rb_entry *entry)
Definition: device.c:7731
static const struct IWineDXGIDeviceParentVtbl d3d_dxgi_device_parent_vtbl
Definition: device.c:7642
static const struct IUnknownVtbl d3d_device_inner_unknown_vtbl
Definition: device.c:7245
static int d3d_depthstencil_state_compare(const void *key, const struct wine_rb_entry *entry)
Definition: device.c:7739
static int d3d_sampler_state_compare(const void *key, const struct wine_rb_entry *entry)
Definition: device.c:7723
static const struct ID3D11VideoDevice1Vtbl d3d11_video_device1_vtbl
Definition: device.c:7541
static const struct wined3d_device_parent_ops d3d_wined3d_device_parent_ops
Definition: device.c:7715
static int d3d_rasterizer_state_compare(const void *key, const struct wine_rb_entry *entry)
Definition: device.c:7748
static void d3d11_device_context_init(struct d3d11_device_context *context, struct d3d_device *device, D3D11_DEVICE_CONTEXT_TYPE type)
Definition: device.c:3802
static const struct ID3D11Device2Vtbl d3d11_device_vtbl
Definition: device.c:5055
static const struct ID3D10Device1Vtbl d3d10_device1_vtbl
Definition: device.c:7138
static const struct ID3D10MultithreadVtbl d3d10_multithread_vtbl
Definition: device.c:7315
#define wine_rb_init
Definition: rbtree.h:406

Referenced by d3d_device_create(), and layer_create().

◆ d3d_geometry_shader_create()

HRESULT d3d_geometry_shader_create ( struct d3d_device *  device,
const void *  byte_code,
SIZE_T  byte_code_length,
const D3D11_SO_DECLARATION_ENTRY *  so_entries,
unsigned int  so_entry_count,
const unsigned int *  buffer_strides,
unsigned int  buffer_stride_count,
unsigned int  rasterizer_stream,
struct d3d_geometry_shader **  shader 
)

Definition at line 1156 of file shader.c.

1160{
1162 HRESULT hr;
1163
1164 if (!(object = calloc(1, sizeof(*object))))
1165 return E_OUTOFMEMORY;
1166
1167 if (FAILED(hr = d3d_geometry_shader_init(object, device, byte_code, byte_code_length,
1168 so_entries, so_entry_count, buffer_strides, buffer_stride_count, rasterizer_stream)))
1169 {
1170 WARN("Failed to initialise geometry shader, hr %#lx.\n", hr);
1171 free(object);
1172 return hr;
1173 }
1174
1175 TRACE("Created geometry shader %p.\n", object);
1176 *shader = object;
1177
1178 return S_OK;
1179}
static HRESULT d3d_geometry_shader_init(struct d3d_geometry_shader *shader, struct d3d_device *device, const void *byte_code, SIZE_T byte_code_length, const D3D11_SO_DECLARATION_ENTRY *so_entries, unsigned int so_entry_count, const unsigned int *buffer_strides, unsigned int buffer_stride_count, unsigned int rasterizer_stream)
Definition: shader.c:1074

Referenced by d3d10_device_CreateGeometryShader(), d3d10_device_CreateGeometryShaderWithStreamOutput(), d3d11_device_CreateGeometryShader(), and d3d11_device_CreateGeometryShaderWithStreamOutput().

◆ d3d_get_private_data()

HRESULT d3d_get_private_data ( struct wined3d_private_store *  store,
REFGUID  guid,
UINT *  data_size,
void *  data 
)

Definition at line 803 of file utils.c.

805{
806 const struct wined3d_private_data *stored_data;
807 DWORD size_in;
808
809 if (!data_size)
810 return E_INVALIDARG;
811
813 if (!(stored_data = wined3d_private_store_get_private_data(store, guid)))
814 {
815 *data_size = 0;
818 }
819
820 size_in = *data_size;
821 *data_size = stored_data->size;
822 if (!data)
823 {
825 return S_OK;
826 }
827 if (size_in < stored_data->size)
828 {
831 }
832
833 if (stored_data->flags & WINED3DSPD_IUNKNOWN)
834 IUnknown_AddRef(stored_data->content.object);
835 memcpy(data, stored_data->content.data, stored_data->size);
836
838 return S_OK;
839}
GUID guid
Definition: version.c:147
unsigned long DWORD
Definition: ntddk_ex.h:95
GLsizeiptr size
Definition: glext.h:5919
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
union wined3d_private_data::@4825 content
IUnknown * object
Definition: wined3d.h:2285
static struct wined3d_private_data * wined3d_private_store_get_private_data(const struct wined3d_private_store *store, const GUID *tag)
Definition: wined3d.h:2612
#define WINED3DSPD_IUNKNOWN
Definition: wined3d.h:1018
#define DXGI_ERROR_NOT_FOUND
Definition: winerror.h:7122
#define DXGI_ERROR_MORE_DATA
Definition: winerror.h:7123

Referenced by d3d10_blend_state_GetPrivateData(), d3d10_depthstencil_state_GetPrivateData(), d3d10_depthstencil_view_GetPrivateData(), d3d10_geometry_shader_GetPrivateData(), d3d10_input_layout_GetPrivateData(), d3d10_pixel_shader_GetPrivateData(), d3d10_query_GetPrivateData(), d3d10_rasterizer_state_GetPrivateData(), d3d10_rendertarget_view_GetPrivateData(), d3d10_sampler_state_GetPrivateData(), d3d10_shader_resource_view_GetPrivateData(), d3d10_vertex_shader_GetPrivateData(), d3d11_blend_state_GetPrivateData(), d3d11_class_linkage_GetPrivateData(), d3d11_command_list_GetPrivateData(), d3d11_compute_shader_GetPrivateData(), d3d11_depthstencil_state_GetPrivateData(), d3d11_depthstencil_view_GetPrivateData(), d3d11_device_context_GetPrivateData(), d3d11_domain_shader_GetPrivateData(), d3d11_geometry_shader_GetPrivateData(), d3d11_hull_shader_GetPrivateData(), d3d11_input_layout_GetPrivateData(), d3d11_pixel_shader_GetPrivateData(), d3d11_query_GetPrivateData(), d3d11_rasterizer_state_GetPrivateData(), d3d11_rendertarget_view_GetPrivateData(), d3d11_sampler_state_GetPrivateData(), d3d11_shader_resource_view_GetPrivateData(), d3d11_unordered_access_view_GetPrivateData(), d3d11_vertex_shader_GetPrivateData(), d3d11_video_decoder_GetPrivateData(), d3d11_video_decoder_output_view_GetPrivateData(), and d3d_device_context_state_GetPrivateData().

◆ d3d_input_layout_create()

HRESULT d3d_input_layout_create ( struct d3d_device *  device,
const D3D11_INPUT_ELEMENT_DESC *  element_descs,
UINT  element_count,
const void *  shader_byte_code,
SIZE_T  shader_byte_code_length,
struct d3d_input_layout **  layout 
)

Definition at line 385 of file inputlayout.c.

389{
390 struct d3d_input_layout *object;
391 HRESULT hr;
392
393 if (!element_descs) return E_INVALIDARG;
394
395 if (!(object = calloc(1, sizeof(*object))))
396 return E_OUTOFMEMORY;
397
398 if (FAILED(hr = d3d_input_layout_init(object, device, element_descs, element_count,
399 shader_byte_code, shader_byte_code_length)))
400 {
401 WARN("Failed to initialise input layout, hr %#lx.\n", hr);
402 free(object);
403 return hr;
404 }
405
406 TRACE("Created input layout %p.\n", object);
407 *layout = object;
408
409 return S_OK;
410}
static HRESULT d3d_input_layout_init(struct d3d_input_layout *layout, struct d3d_device *device, const D3D11_INPUT_ELEMENT_DESC *element_descs, UINT element_count, const void *shader_byte_code, SIZE_T shader_byte_code_length)
Definition: inputlayout.c:346
static ULONG ** element_count
Definition: exception.c:124

Referenced by d3d10_device_CreateInputLayout(), and d3d11_device_CreateInputLayout().

◆ d3d_pixel_shader_create()

HRESULT d3d_pixel_shader_create ( struct d3d_device *  device,
const void *  byte_code,
SIZE_T  byte_code_length,
struct d3d_pixel_shader **  shader 
)

Definition at line 1460 of file shader.c.

1462{
1463 struct d3d_pixel_shader *object;
1464 HRESULT hr;
1465
1466 if (!(object = calloc(1, sizeof(*object))))
1467 return E_OUTOFMEMORY;
1468
1469 if (FAILED(hr = d3d_pixel_shader_init(object, device, byte_code, byte_code_length)))
1470 {
1471 WARN("Failed to initialise pixel shader, hr %#lx.\n", hr);
1472 free(object);
1473 return hr;
1474 }
1475
1476 TRACE("Created pixel shader %p.\n", object);
1477 *shader = object;
1478
1479 return S_OK;
1480}
static HRESULT d3d_pixel_shader_init(struct d3d_pixel_shader *shader, struct d3d_device *device, const void *byte_code, SIZE_T byte_code_length)
Definition: shader.c:1431

Referenced by d3d10_device_CreatePixelShader(), and d3d11_device_CreatePixelShader().

◆ d3d_query_create()

HRESULT d3d_query_create ( struct d3d_device *  device,
const D3D11_QUERY_DESC *  desc,
BOOL  predicate,
struct d3d_query **  query 
)

Definition at line 465 of file async.c.

467{
468 struct d3d_query *object;
469 BOOL is_predicate_type;
470 HRESULT hr;
471
472 if (!desc)
473 return E_INVALIDARG;
474
475 is_predicate_type = desc->Query == D3D11_QUERY_OCCLUSION_PREDICATE
481
482 if (!is_predicate_type && predicate)
483 {
484 WARN("Query type %u is not a predicate.\n", desc->Query);
485 return E_INVALIDARG;
486 }
487
488 if (is_predicate_type)
489 predicate = TRUE;
490
491 if (!(object = calloc(1, sizeof(*object))))
492 return E_OUTOFMEMORY;
493
494 if (FAILED(hr = d3d_query_init(object, device, desc, predicate)))
495 {
496 WARN("Failed to initialise predicate, hr %#lx.\n", hr);
497 free(object);
498 return hr;
499 }
500
501 TRACE("Created query %p.\n", object);
502 *query = object;
503
504 return S_OK;
505}
@ D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM3
Definition: d3d11.idl:1019
@ D3D11_QUERY_SO_OVERFLOW_PREDICATE
Definition: d3d11.idl:1011
@ D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0
Definition: d3d11.idl:1013
@ D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1
Definition: d3d11.idl:1015
@ D3D11_QUERY_OCCLUSION_PREDICATE
Definition: d3d11.idl:1009
@ D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2
Definition: d3d11.idl:1017
static HRESULT d3d_query_init(struct d3d_query *query, struct d3d_device *device, const D3D11_QUERY_DESC *desc, BOOL predicate)
Definition: async.c:406
#define TRUE
Definition: types.h:120
unsigned int BOOL
Definition: ntddk_ex.h:94
BOOL predicate

Referenced by d3d10_device_CreatePredicate(), d3d10_device_CreateQuery(), d3d11_device_CreatePredicate(), and d3d11_device_CreateQuery().

◆ d3d_rasterizer_state_create()

HRESULT d3d_rasterizer_state_create ( struct d3d_device *  device,
const D3D11_RASTERIZER_DESC1 *  desc,
struct d3d_rasterizer_state **  state 
)

Definition at line 1228 of file state.c.

1230{
1232 struct wine_rb_entry *entry;
1233 HRESULT hr;
1234
1236 if ((entry = wine_rb_get(&device->rasterizer_states, desc)))
1237 {
1239
1240 TRACE("Returning existing rasterizer state %p.\n", object);
1241 ID3D11RasterizerState1_AddRef(&object->ID3D11RasterizerState1_iface);
1242 *state = object;
1244
1245 return S_OK;
1246 }
1247
1248 if (!(object = calloc(1, sizeof(*object))))
1249 {
1251 return E_OUTOFMEMORY;
1252 }
1253
1256 if (FAILED(hr))
1257 {
1258 WARN("Failed to initialise rasterizer state, hr %#lx.\n", hr);
1259 free(object);
1260 return hr;
1261 }
1262
1263 TRACE("Created rasterizer state %p.\n", object);
1264 *state = object;
1265
1266 return S_OK;
1267}
static HRESULT d3d_rasterizer_state_init(struct d3d_rasterizer_state *state, struct d3d_device *device, const D3D11_RASTERIZER_DESC1 *desc)
Definition: state.c:1169

Referenced by d3d10_device_CreateRasterizerState(), d3d11_device_CreateRasterizerState(), and d3d11_device_CreateRasterizerState1().

◆ d3d_rendertarget_view_create()

HRESULT d3d_rendertarget_view_create ( struct d3d_device *  device,
ID3D11Resource *  resource,
const D3D11_RENDER_TARGET_VIEW_DESC *  desc,
struct d3d_rendertarget_view **  view 
)

Definition at line 1756 of file view.c.

1758{
1760 HRESULT hr;
1761
1762 if (!(object = calloc(1, sizeof(*object))))
1763 return E_OUTOFMEMORY;
1764
1766 {
1767 WARN("Failed to initialise rendertarget view, hr %#lx.\n", hr);
1768 free(object);
1769 return hr;
1770 }
1771
1772 TRACE("Created rendertarget view %p.\n", object);
1773 *view = object;
1774
1775 return S_OK;
1776}
static HRESULT d3d_rendertarget_view_init(struct d3d_rendertarget_view *view, struct d3d_device *device, ID3D11Resource *resource, const D3D11_RENDER_TARGET_VIEW_DESC *desc)
Definition: view.c:1708

Referenced by d3d10_device_CreateRenderTargetView(), and d3d11_device_CreateRenderTargetView().

◆ d3d_sampler_state_create()

HRESULT d3d_sampler_state_create ( struct d3d_device *  device,
const D3D11_SAMPLER_DESC *  desc,
struct d3d_sampler_state **  state 
)

Definition at line 1627 of file state.c.

1629{
1630 D3D11_SAMPLER_DESC normalized_desc;
1631 struct d3d_sampler_state *object;
1632 struct wine_rb_entry *entry;
1633 HRESULT hr;
1634
1635 if (!desc)
1636 return E_INVALIDARG;
1637
1638 normalized_desc = *desc;
1639 if (!D3D11_DECODE_IS_ANISOTROPIC_FILTER(normalized_desc.Filter))
1640 normalized_desc.MaxAnisotropy = 0;
1641 if (!D3D11_DECODE_IS_COMPARISON_FILTER(normalized_desc.Filter))
1642 normalized_desc.ComparisonFunc = D3D11_COMPARISON_NEVER;
1643 if (normalized_desc.AddressU != D3D11_TEXTURE_ADDRESS_BORDER
1644 && normalized_desc.AddressV != D3D11_TEXTURE_ADDRESS_BORDER
1645 && normalized_desc.AddressW != D3D11_TEXTURE_ADDRESS_BORDER)
1646 memset(&normalized_desc.BorderColor, 0, sizeof(normalized_desc.BorderColor));
1647
1649 if ((entry = wine_rb_get(&device->sampler_states, &normalized_desc)))
1650 {
1652
1653 TRACE("Returning existing sampler state %p.\n", object);
1654 ID3D11SamplerState_AddRef(&object->ID3D11SamplerState_iface);
1655 *state = object;
1657
1658 return S_OK;
1659 }
1660
1661 if (!(object = calloc(1, sizeof(*object))))
1662 {
1664 return E_OUTOFMEMORY;
1665 }
1666
1667 hr = d3d_sampler_state_init(object, device, &normalized_desc);
1669 if (FAILED(hr))
1670 {
1671 WARN("Failed to initialise sampler state, hr %#lx.\n", hr);
1672 free(object);
1673 return hr;
1674 }
1675
1676 TRACE("Created sampler state %p.\n", object);
1677 *state = object;
1678
1679 return S_OK;
1680}
@ D3D11_COMPARISON_NEVER
Definition: d3d11.idl:587
static HRESULT d3d_sampler_state_init(struct d3d_sampler_state *state, struct d3d_device *device, const D3D11_SAMPLER_DESC *desc)
Definition: state.c:1576

Referenced by d3d10_device_CreateSamplerState(), and d3d11_device_CreateSamplerState().

◆ d3d_set_private_data()

HRESULT d3d_set_private_data ( struct wined3d_private_store *  store,
REFGUID  guid,
UINT  data_size,
const void *  data 
)

Definition at line 841 of file utils.c.

843{
845 HRESULT hr;
846
848 if (!data)
849 {
851 {
853 return S_FALSE;
854 }
857
858 return S_OK;
859 }
860
861 hr = wined3d_private_store_set_private_data(store, guid, data, data_size, 0);
863
864 return hr;
865}
static void wined3d_private_store_free_private_data(struct wined3d_private_store *store, struct wined3d_private_data *entry)
Definition: wined3d.h:2627
static HRESULT wined3d_private_store_set_private_data(struct wined3d_private_store *store, const GUID *guid, const void *data, DWORD data_size, uint32_t flags)
Definition: wined3d.h:2648
#define S_FALSE
Definition: winerror.h:3451

Referenced by d3d10_blend_state_SetPrivateData(), d3d10_depthstencil_state_SetPrivateData(), d3d10_depthstencil_view_SetPrivateData(), d3d10_geometry_shader_SetPrivateData(), d3d10_input_layout_SetPrivateData(), d3d10_pixel_shader_SetPrivateData(), d3d10_query_SetPrivateData(), d3d10_rasterizer_state_SetPrivateData(), d3d10_rendertarget_view_SetPrivateData(), d3d10_sampler_state_SetPrivateData(), d3d10_shader_resource_view_SetPrivateData(), d3d10_vertex_shader_SetPrivateData(), d3d11_blend_state_SetPrivateData(), d3d11_class_linkage_SetPrivateData(), d3d11_command_list_SetPrivateData(), d3d11_compute_shader_SetPrivateData(), d3d11_depthstencil_state_SetPrivateData(), d3d11_depthstencil_view_SetPrivateData(), d3d11_device_context_SetPrivateData(), d3d11_domain_shader_SetPrivateData(), d3d11_geometry_shader_SetPrivateData(), d3d11_hull_shader_SetPrivateData(), d3d11_input_layout_SetPrivateData(), d3d11_pixel_shader_SetPrivateData(), d3d11_query_SetPrivateData(), d3d11_rasterizer_state_SetPrivateData(), d3d11_rendertarget_view_SetPrivateData(), d3d11_sampler_state_SetPrivateData(), d3d11_shader_resource_view_SetPrivateData(), d3d11_unordered_access_view_SetPrivateData(), d3d11_vertex_shader_SetPrivateData(), d3d11_video_decoder_output_view_SetPrivateData(), d3d11_video_decoder_SetPrivateData(), d3d_device_context_state_SetPrivateData(), and d3d_set_private_data_interface().

◆ d3d_set_private_data_interface()

HRESULT d3d_set_private_data_interface ( struct wined3d_private_store *  store,
REFGUID  guid,
const IUnknown *  object 
)

Definition at line 867 of file utils.c.

869{
870 HRESULT hr;
871
872 if (!object)
873 return d3d_set_private_data(store, guid, sizeof(object), &object);
874
877 guid, object, sizeof(object), WINED3DSPD_IUNKNOWN);
879
880 return hr;
881}
HRESULT d3d_set_private_data(struct wined3d_private_store *store, REFGUID guid, UINT data_size, const void *data)
Definition: utils.c:841

Referenced by d3d10_blend_state_SetPrivateDataInterface(), d3d10_depthstencil_state_SetPrivateDataInterface(), d3d10_depthstencil_view_SetPrivateDataInterface(), d3d10_geometry_shader_SetPrivateDataInterface(), d3d10_input_layout_SetPrivateDataInterface(), d3d10_pixel_shader_SetPrivateDataInterface(), d3d10_query_SetPrivateDataInterface(), d3d10_rasterizer_state_SetPrivateDataInterface(), d3d10_rendertarget_view_SetPrivateDataInterface(), d3d10_sampler_state_SetPrivateDataInterface(), d3d10_shader_resource_view_SetPrivateDataInterface(), d3d10_vertex_shader_SetPrivateDataInterface(), d3d11_blend_state_SetPrivateDataInterface(), d3d11_class_linkage_SetPrivateDataInterface(), d3d11_command_list_SetPrivateDataInterface(), d3d11_compute_shader_SetPrivateDataInterface(), d3d11_depthstencil_state_SetPrivateDataInterface(), d3d11_depthstencil_view_SetPrivateDataInterface(), d3d11_device_context_SetPrivateDataInterface(), d3d11_domain_shader_SetPrivateDataInterface(), d3d11_geometry_shader_SetPrivateDataInterface(), d3d11_hull_shader_SetPrivateDataInterface(), d3d11_input_layout_SetPrivateDataInterface(), d3d11_pixel_shader_SetPrivateDataInterface(), d3d11_query_SetPrivateDataInterface(), d3d11_rasterizer_state_SetPrivateDataInterface(), d3d11_rendertarget_view_SetPrivateDataInterface(), d3d11_sampler_state_SetPrivateDataInterface(), d3d11_shader_resource_view_SetPrivateDataInterface(), d3d11_unordered_access_view_SetPrivateDataInterface(), d3d11_vertex_shader_SetPrivateDataInterface(), d3d11_video_decoder_output_view_SetPrivateDataInterface(), d3d11_video_decoder_SetPrivateDataInterface(), and d3d_device_context_state_SetPrivateDataInterface().

◆ d3d_shader_resource_view_create()

HRESULT d3d_shader_resource_view_create ( struct d3d_device *  device,
ID3D11Resource *  resource,
const D3D11_SHADER_RESOURCE_VIEW_DESC *  desc,
struct d3d_shader_resource_view **  view 
)

Definition at line 2250 of file view.c.

2252{
2254 HRESULT hr;
2255
2256 if (!(object = calloc(1, sizeof(*object))))
2257 return E_OUTOFMEMORY;
2258
2260 {
2261 WARN("Failed to initialise shader resource view, hr %#lx.\n", hr);
2262 free(object);
2263 return hr;
2264 }
2265
2266 TRACE("Created shader resource view %p.\n", object);
2267 *view = object;
2268
2269 return S_OK;
2270}
static HRESULT d3d_shader_resource_view_init(struct d3d_shader_resource_view *view, struct d3d_device *device, ID3D11Resource *resource, const D3D11_SHADER_RESOURCE_VIEW_DESC *desc)
Definition: view.c:2200

Referenced by d3d10_device_CreateShaderResourceView1(), and d3d11_device_CreateShaderResourceView().

◆ d3d_texture1d_create()

HRESULT d3d_texture1d_create ( struct d3d_device *  device,
const D3D11_TEXTURE1D_DESC *  desc,
const D3D11_SUBRESOURCE_DATA *  data,
struct d3d_texture1d **  texture 
)

Definition at line 440 of file texture.c.

442{
443 struct wined3d_resource_desc wined3d_desc;
444 struct d3d_texture1d *texture;
445 unsigned int levels;
446 BOOL needs_surface;
447 DWORD flags = 0;
448 HRESULT hr;
449
450 if (!(texture = calloc(1, sizeof(*texture))))
451 return E_OUTOFMEMORY;
452
453 texture->ID3D11Texture1D_iface.lpVtbl = &d3d11_texture1d_vtbl;
454 texture->ID3D10Texture1D_iface.lpVtbl = &d3d10_texture1d_vtbl;
455 texture->refcount = 1;
456 texture->desc = *desc;
457 levels = desc->MipLevels ? desc->MipLevels : wined3d_log2i(desc->Width) + 1;
458 texture->desc.MipLevels = levels;
459
460 wined3d_desc.resource_type = WINED3D_RTYPE_TEXTURE_1D;
461 wined3d_desc.format = wined3dformat_from_dxgi_format(desc->Format);
462 wined3d_desc.multisample_type = WINED3D_MULTISAMPLE_NONE;
463 wined3d_desc.multisample_quality = 0;
464 wined3d_desc.usage = wined3d_usage_from_d3d11(desc->Usage);
465 wined3d_desc.bind_flags = wined3d_bind_flags_from_d3d11(desc->BindFlags, desc->MiscFlags);
466 wined3d_desc.access = wined3d_access_from_d3d11(desc->Usage,
467 desc->Usage == D3D11_USAGE_DEFAULT ? 0 : desc->CPUAccessFlags);
468 wined3d_desc.width = desc->Width;
469 wined3d_desc.height = 1;
470 wined3d_desc.depth = 1;
471 wined3d_desc.size = 0;
472
477
479 if (FAILED(hr = wined3d_texture_create(device->wined3d_device, &wined3d_desc,
480 desc->ArraySize, levels, flags, (struct wined3d_sub_resource_data *)data,
481 texture, &d3d_texture1d_wined3d_parent_ops, &texture->wined3d_texture)))
482 {
483 WARN("Failed to create wined3d texture, hr %#lx.\n", hr);
484 free(texture);
488 return hr;
489 }
490
491 needs_surface = desc->MipLevels == 1 && desc->ArraySize == 1;
492 hr = d3d_device_create_dxgi_resource((IUnknown *)&device->ID3D10Device1_iface,
493 wined3d_texture_get_resource(texture->wined3d_texture), (IUnknown *)&texture->ID3D10Texture1D_iface,
494 needs_surface, &texture->dxgi_resource);
495 if (FAILED(hr))
496 {
497 ERR("Failed to create DXGI resource, returning %#.lx\n", hr);
498 wined3d_texture_decref(texture->wined3d_texture);
500 return hr;
501 }
503
504 ID3D11Device2_AddRef(texture->device = &device->ID3D11Device2_iface);
505
506 TRACE("Created texture %p.\n", texture);
507 *out = texture;
508
509 return S_OK;
510}
enum wined3d_format_id wined3dformat_from_dxgi_format(DXGI_FORMAT format)
Definition: utils.c:323
static unsigned int wined3d_bind_flags_from_d3d11(UINT bind_flags, UINT misc_flags)
Definition: d3d11_private.h:85
DWORD wined3d_usage_from_d3d11(enum D3D11_USAGE usage)
Definition: utils.c:447
unsigned int wined3d_access_from_d3d11(D3D11_USAGE usage, UINT cpu_access)
Definition: utils.c:788
static const struct ID3D10Texture1DVtbl d3d10_texture1d_vtbl
Definition: texture.c:382
static const struct wined3d_parent_ops d3d_texture1d_wined3d_parent_ops
Definition: texture.c:411
static const struct ID3D11Texture1DVtbl d3d11_texture1d_vtbl
Definition: texture.c:197
HRESULT d3d_device_create_dxgi_resource(IUnknown *device, struct wined3d_resource *wined3d_resource, IUnknown *outer, BOOL needs_surface, IUnknown **dxgi_resource)
Definition: texture.c:416
HRESULT CDECL wined3d_texture_create(struct wined3d_device *device, const struct wined3d_resource_desc *desc, UINT layer_count, UINT level_count, uint32_t flags, const struct wined3d_sub_resource_data *data, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_texture **texture)
Definition: texture.c:4158
struct wined3d_resource *CDECL wined3d_texture_get_resource(struct wined3d_texture *texture)
Definition: texture.c:1649
ULONG CDECL wined3d_texture_decref(struct wined3d_texture *texture)
Definition: texture.c:1606
GLenum GLuint texture
Definition: glext.h:6295
GLbitfield flags
Definition: glext.h:7161
GLsizei levels
Definition: glext.h:7884
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
Definition: wcsftime.cpp:383
static unsigned int wined3d_log2i(unsigned int x)
Definition: wined3d.h:2952
@ WINED3D_MULTISAMPLE_NONE
Definition: wined3d.h:573
@ WINED3D_RTYPE_TEXTURE_1D
Definition: wined3d.h:719
#define WINED3DERR_NOTAVAILABLE
Definition: wined3d.h:42
#define WINED3DERR_INVALIDCALL
Definition: wined3d.h:44
#define WINED3D_TEXTURE_CREATE_GET_DC
Definition: wined3d.h:1565
#define WINED3D_TEXTURE_CREATE_GENERATE_MIPMAPS
Definition: wined3d.h:1566

Referenced by d3d10_device_CreateTexture1D(), and d3d11_device_CreateTexture1D().

◆ d3d_texture2d_create()

HRESULT d3d_texture2d_create ( struct d3d_device *  device,
const D3D11_TEXTURE2D_DESC *  desc,
struct wined3d_texture *  wined3d_texture,
const D3D11_SUBRESOURCE_DATA *  data,
struct d3d_texture2d **  out 
)

Definition at line 964 of file texture.c.

966{
967 struct d3d_texture2d *texture;
968 BOOL needs_surface;
969 DWORD flags = 0;
970 HRESULT hr;
971
972 if (!validate_texture2d_desc(desc, device->state->feature_level))
973 {
974 WARN("Failed to validate texture desc.\n");
975 return E_INVALIDARG;
976 }
977
978 if (!(texture = calloc(1, sizeof(*texture))))
979 return E_OUTOFMEMORY;
980
981 texture->ID3D11Texture2D_iface.lpVtbl = &d3d11_texture2d_vtbl;
982 texture->ID3D10Texture2D_iface.lpVtbl = &d3d10_texture2d_vtbl;
983 texture->refcount = 1;
985 texture->desc = *desc;
986
987 if (wined3d_texture)
988 {
992 texture->wined3d_texture = wined3d_texture;
993
996 }
997 else
998 {
999 struct wined3d_resource_desc wined3d_desc;
1000 unsigned int levels;
1001
1002 wined3d_desc.resource_type = WINED3D_RTYPE_TEXTURE_2D;
1003 wined3d_desc.format = wined3dformat_from_dxgi_format(desc->Format);
1004 wined3d_desc.multisample_type = desc->SampleDesc.Count > 1 ? desc->SampleDesc.Count : WINED3D_MULTISAMPLE_NONE;
1005 wined3d_desc.multisample_quality = desc->SampleDesc.Quality;
1006 wined3d_desc.usage = wined3d_usage_from_d3d11(desc->Usage);
1007 wined3d_desc.bind_flags = wined3d_bind_flags_from_d3d11(desc->BindFlags, desc->MiscFlags);
1008 wined3d_desc.access = wined3d_access_from_d3d11(desc->Usage,
1009 desc->Usage == D3D11_USAGE_DEFAULT ? 0 : desc->CPUAccessFlags);
1010 wined3d_desc.width = desc->Width;
1011 wined3d_desc.height = desc->Height;
1012 wined3d_desc.depth = 1;
1013 wined3d_desc.size = 0;
1014
1015 levels = desc->MipLevels ? desc->MipLevels : wined3d_log2i(max(desc->Width, desc->Height)) + 1;
1016
1019 if (desc->MiscFlags & D3D11_RESOURCE_MISC_GENERATE_MIPS)
1021
1022 if (FAILED(hr = wined3d_texture_create(device->wined3d_device, &wined3d_desc,
1023 desc->ArraySize, levels, flags, (struct wined3d_sub_resource_data *)data,
1024 texture, &d3d_texture2d_wined3d_parent_ops, &texture->wined3d_texture)))
1025 {
1026 WARN("Failed to create wined3d texture, hr %#lx.\n", hr);
1027 free(texture);
1030 hr = E_INVALIDARG;
1031 return hr;
1032 }
1033 texture->desc.MipLevels = levels;
1034 }
1035
1036 needs_surface = desc->MipLevels == 1 && desc->ArraySize == 1;
1037 hr = d3d_device_create_dxgi_resource((IUnknown *)&device->ID3D10Device1_iface,
1038 wined3d_texture_get_resource(texture->wined3d_texture), (IUnknown *)&texture->ID3D10Texture2D_iface,
1039 needs_surface, &texture->dxgi_resource);
1040 if (FAILED(hr))
1041 {
1042 ERR("Failed to create DXGI resource, returning %#.lx\n", hr);
1043 wined3d_texture_decref(texture->wined3d_texture);
1045 return hr;
1046 }
1048
1049 ID3D11Device2_AddRef(texture->device = &device->ID3D11Device2_iface);
1050
1051 TRACE("Created texture %p.\n", texture);
1052 *out = texture;
1053
1054 return S_OK;
1055}
static const struct wined3d_parent_ops d3d_texture2d_wined3d_parent_ops
Definition: texture.c:915
static BOOL validate_texture2d_desc(const D3D11_TEXTURE2D_DESC *desc, D3D_FEATURE_LEVEL feature_level)
Definition: texture.c:933
static const struct ID3D10Texture2DVtbl d3d10_texture2d_vtbl
Definition: texture.c:886
static const struct ID3D11Texture2DVtbl d3d11_texture2d_vtbl
Definition: texture.c:699
void CDECL wined3d_resource_set_parent(struct wined3d_resource *resource, void *parent, const struct wined3d_parent_ops *parent_ops)
Definition: resource.c:274
struct wined3d_swapchain *CDECL wined3d_texture_get_swapchain(struct wined3d_texture *texture)
Definition: texture.c:4028
ULONG CDECL wined3d_texture_incref(struct wined3d_texture *texture)
Definition: texture.c:1516
struct wined3d_texture * wined3d_texture
#define max(a, b)
Definition: svc.c:63
ULONG CDECL wined3d_swapchain_incref(struct wined3d_swapchain *swapchain)
Definition: swapchain.c:135
@ WINED3D_RTYPE_TEXTURE_2D
Definition: wined3d.h:720

Referenced by d3d10_device_CreateTexture2D(), d3d11_device_CreateTexture2D(), and dxgi_device_parent_register_swapchain_texture().

◆ d3d_texture3d_create()

HRESULT d3d_texture3d_create ( struct d3d_device *  device,
const D3D11_TEXTURE3D_DESC *  desc,
const D3D11_SUBRESOURCE_DATA *  data,
struct d3d_texture3d **  texture 
)

Definition at line 1514 of file texture.c.

1516{
1517 struct d3d_texture3d *object;
1518 HRESULT hr;
1519
1520 if (!(object = calloc(1, sizeof(*object))))
1521 return E_OUTOFMEMORY;
1522
1523 if (FAILED(hr = d3d_texture3d_init(object, device, desc, data)))
1524 {
1525 WARN("Failed to initialise texture, hr %#lx.\n", hr);
1526 free(object);
1527 return hr;
1528 }
1529
1530 TRACE("Created texture %p.\n", object);
1531 *texture = object;
1532
1533 return S_OK;
1534}
static HRESULT d3d_texture3d_init(struct d3d_texture3d *texture, struct d3d_device *device, const D3D11_TEXTURE3D_DESC *desc, const D3D11_SUBRESOURCE_DATA *data)
Definition: texture.c:1445

Referenced by d3d10_device_CreateTexture3D(), and d3d11_device_CreateTexture3D().

◆ d3d_vertex_shader_create()

HRESULT d3d_vertex_shader_create ( struct d3d_device *  device,
const void *  byte_code,
SIZE_T  byte_code_length,
struct d3d_vertex_shader **  shader 
)

Definition at line 287 of file shader.c.

289{
291 HRESULT hr;
292
293 if (!(object = calloc(1, sizeof(*object))))
294 return E_OUTOFMEMORY;
295
296 if (FAILED(hr = d3d_vertex_shader_init(object, device, byte_code, byte_code_length)))
297 {
298 WARN("Failed to initialise vertex shader, hr %#lx.\n", hr);
299 free(object);
300 return hr;
301 }
302
303 TRACE("Created vertex shader %p.\n", object);
304 *shader = object;
305
306 return S_OK;
307}
static HRESULT d3d_vertex_shader_init(struct d3d_vertex_shader *shader, struct d3d_device *device, const void *byte_code, SIZE_T byte_code_length)
Definition: shader.c:258

Referenced by d3d10_device_CreateVertexShader(), and d3d11_device_CreateVertexShader().

◆ d3d_video_decoder_create()

HRESULT d3d_video_decoder_create ( struct d3d_device *  device,
const D3D11_VIDEO_DECODER_DESC *  desc,
const D3D11_VIDEO_DECODER_CONFIG *  config,
struct d3d_video_decoder **  decoder 
)

Definition at line 142 of file decoder.c.

144{
146
147 if (!(object = calloc(1, sizeof(*object))))
148 return E_OUTOFMEMORY;
149
150 object->ID3D11VideoDecoder_iface.lpVtbl = &d3d11_video_decoder_vtbl;
151 object->refcount = 1;
152
153 wined3d_private_store_init(&object->private_store);
154 object->device = device;
155 ID3D11Device2_AddRef(&device->ID3D11Device2_iface);
156
157 TRACE("Created video decoder %p.\n", object);
158 *decoder = object;
159 return S_OK;
160}
static const struct ID3D11VideoDecoderVtbl d3d11_video_decoder_vtbl
Definition: decoder.c:129
struct d3d_device * device

Referenced by d3d11_video_device_CreateVideoDecoder().

◆ d3d_video_decoder_output_view_create()

HRESULT d3d_video_decoder_output_view_create ( struct d3d_device *  device,
ID3D11Resource *  resource,
const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *  desc,
struct d3d_video_decoder_output_view **  view 
)

Definition at line 2729 of file view.c.

2731{
2733 HRESULT hr;
2734
2735 TRACE("profile %s, slice %u.\n", debugstr_guid(&desc->DecodeProfile), desc->u.Texture2D.ArraySlice);
2736
2737 if (!(object = calloc(1, sizeof(*object))))
2738 return E_OUTOFMEMORY;
2739
2741 {
2742 WARN("Failed to initialise video decoder output view, hr %#lx.\n", hr);
2743 free(object);
2744 return hr;
2745 }
2746
2747 TRACE("Created video decoder output view %p.\n", object);
2748 *view = object;
2749
2750 return S_OK;
2751}
static HRESULT d3d_video_decoder_output_view_init(struct d3d_video_decoder_output_view *view, struct d3d_device *device, ID3D11Resource *resource, const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *desc)
Definition: view.c:2713
#define debugstr_guid
Definition: kernel32.h:35

Referenced by d3d11_video_device_CreateVideoDecoderOutputView().

◆ debug_d3d10_primitive_topology()

const char * debug_d3d10_primitive_topology ( D3D10_PRIMITIVE_TOPOLOGY  topology)

Definition at line 26 of file utils.c.

27{
28 switch (topology)
29 {
40 default:
41 FIXME("Unrecognized D3D10_PRIMITIVE_TOPOLOGY %#x\n", topology);
42 return "unrecognized";
43 }
44}
@ D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ
Definition: d3dcommon.idl:433
@ D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP
Definition: d3dcommon.idl:430
@ D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED
Definition: d3dcommon.idl:427
@ D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ
Definition: d3dcommon.idl:434
@ D3D10_PRIMITIVE_TOPOLOGY_POINTLIST
Definition: d3dcommon.idl:428
@ D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ
Definition: d3dcommon.idl:436
@ D3D10_PRIMITIVE_TOPOLOGY_LINELIST
Definition: d3dcommon.idl:429
@ D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST
Definition: d3dcommon.idl:431
@ D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP
Definition: d3dcommon.idl:432
@ D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ
Definition: d3dcommon.idl:435
#define WINE_D3D_TO_STR(x)
Definition: utils.c:24

Referenced by d3d10_device_IASetPrimitiveTopology().

◆ debug_dxgi_format()

const char * debug_dxgi_format ( DXGI_FORMAT  format)

Definition at line 46 of file utils.c.

47{
48 switch(format)
49 {
153 default:
154 FIXME("Unrecognized DXGI_FORMAT %#x.\n", format);
155 return "unrecognized";
156 }
157}
@ DXGI_FORMAT_R16_UINT
Definition: dxgiformat.idl:80
@ DXGI_FORMAT_B8G8R8A8_UNORM
Definition: dxgiformat.idl:110
@ DXGI_FORMAT_R8_TYPELESS
Definition: dxgiformat.idl:83
@ DXGI_FORMAT_BC3_UNORM_SRGB
Definition: dxgiformat.idl:101
@ DXGI_FORMAT_R8G8_B8G8_UNORM
Definition: dxgiformat.idl:91
@ DXGI_FORMAT_R32G32B32_TYPELESS
Definition: dxgiformat.idl:28
@ DXGI_FORMAT_BC3_TYPELESS
Definition: dxgiformat.idl:99
@ DXGI_FORMAT_R16G16_SNORM
Definition: dxgiformat.idl:60
@ DXGI_FORMAT_D32_FLOAT_S8X24_UINT
Definition: dxgiformat.idl:43
@ DXGI_FORMAT_R32G32B32A32_SINT
Definition: dxgiformat.idl:27
@ DXGI_FORMAT_BC5_UNORM
Definition: dxgiformat.idl:106
@ DXGI_FORMAT_BC1_UNORM
Definition: dxgiformat.idl:94
@ DXGI_FORMAT_R8G8_UINT
Definition: dxgiformat.idl:73
@ DXGI_FORMAT_R32G32B32A32_UINT
Definition: dxgiformat.idl:26
@ DXGI_FORMAT_R16G16B16A16_SNORM
Definition: dxgiformat.idl:36
@ DXGI_FORMAT_R32_FLOAT
Definition: dxgiformat.idl:64
@ DXGI_FORMAT_R16G16B16A16_UNORM
Definition: dxgiformat.idl:34
@ DXGI_FORMAT_R32_SINT
Definition: dxgiformat.idl:66
@ DXGI_FORMAT_R8G8_UNORM
Definition: dxgiformat.idl:72
@ DXGI_FORMAT_R16G16_UNORM
Definition: dxgiformat.idl:58
@ DXGI_FORMAT_BC1_UNORM_SRGB
Definition: dxgiformat.idl:95
@ DXGI_FORMAT_R16G16_SINT
Definition: dxgiformat.idl:61
@ DXGI_FORMAT_R24_UNORM_X8_TYPELESS
Definition: dxgiformat.idl:69
@ DXGI_FORMAT_R8G8B8A8_TYPELESS
Definition: dxgiformat.idl:50
@ DXGI_FORMAT_BC2_TYPELESS
Definition: dxgiformat.idl:96
@ DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS
Definition: dxgiformat.idl:44
@ DXGI_FORMAT_R32G32B32_FLOAT
Definition: dxgiformat.idl:29
@ DXGI_FORMAT_R32G32B32_SINT
Definition: dxgiformat.idl:31
@ DXGI_FORMAT_R32G32B32A32_TYPELESS
Definition: dxgiformat.idl:24
@ DXGI_FORMAT_B8G8R8A8_UNORM_SRGB
Definition: dxgiformat.idl:114
@ DXGI_FORMAT_B8G8R8X8_TYPELESS
Definition: dxgiformat.idl:115
@ DXGI_FORMAT_B8G8R8A8_TYPELESS
Definition: dxgiformat.idl:113
@ DXGI_FORMAT_UNKNOWN
Definition: dxgiformat.idl:23
@ DXGI_FORMAT_X24_TYPELESS_G8_UINT
Definition: dxgiformat.idl:70
@ DXGI_FORMAT_R16_SINT
Definition: dxgiformat.idl:82
@ DXGI_FORMAT_R1_UNORM
Definition: dxgiformat.idl:89
@ DXGI_FORMAT_R16G16B16A16_UINT
Definition: dxgiformat.idl:35
@ DXGI_FORMAT_R16_UNORM
Definition: dxgiformat.idl:79
@ DXGI_FORMAT_R8G8B8A8_SINT
Definition: dxgiformat.idl:55
@ DXGI_FORMAT_D24_UNORM_S8_UINT
Definition: dxgiformat.idl:68
@ DXGI_FORMAT_R8G8B8A8_SNORM
Definition: dxgiformat.idl:54
@ DXGI_FORMAT_A8_UNORM
Definition: dxgiformat.idl:88
@ DXGI_FORMAT_R8G8B8A8_UINT
Definition: dxgiformat.idl:53
@ DXGI_FORMAT_R10G10B10A2_TYPELESS
Definition: dxgiformat.idl:46
@ DXGI_FORMAT_R32G32_FLOAT
Definition: dxgiformat.idl:39
@ DXGI_FORMAT_BC6H_UF16
Definition: dxgiformat.idl:118
@ DXGI_FORMAT_BC6H_SF16
Definition: dxgiformat.idl:119
@ DXGI_FORMAT_R10G10B10A2_UNORM
Definition: dxgiformat.idl:47
@ DXGI_FORMAT_R8_SNORM
Definition: dxgiformat.idl:86
@ DXGI_FORMAT_R9G9B9E5_SHAREDEXP
Definition: dxgiformat.idl:90
@ DXGI_FORMAT_R16G16B16A16_TYPELESS
Definition: dxgiformat.idl:32
@ DXGI_FORMAT_R16G16B16A16_FLOAT
Definition: dxgiformat.idl:33
@ DXGI_FORMAT_BC7_TYPELESS
Definition: dxgiformat.idl:120
@ DXGI_FORMAT_R32_TYPELESS
Definition: dxgiformat.idl:62
@ DXGI_FORMAT_R8_UNORM
Definition: dxgiformat.idl:84
@ DXGI_FORMAT_R32G32_UINT
Definition: dxgiformat.idl:40
@ DXGI_FORMAT_R11G11B10_FLOAT
Definition: dxgiformat.idl:49
@ DXGI_FORMAT_R8G8B8A8_UNORM
Definition: dxgiformat.idl:51
@ DXGI_FORMAT_G8R8_G8B8_UNORM
Definition: dxgiformat.idl:92
@ DXGI_FORMAT_YUY2
Definition: dxgiformat.idl:130
@ DXGI_FORMAT_D16_UNORM
Definition: dxgiformat.idl:78
@ DXGI_FORMAT_R16_FLOAT
Definition: dxgiformat.idl:77
@ DXGI_FORMAT_R10G10B10A2_UINT
Definition: dxgiformat.idl:48
@ DXGI_FORMAT_BC6H_TYPELESS
Definition: dxgiformat.idl:117
@ DXGI_FORMAT_BC7_UNORM
Definition: dxgiformat.idl:121
@ DXGI_FORMAT_BC5_TYPELESS
Definition: dxgiformat.idl:105
@ DXGI_FORMAT_R32G32_SINT
Definition: dxgiformat.idl:41
@ DXGI_FORMAT_BC2_UNORM_SRGB
Definition: dxgiformat.idl:98
@ DXGI_FORMAT_R16_SNORM
Definition: dxgiformat.idl:81
@ DXGI_FORMAT_R8_SINT
Definition: dxgiformat.idl:87
@ DXGI_FORMAT_BC5_SNORM
Definition: dxgiformat.idl:107
@ DXGI_FORMAT_R32_UINT
Definition: dxgiformat.idl:65
@ DXGI_FORMAT_BC4_TYPELESS
Definition: dxgiformat.idl:102
@ DXGI_FORMAT_R32G32B32A32_FLOAT
Definition: dxgiformat.idl:25
@ DXGI_FORMAT_R24G8_TYPELESS
Definition: dxgiformat.idl:67
@ DXGI_FORMAT_R8G8_SINT
Definition: dxgiformat.idl:75
@ DXGI_FORMAT_R16_TYPELESS
Definition: dxgiformat.idl:76
@ DXGI_FORMAT_BC3_UNORM
Definition: dxgiformat.idl:100
@ DXGI_FORMAT_R32G32B32_UINT
Definition: dxgiformat.idl:30
@ DXGI_FORMAT_R16G16_TYPELESS
Definition: dxgiformat.idl:56
@ DXGI_FORMAT_R8G8B8A8_UNORM_SRGB
Definition: dxgiformat.idl:52
@ DXGI_FORMAT_R16G16_UINT
Definition: dxgiformat.idl:59
@ DXGI_FORMAT_D32_FLOAT
Definition: dxgiformat.idl:63
@ DXGI_FORMAT_R8G8_TYPELESS
Definition: dxgiformat.idl:71
@ DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM
Definition: dxgiformat.idl:112
@ DXGI_FORMAT_R16G16B16A16_SINT
Definition: dxgiformat.idl:37
@ DXGI_FORMAT_BC1_TYPELESS
Definition: dxgiformat.idl:93
@ DXGI_FORMAT_BC7_UNORM_SRGB
Definition: dxgiformat.idl:122
@ DXGI_FORMAT_BC2_UNORM
Definition: dxgiformat.idl:97
@ DXGI_FORMAT_R32G32_TYPELESS
Definition: dxgiformat.idl:38
@ DXGI_FORMAT_R32G8X24_TYPELESS
Definition: dxgiformat.idl:42
@ DXGI_FORMAT_B4G4R4A4_UNORM
Definition: dxgiformat.idl:138
@ DXGI_FORMAT_R16G16_FLOAT
Definition: dxgiformat.idl:57
@ DXGI_FORMAT_B5G6R5_UNORM
Definition: dxgiformat.idl:108
@ DXGI_FORMAT_BC4_UNORM
Definition: dxgiformat.idl:103
@ DXGI_FORMAT_X32_TYPELESS_G8X24_UINT
Definition: dxgiformat.idl:45
@ DXGI_FORMAT_R8G8_SNORM
Definition: dxgiformat.idl:74
@ DXGI_FORMAT_B8G8R8X8_UNORM_SRGB
Definition: dxgiformat.idl:116
@ DXGI_FORMAT_R8_UINT
Definition: dxgiformat.idl:85
@ DXGI_FORMAT_BC4_SNORM
Definition: dxgiformat.idl:104
@ DXGI_FORMAT_NV12
Definition: dxgiformat.idl:126
@ DXGI_FORMAT_B5G5R5A1_UNORM
Definition: dxgiformat.idl:109
@ DXGI_FORMAT_B8G8R8X8_UNORM
Definition: dxgiformat.idl:111

Referenced by d3d10_device_CheckFormatSupport(), d3d10_device_CheckMultisampleQualityLevels(), d3d10_device_IASetIndexBuffer(), d3d10_device_ResolveSubresource(), d3d11_device_CheckMultisampleQualityLevels(), d3d11_device_context_IASetIndexBuffer(), d3d11_device_context_ResolveSubresource(), d3d11_swapchain_ResizeBuffers(), d3d11_swapchain_ResizeBuffers1(), d3d12_swapchain_ResizeBuffers(), d3d12_swapchain_ResizeBuffers1(), dxgi_output_GetDisplayModeList(), dxgi_output_GetDisplayModeList1(), and select_vk_format().

◆ debug_float4()

const char * debug_float4 ( const float *  values)

Definition at line 161 of file utils.c.

162{
163 if (!values)
164 return "(null)";
165 return wine_dbg_sprintf("{%.8e, %.8e, %.8e, %.8e}",
166 values[0], values[1], values[2], values[3]);
167}
const char * wine_dbg_sprintf(const char *format,...)
Definition: compat.c:296
GLboolean GLenum GLenum GLvoid * values
Definition: glext.h:5666

Referenced by d3d10_device_ClearRenderTargetView(), d3d10_device_OMSetBlendState(), d3d11_device_context_ClearRenderTargetView(), d3d11_device_context_ClearUnorderedAccessViewFloat(), and d3d11_device_context_OMSetBlendState().

◆ dxgi_format_from_wined3dformat()

DXGI_FORMAT dxgi_format_from_wined3dformat ( enum wined3d_format_id  format)

Definition at line 210 of file utils.c.

211{
212 switch(format)
213 {
317 default:
318 FIXME("Unhandled wined3d format %#x.\n", format);
319 return DXGI_FORMAT_UNKNOWN;
320 }
321}
@ WINED3DFMT_R32G32B32_TYPELESS
Definition: wined3d.h:160
@ WINED3DFMT_R8_TYPELESS
Definition: wined3d.h:217
@ WINED3DFMT_BC5_UNORM
Definition: wined3d.h:240
@ WINED3DFMT_R32G32B32_SINT
Definition: wined3d.h:163
@ WINED3DFMT_R8G8_UNORM
Definition: wined3d.h:206
@ WINED3DFMT_BC7_TYPELESS
Definition: wined3d.h:253
@ WINED3DFMT_BC7_UNORM_SRGB
Definition: wined3d.h:255
@ WINED3DFMT_R32G32_SINT
Definition: wined3d.h:173
@ WINED3DFMT_X24_TYPELESS_G8_UINT
Definition: wined3d.h:204
@ WINED3DFMT_BC2_UNORM_SRGB
Definition: wined3d.h:232
@ WINED3DFMT_B4G4R4A4_UNORM
Definition: wined3d.h:130
@ WINED3DFMT_R16G16_UINT
Definition: wined3d.h:193
@ WINED3DFMT_R16G16_UNORM
Definition: wined3d.h:192
@ WINED3DFMT_R8G8_TYPELESS
Definition: wined3d.h:205
@ WINED3DFMT_BC5_SNORM
Definition: wined3d.h:241
@ WINED3DFMT_R32_SINT
Definition: wined3d.h:200
@ WINED3DFMT_D32_FLOAT
Definition: wined3d.h:197
@ WINED3DFMT_R10G10B10A2_UNORM
Definition: wined3d.h:179
@ WINED3DFMT_R8_UINT
Definition: wined3d.h:219
@ WINED3DFMT_R32G32_FLOAT
Definition: wined3d.h:171
@ WINED3DFMT_R16G16_SNORM
Definition: wined3d.h:194
@ WINED3DFMT_B8G8R8A8_UNORM
Definition: wined3d.h:244
@ WINED3DFMT_R16_UNORM
Definition: wined3d.h:213
@ WINED3DFMT_R24G8_TYPELESS
Definition: wined3d.h:201
@ WINED3DFMT_R10G10B10A2_TYPELESS
Definition: wined3d.h:178
@ WINED3DFMT_R32G32_UINT
Definition: wined3d.h:172
@ WINED3DFMT_R32G32B32_UINT
Definition: wined3d.h:162
@ WINED3DFMT_BC4_TYPELESS
Definition: wined3d.h:236
@ WINED3DFMT_BC2_UNORM
Definition: wined3d.h:231
@ WINED3DFMT_R8_UNORM
Definition: wined3d.h:218
@ WINED3DFMT_R8G8B8A8_SNORM
Definition: wined3d.h:188
@ WINED3DFMT_NV12
Definition: wined3d.h:279
@ WINED3DFMT_R10G10B10_XR_BIAS_A2_UNORM
Definition: wined3d.h:182
@ WINED3DFMT_R16_TYPELESS
Definition: wined3d.h:210
@ WINED3DFMT_R16G16B16A16_SINT
Definition: wined3d.h:169
@ WINED3DFMT_R16_SINT
Definition: wined3d.h:216
@ WINED3DFMT_R8G8_B8G8_UNORM
Definition: wined3d.h:225
@ WINED3DFMT_R32G32B32_FLOAT
Definition: wined3d.h:161
@ WINED3DFMT_B8G8R8X8_UNORM
Definition: wined3d.h:245
@ WINED3DFMT_R32_FLOAT_X8X24_TYPELESS
Definition: wined3d.h:176
@ WINED3DFMT_BC1_UNORM_SRGB
Definition: wined3d.h:229
@ WINED3DFMT_R16G16B16A16_FLOAT
Definition: wined3d.h:165
@ WINED3DFMT_D16_UNORM
Definition: wined3d.h:212
@ WINED3DFMT_R8G8_SNORM
Definition: wined3d.h:208
@ WINED3DFMT_UNKNOWN
Definition: wined3d.h:127
@ WINED3DFMT_R8G8B8A8_TYPELESS
Definition: wined3d.h:184
@ WINED3DFMT_R8G8_UINT
Definition: wined3d.h:207
@ WINED3DFMT_BC7_UNORM
Definition: wined3d.h:254
@ WINED3DFMT_R8G8B8A8_UNORM_SRGB
Definition: wined3d.h:186
@ WINED3DFMT_R9G9B9E5_SHAREDEXP
Definition: wined3d.h:224
@ WINED3DFMT_B8G8R8X8_TYPELESS
Definition: wined3d.h:248
@ WINED3DFMT_R32_UINT
Definition: wined3d.h:199
@ WINED3DFMT_B5G5R5A1_UNORM
Definition: wined3d.h:243
@ WINED3DFMT_R16_FLOAT
Definition: wined3d.h:211
@ WINED3DFMT_R8G8B8A8_UNORM
Definition: wined3d.h:185
@ WINED3DFMT_R10G10B10A2_UINT
Definition: wined3d.h:180
@ WINED3DFMT_G8R8_G8B8_UNORM
Definition: wined3d.h:226
@ WINED3DFMT_R32G32B32A32_UINT
Definition: wined3d.h:158
@ WINED3DFMT_R16G16B16A16_UNORM
Definition: wined3d.h:166
@ WINED3DFMT_BC3_UNORM
Definition: wined3d.h:234
@ WINED3DFMT_BC6H_UF16
Definition: wined3d.h:251
@ WINED3DFMT_R16G16B16A16_TYPELESS
Definition: wined3d.h:164
@ WINED3DFMT_R24_UNORM_X8_TYPELESS
Definition: wined3d.h:203
@ WINED3DFMT_D32_FLOAT_S8X24_UINT
Definition: wined3d.h:175
@ WINED3DFMT_R32_FLOAT
Definition: wined3d.h:198
@ WINED3DFMT_X32_TYPELESS_G8X24_UINT
Definition: wined3d.h:177
@ WINED3DFMT_B5G6R5_UNORM
Definition: wined3d.h:242
@ WINED3DFMT_R16G16B16A16_UINT
Definition: wined3d.h:167
@ WINED3DFMT_BC1_TYPELESS
Definition: wined3d.h:227
@ WINED3DFMT_B8G8R8X8_UNORM_SRGB
Definition: wined3d.h:249
@ WINED3DFMT_BC4_UNORM
Definition: wined3d.h:237
@ WINED3DFMT_B8G8R8A8_TYPELESS
Definition: wined3d.h:246
@ WINED3DFMT_BC3_TYPELESS
Definition: wined3d.h:233
@ WINED3DFMT_R16G16_TYPELESS
Definition: wined3d.h:190
@ WINED3DFMT_R8_SNORM
Definition: wined3d.h:220
@ WINED3DFMT_YUY2
Definition: wined3d.h:258
@ WINED3DFMT_R16G16_FLOAT
Definition: wined3d.h:191
@ WINED3DFMT_R8G8B8A8_UINT
Definition: wined3d.h:187
@ WINED3DFMT_R16_SNORM
Definition: wined3d.h:215
@ WINED3DFMT_BC6H_TYPELESS
Definition: wined3d.h:250
@ WINED3DFMT_BC1_UNORM
Definition: wined3d.h:228
@ WINED3DFMT_R32G32B32A32_TYPELESS
Definition: wined3d.h:156
@ WINED3DFMT_R32_TYPELESS
Definition: wined3d.h:196
@ WINED3DFMT_R32G8X24_TYPELESS
Definition: wined3d.h:174
@ WINED3DFMT_R16_UINT
Definition: wined3d.h:214
@ WINED3DFMT_R8_SINT
Definition: wined3d.h:221
@ WINED3DFMT_BC5_TYPELESS
Definition: wined3d.h:239
@ WINED3DFMT_R8G8_SINT
Definition: wined3d.h:209
@ WINED3DFMT_R32G32B32A32_SINT
Definition: wined3d.h:159
@ WINED3DFMT_R8G8B8A8_SINT
Definition: wined3d.h:189
@ WINED3DFMT_R1_UNORM
Definition: wined3d.h:223
@ WINED3DFMT_R11G11B10_FLOAT
Definition: wined3d.h:183
@ WINED3DFMT_B8G8R8A8_UNORM_SRGB
Definition: wined3d.h:247
@ WINED3DFMT_BC3_UNORM_SRGB
Definition: wined3d.h:235
@ WINED3DFMT_A8_UNORM
Definition: wined3d.h:222
@ WINED3DFMT_R32G32B32A32_FLOAT
Definition: wined3d.h:157
@ WINED3DFMT_BC2_TYPELESS
Definition: wined3d.h:230
@ WINED3DFMT_BC6H_SF16
Definition: wined3d.h:252
@ WINED3DFMT_D24_UNORM_S8_UINT
Definition: wined3d.h:202
@ WINED3DFMT_R16G16B16A16_SNORM
Definition: wined3d.h:168
@ WINED3DFMT_BC4_SNORM
Definition: wined3d.h:238
@ WINED3DFMT_R16G16_SINT
Definition: wined3d.h:195
@ WINED3DFMT_R32G32_TYPELESS
Definition: wined3d.h:170

Referenced by d3d10_device_IAGetIndexBuffer(), d3d11_device_context_IAGetIndexBuffer(), d3d11_swapchain_GetDesc(), d3d11_swapchain_GetDesc1(), d3d11_texture2d_GetDesc(), dxgi_device_parent_register_swapchain_texture(), dxgi_mode1_from_wined3d(), dxgi_mode_from_wined3d(), and dxgi_surface_GetDesc().

◆ DXGID3D10CreateDevice()

HRESULT WINAPI DXGID3D10CreateDevice ( HMODULE  d3d10core,
IDXGIFactory *  factory,
IDXGIAdapter *  adapter,
unsigned int  flags,
const D3D_FEATURE_LEVEL *  feature_levels,
unsigned int  level_count,
void **  device 
)

Definition at line 135 of file dxgi_main.c.

137{
138 struct layer_get_size_args get_size_args;
139 struct dxgi_device_layer d3d10_layer;
140 struct dxgi_device *dxgi_device;
141 UINT device_size;
142 DWORD count;
143 HRESULT hr;
144
145 TRACE("d3d10core %p, factory %p, adapter %p, flags %#x, feature_levels %p, level_count %u, device %p.\n",
146 d3d10core, factory, adapter, flags, feature_levels, level_count, device);
147
148 if (flags)
149 FIXME("Ignoring flags %#x.\n", flags);
150
151 if (TRACE_ON(dxgi))
153
154 hr = register_d3d10core_layers(d3d10core);
155 if (FAILED(hr))
156 {
157 ERR("Failed to register d3d10core layers, returning %#lx.\n", hr);
158 return hr;
159 }
160
161 if (!get_layer(DXGI_DEVICE_LAYER_D3D10_DEVICE, &d3d10_layer))
162 {
163 ERR("Failed to get D3D10 device layer.\n");
164 return E_FAIL;
165 }
166
167 count = 0;
168 hr = d3d10_layer.init(d3d10_layer.id, &count, NULL);
169 if (FAILED(hr))
170 {
171 WARN("Failed to initialize D3D10 device layer.\n");
172 return E_FAIL;
173 }
174
175 get_size_args.unknown0 = 0;
176 get_size_args.unknown1 = 0;
177 get_size_args.unknown2 = NULL;
178 get_size_args.unknown3 = NULL;
179 get_size_args.adapter = adapter;
180 get_size_args.interface_major = 10;
181 get_size_args.interface_minor = 1;
182 get_size_args.version_build = 4;
183 get_size_args.version_revision = 6000;
184
185 device_size = d3d10_layer.get_size(d3d10_layer.id, &get_size_args, 0);
186 device_size += sizeof(*dxgi_device);
187
188 if (!(dxgi_device = calloc(1, device_size)))
189 {
190 ERR("Failed to allocate device memory.\n");
191 return E_OUTOFMEMORY;
192 }
193
194 hr = dxgi_device_init(dxgi_device, &d3d10_layer, factory, adapter, feature_levels, level_count);
195 if (FAILED(hr))
196 {
197 WARN("Failed to initialize device, hr %#lx.\n", hr);
199 *device = NULL;
200 return hr;
201 }
202
203 TRACE("Created device %p.\n", dxgi_device);
205
206 return S_OK;
207}
HRESULT dxgi_device_init(struct dxgi_device *device, struct dxgi_device_layer *layer, IDXGIFactory *factory, IDXGIAdapter *adapter, const D3D_FEATURE_LEVEL *feature_levels, unsigned int level_count)
Definition: device.c:486
#define TRACE_ON(x)
Definition: compat.h:75
static HRESULT register_d3d10core_layers(HMODULE d3d10core)
Definition: dxgi_main.c:100
static BOOL get_layer(enum dxgi_device_layer_id id, struct dxgi_device_layer *layer)
Definition: dxgi_main.c:80
void dump_feature_levels(const D3D_FEATURE_LEVEL *feature_levels, unsigned int level_count)
Definition: utils.c:410
return adapter
GLuint GLuint GLsizei count
Definition: gl.h:1545
static D3D_DRIVER_TYPE HMODULE UINT const D3D_FEATURE_LEVEL * feature_levels
Definition: hlsl_d3d11.c:28
IWineDXGIDevice IWineDXGIDevice_iface
Definition: dxgi_private.h:129
Definition: main.c:439

◆ DXGID3D10RegisterLayers()

HRESULT WINAPI DXGID3D10RegisterLayers ( const struct dxgi_device_layer *  layers,
UINT  layer_count 
)

Definition at line 209 of file dxgi_main.c.

210{
211 UINT i;
212 struct dxgi_device_layer *new_layers;
213
214 TRACE("layers %p, layer_count %u\n", layers, layer_count);
215
217
218 new_layers = realloc(dxgi_main.device_layers,
219 (dxgi_main.layer_count + layer_count) * sizeof(*new_layers));
220
221 if (!new_layers)
222 {
224 ERR("Failed to allocate layer memory\n");
225 return E_OUTOFMEMORY;
226 }
227
228 for (i = 0; i < layer_count; ++i)
229 {
230 const struct dxgi_device_layer *layer = &layers[i];
231
232 TRACE("layer %d: id %#x, init %p, get_size %p, create %p\n",
233 i, layer->id, layer->init, layer->get_size, layer->create);
234
235 new_layers[dxgi_main.layer_count + i] = *layer;
236 }
237
238 dxgi_main.device_layers = new_layers;
239 dxgi_main.layer_count += layer_count;
240
242
243 return S_OK;
244}
#define realloc
Definition: debug_ros.c:6
GLenum GLuint GLint GLint layer
Definition: glext.h:7007
UINT layer_count
Definition: dxgi_main.c:29
struct dxgi_device_layer * device_layers
Definition: dxgi_main.c:28

Referenced by D3D11CoreRegisterLayers().

◆ impl_from_ID3D10Device()

static struct d3d_device * impl_from_ID3D10Device ( ID3D10Device1 *  iface)
inlinestatic

Definition at line 612 of file d3d11_private.h.

613{
614 return CONTAINING_RECORD(iface, struct d3d_device, ID3D10Device1_iface);
615}
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260

Referenced by d3d10_device_AddRef(), d3d10_device_CheckFormatSupport(), d3d10_device_CheckMultisampleQualityLevels(), d3d10_device_ClearDepthStencilView(), d3d10_device_ClearRenderTargetView(), d3d10_device_ClearState(), d3d10_device_CopyResource(), d3d10_device_CopySubresourceRegion(), d3d10_device_CreateBlendState1(), d3d10_device_CreateBuffer(), d3d10_device_CreateDepthStencilState(), d3d10_device_CreateDepthStencilView(), d3d10_device_CreateGeometryShader(), d3d10_device_CreateGeometryShaderWithStreamOutput(), d3d10_device_CreateInputLayout(), d3d10_device_CreatePixelShader(), d3d10_device_CreatePredicate(), d3d10_device_CreateQuery(), d3d10_device_CreateRasterizerState(), d3d10_device_CreateRenderTargetView(), d3d10_device_CreateSamplerState(), d3d10_device_CreateShaderResourceView1(), d3d10_device_CreateTexture1D(), d3d10_device_CreateTexture2D(), d3d10_device_CreateTexture3D(), d3d10_device_CreateVertexShader(), d3d10_device_Draw(), d3d10_device_DrawIndexed(), d3d10_device_DrawIndexedInstanced(), d3d10_device_DrawInstanced(), d3d10_device_Flush(), d3d10_device_GenerateMips(), d3d10_device_get_constant_buffers(), d3d10_device_GetFeatureLevel(), d3d10_device_GetPredication(), d3d10_device_GetPrivateData(), d3d10_device_GSGetSamplers(), d3d10_device_GSGetShader(), d3d10_device_GSGetShaderResources(), d3d10_device_GSSetShader(), d3d10_device_IAGetIndexBuffer(), d3d10_device_IAGetInputLayout(), d3d10_device_IAGetPrimitiveTopology(), d3d10_device_IAGetVertexBuffers(), d3d10_device_IASetIndexBuffer(), d3d10_device_IASetInputLayout(), d3d10_device_IASetPrimitiveTopology(), d3d10_device_IASetVertexBuffers(), d3d10_device_OMGetBlendState(), d3d10_device_OMGetDepthStencilState(), d3d10_device_OMGetRenderTargets(), d3d10_device_OMSetBlendState(), d3d10_device_OMSetDepthStencilState(), d3d10_device_OMSetRenderTargets(), d3d10_device_PSGetSamplers(), d3d10_device_PSGetShader(), d3d10_device_PSGetShaderResources(), d3d10_device_PSSetShader(), d3d10_device_QueryInterface(), d3d10_device_Release(), d3d10_device_ResolveSubresource(), d3d10_device_RSGetScissorRects(), d3d10_device_RSGetState(), d3d10_device_RSGetViewports(), d3d10_device_RSSetScissorRects(), d3d10_device_RSSetState(), d3d10_device_RSSetViewports(), d3d10_device_set_constant_buffers(), d3d10_device_set_samplers(), d3d10_device_set_shader_resource_views(), d3d10_device_SetPredication(), d3d10_device_SetPrivateData(), d3d10_device_SetPrivateDataInterface(), d3d10_device_SOGetTargets(), d3d10_device_SOSetTargets(), d3d10_device_UpdateSubresource(), d3d10_device_VSGetSamplers(), d3d10_device_VSGetShader(), d3d10_device_VSGetShaderResources(), and d3d10_device_VSSetShader().

◆ impl_from_ID3D11BlendState1()

◆ impl_from_ID3D11DepthStencilState()

◆ impl_from_ID3D11Device()

static struct d3d_device * impl_from_ID3D11Device ( ID3D11Device *  iface)
inlinestatic

Definition at line 602 of file d3d11_private.h.

603{
604 return CONTAINING_RECORD((ID3D11Device2 *)iface, struct d3d_device, ID3D11Device2_iface);
605}

Referenced by D3D11CoreCreateDevice().

◆ impl_from_ID3D11Device2()

static struct d3d_device * impl_from_ID3D11Device2 ( ID3D11Device2 *  iface)
inlinestatic

Definition at line 607 of file d3d11_private.h.

608{
609 return CONTAINING_RECORD(iface, struct d3d_device, ID3D11Device2_iface);
610}

Referenced by d3d11_device_AddRef(), d3d11_device_CheckFeatureSupport(), d3d11_device_CheckFormatSupport(), d3d11_device_CheckMultisampleQualityLevels(), d3d11_device_CreateBlendState1(), d3d11_device_CreateBuffer(), d3d11_device_CreateClassLinkage(), d3d11_device_CreateComputeShader(), d3d11_device_CreateDeferredContext(), d3d11_device_CreateDeferredContext1(), d3d11_device_CreateDepthStencilState(), d3d11_device_CreateDepthStencilView(), d3d11_device_CreateDeviceContextState(), d3d11_device_CreateDomainShader(), d3d11_device_CreateGeometryShader(), d3d11_device_CreateGeometryShaderWithStreamOutput(), d3d11_device_CreateHullShader(), d3d11_device_CreateInputLayout(), d3d11_device_CreatePixelShader(), d3d11_device_CreatePredicate(), d3d11_device_CreateQuery(), d3d11_device_CreateRasterizerState(), d3d11_device_CreateRasterizerState1(), d3d11_device_CreateRenderTargetView(), d3d11_device_CreateSamplerState(), d3d11_device_CreateShaderResourceView(), d3d11_device_CreateTexture1D(), d3d11_device_CreateTexture2D(), d3d11_device_CreateTexture3D(), d3d11_device_CreateUnorderedAccessView(), d3d11_device_CreateVertexShader(), d3d11_device_GetFeatureLevel(), d3d11_device_GetImmediateContext(), d3d11_device_GetImmediateContext1(), d3d11_device_QueryInterface(), d3d11_device_Release(), d3d_blend_state_wined3d_object_destroyed(), d3d_depthstencil_state_wined3d_object_destroyed(), d3d_rasterizer_state_wined3d_object_destroyed(), and d3d_sampler_wined3d_object_destroyed().

◆ impl_from_ID3D11Texture2D()

static struct d3d_texture2d * impl_from_ID3D11Texture2D ( ID3D11Texture2D *  iface)
inlinestatic

◆ unsafe_impl_from_ID3D10BlendState()

struct d3d_blend_state * unsafe_impl_from_ID3D10BlendState ( ID3D10BlendState *  iface)

Definition at line 478 of file state.c.

479{
480 if (!iface)
481 return NULL;
482 assert(iface->lpVtbl == (ID3D10BlendStateVtbl *)&d3d10_blend_state_vtbl);
483
484 return impl_from_ID3D10BlendState((ID3D10BlendState1 *)iface);
485}
static struct d3d_blend_state * impl_from_ID3D10BlendState(ID3D10BlendState1 *iface)
Definition: state.c:183
#define assert(_expr)
Definition: assert.h:32

Referenced by d3d10_device_OMSetBlendState().

◆ unsafe_impl_from_ID3D10Buffer()

struct d3d_buffer * unsafe_impl_from_ID3D10Buffer ( ID3D10Buffer *  iface)

Definition at line 386 of file buffer.c.

387{
388 if (!iface)
389 return NULL;
390 assert(iface->lpVtbl == &d3d10_buffer_vtbl);
391 return CONTAINING_RECORD(iface, struct d3d_buffer, ID3D10Buffer_iface);
392}
static const struct ID3D10BufferVtbl d3d10_buffer_vtbl
Definition: buffer.c:365

Referenced by d3d10_device_IASetIndexBuffer(), d3d10_device_IASetVertexBuffers(), d3d10_device_set_constant_buffers(), d3d10_device_SOSetTargets(), and wined3d_resource_from_d3d10_resource().

◆ unsafe_impl_from_ID3D10DepthStencilState()

struct d3d_depthstencil_state * unsafe_impl_from_ID3D10DepthStencilState ( ID3D10DepthStencilState *  iface)

Definition at line 879 of file state.c.

880{
881 if (!iface)
882 return NULL;
883 assert(iface->lpVtbl == &d3d10_depthstencil_state_vtbl);
884
886}
static struct d3d_depthstencil_state * impl_from_ID3D10DepthStencilState(ID3D10DepthStencilState *iface)
Definition: state.c:621

Referenced by d3d10_device_OMSetDepthStencilState().

◆ unsafe_impl_from_ID3D10DepthStencilView()

struct d3d_depthstencil_view * unsafe_impl_from_ID3D10DepthStencilView ( ID3D10DepthStencilView *  iface)

Definition at line 1346 of file view.c.

1347{
1348 if (!iface)
1349 return NULL;
1350 assert(iface->lpVtbl == &d3d10_depthstencil_view_vtbl);
1351
1353}
static struct d3d_depthstencil_view * impl_from_ID3D10DepthStencilView(ID3D10DepthStencilView *iface)
Definition: view.c:1070
static const struct ID3D10DepthStencilViewVtbl d3d10_depthstencil_view_vtbl
Definition: view.c:1175

Referenced by d3d10_device_ClearDepthStencilView(), and d3d10_device_OMSetRenderTargets().

◆ unsafe_impl_from_ID3D10GeometryShader()

struct d3d_geometry_shader * unsafe_impl_from_ID3D10GeometryShader ( ID3D10GeometryShader *  iface)

Definition at line 1190 of file shader.c.

1191{
1192 if (!iface)
1193 return NULL;
1194 assert(iface->lpVtbl == &d3d10_geometry_shader_vtbl);
1195
1196 return impl_from_ID3D10GeometryShader(iface);
1197}
static const struct ID3D10GeometryShaderVtbl d3d10_geometry_shader_vtbl
Definition: shader.c:907
static struct d3d_geometry_shader * impl_from_ID3D10GeometryShader(ID3D10GeometryShader *iface)
Definition: shader.c:829

Referenced by d3d10_device_GSSetShader().

◆ unsafe_impl_from_ID3D10InputLayout()

struct d3d_input_layout * unsafe_impl_from_ID3D10InputLayout ( ID3D10InputLayout *  iface)

Definition at line 421 of file inputlayout.c.

422{
423 if (!iface)
424 return NULL;
425 assert(iface->lpVtbl == &d3d10_input_layout_vtbl);
426
427 return impl_from_ID3D10InputLayout(iface);
428}
static struct d3d_input_layout * impl_from_ID3D10InputLayout(ID3D10InputLayout *iface)
Definition: inputlayout.c:242
static const struct ID3D10InputLayoutVtbl d3d10_input_layout_vtbl
Definition: inputlayout.c:320

Referenced by d3d10_device_IASetInputLayout().

◆ unsafe_impl_from_ID3D10PixelShader()

struct d3d_pixel_shader * unsafe_impl_from_ID3D10PixelShader ( ID3D10PixelShader *  iface)

Definition at line 1491 of file shader.c.

1492{
1493 if (!iface)
1494 return NULL;
1495 assert(iface->lpVtbl == &d3d10_pixel_shader_vtbl);
1496
1497 return impl_from_ID3D10PixelShader(iface);
1498}
static struct d3d_pixel_shader * impl_from_ID3D10PixelShader(ID3D10PixelShader *iface)
Definition: shader.c:1327
static const struct ID3D10PixelShaderVtbl d3d10_pixel_shader_vtbl
Definition: shader.c:1405

Referenced by d3d10_device_PSSetShader().

◆ unsafe_impl_from_ID3D10Query()

struct d3d_query * unsafe_impl_from_ID3D10Query ( ID3D10Query *  iface)

Definition at line 398 of file async.c.

399{
400 if (!iface)
401 return NULL;
402 assert(iface->lpVtbl == &d3d10_query_vtbl);
403 return CONTAINING_RECORD(iface, struct d3d_query, ID3D10Query_iface);
404}
static const struct ID3D10QueryVtbl d3d10_query_vtbl
Definition: async.c:378

Referenced by d3d10_device_SetPredication().

◆ unsafe_impl_from_ID3D10RasterizerState()

struct d3d_rasterizer_state * unsafe_impl_from_ID3D10RasterizerState ( ID3D10RasterizerState *  iface)

Definition at line 1278 of file state.c.

1279{
1280 if (!iface)
1281 return NULL;
1282 assert(iface->lpVtbl == &d3d10_rasterizer_state_vtbl);
1283
1284 return impl_from_ID3D10RasterizerState(iface);
1285}
static struct d3d_rasterizer_state * impl_from_ID3D10RasterizerState(ID3D10RasterizerState *iface)
Definition: state.c:1039
static const struct ID3D10RasterizerStateVtbl d3d10_rasterizer_state_vtbl
Definition: state.c:1129

Referenced by d3d10_device_RSSetState().

◆ unsafe_impl_from_ID3D10RenderTargetView()

struct d3d_rendertarget_view * unsafe_impl_from_ID3D10RenderTargetView ( ID3D10RenderTargetView *  iface)

Definition at line 1787 of file view.c.

1788{
1789 if (!iface)
1790 return NULL;
1791 assert(iface->lpVtbl == &d3d10_rendertarget_view_vtbl);
1792
1794}
static struct d3d_rendertarget_view * impl_from_ID3D10RenderTargetView(ID3D10RenderTargetView *iface)
Definition: view.c:1508
static const struct ID3D10RenderTargetViewVtbl d3d10_rendertarget_view_vtbl
Definition: view.c:1610

Referenced by d3d10_device_ClearRenderTargetView(), and d3d10_device_OMSetRenderTargets().

◆ unsafe_impl_from_ID3D10SamplerState()

struct d3d_sampler_state * unsafe_impl_from_ID3D10SamplerState ( ID3D10SamplerState *  iface)

Definition at line 1691 of file state.c.

1692{
1693 if (!iface)
1694 return NULL;
1695 assert(iface->lpVtbl == &d3d10_sampler_state_vtbl);
1696
1697 return impl_from_ID3D10SamplerState(iface);
1698}
static const struct ID3D10SamplerStateVtbl d3d10_sampler_state_vtbl
Definition: state.c:1515
static struct d3d_sampler_state * impl_from_ID3D10SamplerState(ID3D10SamplerState *iface)
Definition: state.c:1425

Referenced by d3d10_device_set_samplers().

◆ unsafe_impl_from_ID3D10ShaderResourceView()

struct d3d_shader_resource_view * unsafe_impl_from_ID3D10ShaderResourceView ( ID3D10ShaderResourceView *  iface)

Definition at line 2280 of file view.c.

2281{
2282 if (!iface)
2283 return NULL;
2284 assert(iface->lpVtbl == (ID3D10ShaderResourceViewVtbl *)&d3d10_shader_resource_view_vtbl);
2285 return CONTAINING_RECORD(iface, struct d3d_shader_resource_view, ID3D10ShaderResourceView1_iface);
2286}
static const struct ID3D10ShaderResourceView1Vtbl d3d10_shader_resource_view_vtbl
Definition: view.c:2063

Referenced by d3d10_device_GenerateMips(), and d3d10_device_set_shader_resource_views().

◆ unsafe_impl_from_ID3D10Texture1D()

struct d3d_texture1d * unsafe_impl_from_ID3D10Texture1D ( ID3D10Texture1D *  iface)

Definition at line 403 of file texture.c.

404{
405 if (!iface)
406 return NULL;
407 assert(iface->lpVtbl == &d3d10_texture1d_vtbl);
408 return CONTAINING_RECORD(iface, struct d3d_texture1d, ID3D10Texture1D_iface);
409}

Referenced by wined3d_resource_from_d3d10_resource().

◆ unsafe_impl_from_ID3D10Texture2D()

struct d3d_texture2d * unsafe_impl_from_ID3D10Texture2D ( ID3D10Texture2D *  iface)

Definition at line 907 of file texture.c.

908{
909 if (!iface)
910 return NULL;
911 assert(iface->lpVtbl == &d3d10_texture2d_vtbl);
912 return CONTAINING_RECORD(iface, struct d3d_texture2d, ID3D10Texture2D_iface);
913}

Referenced by wined3d_resource_from_d3d10_resource().

◆ unsafe_impl_from_ID3D10Texture3D()

struct d3d_texture3d * unsafe_impl_from_ID3D10Texture3D ( ID3D10Texture3D *  iface)

Definition at line 1424 of file texture.c.

1425{
1426 if (!iface)
1427 return NULL;
1428 assert(iface->lpVtbl == &d3d10_texture3d_vtbl);
1429 return CONTAINING_RECORD(iface, struct d3d_texture3d, ID3D10Texture3D_iface);
1430}
static const struct ID3D10Texture3DVtbl d3d10_texture3d_vtbl
Definition: texture.c:1403

Referenced by wined3d_resource_from_d3d10_resource().

◆ unsafe_impl_from_ID3D10VertexShader()

struct d3d_vertex_shader * unsafe_impl_from_ID3D10VertexShader ( ID3D10VertexShader *  iface)

Definition at line 318 of file shader.c.

319{
320 if (!iface)
321 return NULL;
322 assert(iface->lpVtbl == &d3d10_vertex_shader_vtbl);
323
324 return impl_from_ID3D10VertexShader(iface);
325}
static struct d3d_vertex_shader * impl_from_ID3D10VertexShader(ID3D10VertexShader *iface)
Definition: shader.c:154
static const struct ID3D10VertexShaderVtbl d3d10_vertex_shader_vtbl
Definition: shader.c:232

Referenced by d3d10_device_VSSetShader().

◆ unsafe_impl_from_ID3D11Asynchronous()

struct d3d_query * unsafe_impl_from_ID3D11Asynchronous ( ID3D11Asynchronous *  iface)

Definition at line 199 of file async.c.

200{
201 return unsafe_impl_from_ID3D11Query((ID3D11Query *)iface);
202}
struct d3d_query * unsafe_impl_from_ID3D11Query(ID3D11Query *iface)
Definition: async.c:191

Referenced by d3d11_device_context_Begin(), d3d11_device_context_End(), and d3d11_device_context_GetData().

◆ unsafe_impl_from_ID3D11BlendState()

struct d3d_blend_state * unsafe_impl_from_ID3D11BlendState ( ID3D11BlendState *  iface)

Definition at line 469 of file state.c.

470{
471 if (!iface)
472 return NULL;
473 assert(iface->lpVtbl == (ID3D11BlendStateVtbl *)&d3d11_blend_state_vtbl);
474
476}
static struct d3d_blend_state * impl_from_ID3D11BlendState1(ID3D11BlendState1 *iface)

Referenced by d3d11_device_context_OMSetBlendState().

◆ unsafe_impl_from_ID3D11Buffer()

◆ unsafe_impl_from_ID3D11ComputeShader()

struct d3d11_compute_shader * unsafe_impl_from_ID3D11ComputeShader ( ID3D11ComputeShader *  iface)

Definition at line 1676 of file shader.c.

1677{
1678 if (!iface)
1679 return NULL;
1680 assert(iface->lpVtbl == &d3d11_compute_shader_vtbl);
1681
1682 return impl_from_ID3D11ComputeShader(iface);
1683}
static const struct ID3D11ComputeShaderVtbl d3d11_compute_shader_vtbl
Definition: shader.c:1601
static struct d3d11_compute_shader * impl_from_ID3D11ComputeShader(ID3D11ComputeShader *iface)
Definition: shader.c:1502

Referenced by d3d11_device_context_CSSetShader().

◆ unsafe_impl_from_ID3D11DepthStencilState()

struct d3d_depthstencil_state * unsafe_impl_from_ID3D11DepthStencilState ( ID3D11DepthStencilState *  iface)

Definition at line 870 of file state.c.

871{
872 if (!iface)
873 return NULL;
874 assert(iface->lpVtbl == &d3d11_depthstencil_state_vtbl);
875
877}
static struct d3d_depthstencil_state * impl_from_ID3D11DepthStencilState(ID3D11DepthStencilState *iface)

Referenced by d3d11_device_context_OMSetDepthStencilState().

◆ unsafe_impl_from_ID3D11DepthStencilView()

struct d3d_depthstencil_view * unsafe_impl_from_ID3D11DepthStencilView ( ID3D11DepthStencilView *  iface)

Definition at line 1337 of file view.c.

1338{
1339 if (!iface)
1340 return NULL;
1341 assert(iface->lpVtbl == &d3d11_depthstencil_view_vtbl);
1342
1344}
static const struct ID3D11DepthStencilViewVtbl d3d11_depthstencil_view_vtbl
Definition: view.c:1051
static struct d3d_depthstencil_view * impl_from_ID3D11DepthStencilView(ID3D11DepthStencilView *iface)
Definition: view.c:919

Referenced by d3d11_device_context_ClearDepthStencilView(), d3d11_device_context_OMSetRenderTargets(), and d3d11_device_context_OMSetRenderTargetsAndUnorderedAccessViews().

◆ unsafe_impl_from_ID3D11DomainShader()

struct d3d11_domain_shader * unsafe_impl_from_ID3D11DomainShader ( ID3D11DomainShader *  iface)

Definition at line 692 of file shader.c.

693{
694 if (!iface)
695 return NULL;
696 assert(iface->lpVtbl == &d3d11_domain_shader_vtbl);
697
698 return impl_from_ID3D11DomainShader(iface);
699}
static const struct ID3D11DomainShaderVtbl d3d11_domain_shader_vtbl
Definition: shader.c:617
static struct d3d11_domain_shader * impl_from_ID3D11DomainShader(ID3D11DomainShader *iface)
Definition: shader.c:516

Referenced by d3d11_device_context_DSSetShader().

◆ unsafe_impl_from_ID3D11GeometryShader()

struct d3d_geometry_shader * unsafe_impl_from_ID3D11GeometryShader ( ID3D11GeometryShader *  iface)

Definition at line 1181 of file shader.c.

1182{
1183 if (!iface)
1184 return NULL;
1185 assert(iface->lpVtbl == &d3d11_geometry_shader_vtbl);
1186
1187 return impl_from_ID3D11GeometryShader(iface);
1188}
static struct d3d_geometry_shader * impl_from_ID3D11GeometryShader(ID3D11GeometryShader *iface)
Definition: shader.c:703
static const struct ID3D11GeometryShaderVtbl d3d11_geometry_shader_vtbl
Definition: shader.c:814

Referenced by d3d11_device_context_GSSetShader().

◆ unsafe_impl_from_ID3D11HullShader()

struct d3d11_hull_shader * unsafe_impl_from_ID3D11HullShader ( ID3D11HullShader *  iface)

Definition at line 505 of file shader.c.

506{
507 if (!iface)
508 return NULL;
509 assert(iface->lpVtbl == &d3d11_hull_shader_vtbl);
510
511 return impl_from_ID3D11HullShader(iface);
512}
static const struct ID3D11HullShaderVtbl d3d11_hull_shader_vtbl
Definition: shader.c:430
static struct d3d11_hull_shader * impl_from_ID3D11HullShader(ID3D11HullShader *iface)
Definition: shader.c:329

Referenced by d3d11_device_context_HSSetShader().

◆ unsafe_impl_from_ID3D11InputLayout()

struct d3d_input_layout * unsafe_impl_from_ID3D11InputLayout ( ID3D11InputLayout *  iface)

Definition at line 412 of file inputlayout.c.

413{
414 if (!iface)
415 return NULL;
416 assert(iface->lpVtbl == &d3d11_input_layout_vtbl);
417
418 return impl_from_ID3D11InputLayout(iface);
419}
static struct d3d_input_layout * impl_from_ID3D11InputLayout(ID3D11InputLayout *iface)
Definition: inputlayout.c:119
static const struct ID3D11InputLayoutVtbl d3d11_input_layout_vtbl
Definition: inputlayout.c:227

Referenced by d3d11_device_context_IASetInputLayout().

◆ unsafe_impl_from_ID3D11PixelShader()

struct d3d_pixel_shader * unsafe_impl_from_ID3D11PixelShader ( ID3D11PixelShader *  iface)

Definition at line 1482 of file shader.c.

1483{
1484 if (!iface)
1485 return NULL;
1486 assert(iface->lpVtbl == &d3d11_pixel_shader_vtbl);
1487
1488 return impl_from_ID3D11PixelShader(iface);
1489}
static struct d3d_pixel_shader * impl_from_ID3D11PixelShader(ID3D11PixelShader *iface)
Definition: shader.c:1201
static const struct ID3D11PixelShaderVtbl d3d11_pixel_shader_vtbl
Definition: shader.c:1312

Referenced by d3d11_device_context_PSSetShader().

◆ unsafe_impl_from_ID3D11Query()

struct d3d_query * unsafe_impl_from_ID3D11Query ( ID3D11Query *  iface)

Definition at line 191 of file async.c.

192{
193 if (!iface)
194 return NULL;
195 assert(iface->lpVtbl == &d3d11_query_vtbl);
196 return CONTAINING_RECORD(iface, struct d3d_query, ID3D11Query_iface);
197}
static const struct ID3D11QueryVtbl d3d11_query_vtbl
Definition: async.c:161

Referenced by d3d11_device_context_SetPredication(), and unsafe_impl_from_ID3D11Asynchronous().

◆ unsafe_impl_from_ID3D11RasterizerState()

struct d3d_rasterizer_state * unsafe_impl_from_ID3D11RasterizerState ( ID3D11RasterizerState *  iface)

Definition at line 1269 of file state.c.

1270{
1271 if (!iface)
1272 return NULL;
1273 assert(iface->lpVtbl == (ID3D11RasterizerStateVtbl *)&d3d11_rasterizer_state_vtbl);
1274
1276}
static const struct ID3D11RasterizerState1Vtbl d3d11_rasterizer_state_vtbl
Definition: state.c:1020
static struct d3d_rasterizer_state * impl_from_ID3D11RasterizerState1(ID3D11RasterizerState1 *iface)
Definition: state.c:890

Referenced by d3d11_device_context_RSSetState().

◆ unsafe_impl_from_ID3D11RenderTargetView()

struct d3d_rendertarget_view * unsafe_impl_from_ID3D11RenderTargetView ( ID3D11RenderTargetView *  iface)

Definition at line 1778 of file view.c.

1779{
1780 if (!iface)
1781 return NULL;
1782 assert(iface->lpVtbl == &d3d11_rendertarget_view_vtbl);
1783
1785}
static struct d3d_rendertarget_view * impl_from_ID3D11RenderTargetView(ID3D11RenderTargetView *iface)
Definition: view.c:1357
static const struct ID3D11RenderTargetViewVtbl d3d11_rendertarget_view_vtbl
Definition: view.c:1489

Referenced by d3d11_device_context_ClearRenderTargetView(), d3d11_device_context_OMSetRenderTargets(), and d3d11_device_context_OMSetRenderTargetsAndUnorderedAccessViews().

◆ unsafe_impl_from_ID3D11SamplerState()

struct d3d_sampler_state * unsafe_impl_from_ID3D11SamplerState ( ID3D11SamplerState *  iface)

Definition at line 1682 of file state.c.

1683{
1684 if (!iface)
1685 return NULL;
1686 assert(iface->lpVtbl == &d3d11_sampler_state_vtbl);
1687
1688 return impl_from_ID3D11SamplerState(iface);
1689}
static struct d3d_sampler_state * impl_from_ID3D11SamplerState(ID3D11SamplerState *iface)
Definition: state.c:1289
static const struct ID3D11SamplerStateVtbl d3d11_sampler_state_vtbl
Definition: state.c:1408

Referenced by d3d11_device_context_set_samplers().

◆ unsafe_impl_from_ID3D11ShaderResourceView()

struct d3d_shader_resource_view * unsafe_impl_from_ID3D11ShaderResourceView ( ID3D11ShaderResourceView *  iface)

Definition at line 2272 of file view.c.

2273{
2274 if (!iface)
2275 return NULL;
2276 assert(iface->lpVtbl == &d3d11_shader_resource_view_vtbl);
2278}
static const struct ID3D11ShaderResourceViewVtbl d3d11_shader_resource_view_vtbl
Definition: view.c:1931
static struct d3d_shader_resource_view * impl_from_ID3D11ShaderResourceView(ID3D11ShaderResourceView *iface)
Definition: view.c:1798

Referenced by d3d11_device_context_GenerateMips(), and d3d11_device_context_set_shader_resource_views().

◆ unsafe_impl_from_ID3D11Texture1D()

struct d3d_texture1d * unsafe_impl_from_ID3D11Texture1D ( ID3D11Texture1D *  iface)

Definition at line 216 of file texture.c.

217{
218 if (!iface)
219 return NULL;
220 assert(iface->lpVtbl == &d3d11_texture1d_vtbl);
221 return CONTAINING_RECORD(iface, struct d3d_texture1d, ID3D11Texture1D_iface);
222}

Referenced by get_resource_properties(), and wined3d_resource_from_d3d11_resource().

◆ unsafe_impl_from_ID3D11Texture2D()

struct d3d_texture2d * unsafe_impl_from_ID3D11Texture2D ( ID3D11Texture2D *  iface)

Definition at line 718 of file texture.c.

719{
720 if (!iface)
721 return NULL;
722 assert(iface->lpVtbl == &d3d11_texture2d_vtbl);
723 return CONTAINING_RECORD(iface, struct d3d_texture2d, ID3D11Texture2D_iface);
724}

Referenced by get_resource_properties(), and wined3d_resource_from_d3d11_resource().

◆ unsafe_impl_from_ID3D11Texture3D()

struct d3d_texture3d * unsafe_impl_from_ID3D11Texture3D ( ID3D11Texture3D *  iface)

Definition at line 1432 of file texture.c.

1433{
1434 if (!iface)
1435 return NULL;
1436 assert(iface->lpVtbl == &d3d11_texture3d_vtbl);
1437 return impl_from_ID3D11Texture3D(iface);
1438}
static const struct ID3D11Texture3DVtbl d3d11_texture3d_vtbl
Definition: texture.c:1238
static struct d3d_texture3d * impl_from_ID3D11Texture3D(ID3D11Texture3D *iface)
Definition: texture.c:1059

Referenced by get_resource_properties(), and wined3d_resource_from_d3d11_resource().

◆ unsafe_impl_from_ID3D11UnorderedAccessView()

struct d3d11_unordered_access_view * unsafe_impl_from_ID3D11UnorderedAccessView ( ID3D11UnorderedAccessView *  iface)

Definition at line 2575 of file view.c.

2576{
2577 if (!iface)
2578 return NULL;
2579 assert(iface->lpVtbl == &d3d11_unordered_access_view_vtbl);
2580
2582}
static const struct ID3D11UnorderedAccessViewVtbl d3d11_unordered_access_view_vtbl
Definition: view.c:2408
static struct d3d11_unordered_access_view * impl_from_ID3D11UnorderedAccessView(ID3D11UnorderedAccessView *iface)
Definition: view.c:2290

Referenced by d3d11_device_context_ClearUnorderedAccessViewFloat(), d3d11_device_context_ClearUnorderedAccessViewUint(), d3d11_device_context_CopyStructureCount(), d3d11_device_context_CSSetUnorderedAccessViews(), and d3d11_device_context_OMSetRenderTargetsAndUnorderedAccessViews().

◆ unsafe_impl_from_ID3D11VertexShader()

struct d3d_vertex_shader * unsafe_impl_from_ID3D11VertexShader ( ID3D11VertexShader *  iface)

Definition at line 309 of file shader.c.

310{
311 if (!iface)
312 return NULL;
313 assert(iface->lpVtbl == &d3d11_vertex_shader_vtbl);
314
315 return impl_from_ID3D11VertexShader(iface);
316}
static struct d3d_vertex_shader * impl_from_ID3D11VertexShader(ID3D11VertexShader *iface)
Definition: shader.c:27
static const struct ID3D11VertexShaderVtbl d3d11_vertex_shader_vtbl
Definition: shader.c:139

Referenced by d3d11_device_context_VSSetShader().

◆ validate_d3d11_resource_access_flags()

BOOL validate_d3d11_resource_access_flags ( D3D11_RESOURCE_DIMENSION  resource_dimension,
D3D11_USAGE  usage,
UINT  bind_flags,
UINT  cpu_access_flags,
D3D_FEATURE_LEVEL  feature_level 
)

Definition at line 601 of file utils.c.

603{
604 const BOOL is_texture = resource_dimension != D3D11_RESOURCE_DIMENSION_BUFFER;
605
606 switch (usage)
607 {
608 case D3D11_USAGE_DEFAULT:
609 if ((bind_flags == D3D11_BIND_SHADER_RESOURCE && feature_level >= D3D_FEATURE_LEVEL_11_0)
610 || (is_texture && bind_flags == D3D11_BIND_RENDER_TARGET)
611 || bind_flags == D3D11_BIND_UNORDERED_ACCESS)
612 break;
613 if (cpu_access_flags)
614 {
615 WARN("Default resources are not CPU accessible.\n");
616 return FALSE;
617 }
618 break;
619
620 case D3D11_USAGE_IMMUTABLE:
621 if (!bind_flags)
622 {
623 WARN("Bind flags must be non-zero for immutable resources.\n");
624 return FALSE;
625 }
626 if (!d3d11_bind_flags_are_gpu_read_only(bind_flags))
627 {
628 WARN("Immutable resources cannot be writable by GPU.\n");
629 return FALSE;
630 }
631
632 if (cpu_access_flags)
633 {
634 WARN("Immutable resources are not CPU accessible.\n");
635 return FALSE;
636 }
637 break;
638
639 case D3D11_USAGE_DYNAMIC:
640 if (!bind_flags)
641 {
642 WARN("Bind flags must be non-zero for dynamic resources.\n");
643 return FALSE;
644 }
645 if (!d3d11_bind_flags_are_gpu_read_only(bind_flags))
646 {
647 WARN("Dynamic resources cannot be writable by GPU.\n");
648 return FALSE;
649 }
650
651 if (cpu_access_flags != D3D11_CPU_ACCESS_WRITE)
652 {
653 WARN("CPU access must be D3D11_CPU_ACCESS_WRITE for dynamic resources.\n");
654 return FALSE;
655 }
656 break;
657
658 case D3D11_USAGE_STAGING:
659 if (bind_flags)
660 {
661 WARN("Invalid bind flags %#x for staging resources.\n", bind_flags);
662 return FALSE;
663 }
664
665 if (!cpu_access_flags)
666 {
667 WARN("CPU access must be non-zero for staging resources.\n");
668 return FALSE;
669 }
670 break;
671
672 default:
673 WARN("Invalid usage %#x.\n", usage);
674 return FALSE;
675 }
676
677 return TRUE;
678}
@ D3D_FEATURE_LEVEL_11_0
Definition: d3dcommon.idl:109
static BOOL d3d11_bind_flags_are_gpu_read_only(UINT bind_flags)
Definition: utils.c:592

Referenced by validate_buffer_desc(), and validate_texture2d_desc().

◆ wined3d_access_from_d3d11()

unsigned int wined3d_access_from_d3d11 ( D3D11_USAGE  usage,
UINT  cpu_access 
)

Definition at line 788 of file utils.c.

789{
790 unsigned int access;
791
793 if (cpu_access & D3D11_CPU_ACCESS_WRITE)
795 if (cpu_access & D3D11_CPU_ACCESS_READ)
797 if (cpu_access &= ~(D3D11_CPU_ACCESS_WRITE | D3D11_CPU_ACCESS_READ))
798 FIXME("Unhandled CPU access flags %#x.\n", cpu_access);
799
800 return access;
801}
GLuint GLint GLboolean GLint GLenum access
Definition: glext.h:7866
#define WINED3D_RESOURCE_ACCESS_GPU
Definition: wined3d.h:51
#define WINED3D_RESOURCE_ACCESS_CPU
Definition: wined3d.h:52
#define WINED3D_RESOURCE_ACCESS_MAP_R
Definition: wined3d.h:53
#define WINED3D_RESOURCE_ACCESS_MAP_W
Definition: wined3d.h:54

Referenced by d3d_buffer_init(), d3d_texture1d_create(), d3d_texture2d_create(), and d3d_texture3d_init().

◆ wined3d_bind_flags_from_d3d11()

static unsigned int wined3d_bind_flags_from_d3d11 ( UINT  bind_flags,
UINT  misc_flags 
)
inlinestatic

Definition at line 85 of file d3d11_private.h.

86{
87 unsigned int wined3d_flags = bind_flags & (D3D11_BIND_VERTEX_BUFFER
88 | D3D11_BIND_INDEX_BUFFER
89 | D3D11_BIND_CONSTANT_BUFFER
90 | D3D11_BIND_SHADER_RESOURCE
91 | D3D11_BIND_STREAM_OUTPUT
92 | D3D11_BIND_RENDER_TARGET
93 | D3D11_BIND_DEPTH_STENCIL
94 | D3D11_BIND_UNORDERED_ACCESS);
95
97 wined3d_flags |= WINED3D_BIND_INDIRECT_BUFFER;
98
99 return wined3d_flags;
100}
#define WINED3D_BIND_INDIRECT_BUFFER
Definition: wined3d.h:917

Referenced by d3d_buffer_init(), d3d_texture1d_create(), d3d_texture2d_create(), and d3d_texture3d_init().

◆ wined3d_clear_flags_from_d3d11_clear_flags()

DWORD wined3d_clear_flags_from_d3d11_clear_flags ( UINT  clear_flags)

Definition at line 770 of file utils.c.

771{
772 DWORD wined3d_clear_flags = 0;
773
774 if (clear_flags & D3D11_CLEAR_DEPTH)
775 wined3d_clear_flags |= WINED3DCLEAR_ZBUFFER;
776 if (clear_flags & D3D11_CLEAR_STENCIL)
777 wined3d_clear_flags |= WINED3DCLEAR_STENCIL;
778
779 if (clear_flags & ~(D3D11_CLEAR_DEPTH | D3D11_CLEAR_STENCIL))
780 {
781 FIXME("Unhandled clear flags %#x.\n",
782 clear_flags & ~(D3D11_CLEAR_DEPTH | D3D11_CLEAR_STENCIL));
783 }
784
785 return wined3d_clear_flags;
786}
#define WINED3DCLEAR_STENCIL
Definition: wined3d.h:1010
#define WINED3DCLEAR_ZBUFFER
Definition: wined3d.h:1009

Referenced by d3d10_device_ClearDepthStencilView(), and d3d11_device_context_ClearDepthStencilView().

◆ wined3d_getdata_flags_from_d3d11_async_getdata_flags()

unsigned int wined3d_getdata_flags_from_d3d11_async_getdata_flags ( unsigned int  d3d11_flags)

Definition at line 436 of file utils.c.

437{
438 if (d3d11_flags & ~D3D11_ASYNC_GETDATA_DONOTFLUSH)
439 FIXME("Unhandled async getdata flags %#x.\n", d3d11_flags);
440
441 if (d3d11_flags & D3D11_ASYNC_GETDATA_DONOTFLUSH)
442 return 0;
443
445}
@ D3D11_ASYNC_GETDATA_DONOTFLUSH
Definition: d3d11.idl:1029
#define WINED3DGETDATA_FLUSH
Definition: wined3d.h:783

Referenced by d3d10_query_GetData(), and d3d11_device_context_GetData().

◆ wined3d_map_flags_from_d3d10_map_type()

DWORD wined3d_map_flags_from_d3d10_map_type ( D3D10_MAP  map_type)

Definition at line 765 of file utils.c.

766{
768}
D3D11_MAP
Definition: d3d11.idl:971
DWORD wined3d_map_flags_from_d3d11_map_type(D3D11_MAP map_type)
Definition: utils.c:740
static VARTYPE map_type(struct string_t *str)

Referenced by d3d10_buffer_Map(), d3d10_texture1d_Map(), d3d10_texture2d_Map(), and d3d10_texture3d_Map().

◆ wined3d_map_flags_from_d3d11_map_type()

DWORD wined3d_map_flags_from_d3d11_map_type ( D3D11_MAP  map_type)

Definition at line 740 of file utils.c.

741{
742 switch (map_type)
743 {
744 case D3D11_MAP_WRITE:
745 return WINED3D_MAP_WRITE;
746
749
750 case D3D11_MAP_READ:
751 return WINED3D_MAP_READ;
752
755
758
759 default:
760 FIXME("Unhandled map_type %#x.\n", map_type);
762 }
763}
@ D3D11_MAP_READ
Definition: d3d11.idl:972
@ D3D11_MAP_WRITE
Definition: d3d11.idl:973
@ D3D11_MAP_WRITE_NO_OVERWRITE
Definition: d3d11.idl:976
@ D3D11_MAP_WRITE_DISCARD
Definition: d3d11.idl:975
@ D3D11_MAP_READ_WRITE
Definition: d3d11.idl:974
#define WINED3D_MAP_READ
Definition: wined3d.h:957
#define WINED3D_MAP_DISCARD
Definition: wined3d.h:953
#define WINED3D_MAP_WRITE
Definition: wined3d.h:956
#define WINED3D_MAP_NOOVERWRITE
Definition: wined3d.h:952

Referenced by d3d11_device_context_Map(), and wined3d_map_flags_from_d3d10_map_type().

◆ wined3d_primitive_type_from_d3d11_primitive_topology()

void wined3d_primitive_type_from_d3d11_primitive_topology ( D3D11_PRIMITIVE_TOPOLOGY  topology,
enum wined3d_primitive_type *  type,
unsigned int *  patch_vertex_count 
)

Definition at line 187 of file utils.c.

189{
191 {
192 *type = (enum wined3d_primitive_type)topology;
193 *patch_vertex_count = 0;
194 return;
195 }
196
199 {
201 *patch_vertex_count = topology - D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST + 1;
202 return;
203 }
204
205 WARN("Invalid primitive topology %#x.\n", topology);
207 *patch_vertex_count = 0;
208}
@ D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST
Definition: d3dcommon.idl:478
@ D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ
Definition: d3dcommon.idl:446
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
wined3d_primitive_type
Definition: wined3d.h:74
@ WINED3D_PT_UNDEFINED
Definition: wined3d.h:75

Referenced by d3d11_device_context_IASetPrimitiveTopology().

◆ wined3d_resource_from_d3d10_resource()

struct wined3d_resource * wined3d_resource_from_d3d10_resource ( ID3D10Resource *  resource)

Definition at line 710 of file utils.c.

711{
712 D3D10_RESOURCE_DIMENSION dimension;
713
714 ID3D10Resource_GetType(resource, &dimension);
715
716 switch (dimension)
717 {
721
725
729
733
734 default:
735 FIXME("Unhandled resource dimension %#x.\n", dimension);
736 return NULL;
737 }
738}
D3D10_RESOURCE_DIMENSION
Definition: d3d10.idl:452
@ D3D10_RESOURCE_DIMENSION_TEXTURE1D
Definition: d3d10.idl:455
@ D3D10_RESOURCE_DIMENSION_BUFFER
Definition: d3d10.idl:454
@ D3D10_RESOURCE_DIMENSION_TEXTURE3D
Definition: d3d10.idl:457
@ D3D10_RESOURCE_DIMENSION_TEXTURE2D
Definition: d3d10.idl:456
struct d3d_texture2d * unsafe_impl_from_ID3D10Texture2D(ID3D10Texture2D *iface)
Definition: texture.c:907
struct d3d_texture3d * unsafe_impl_from_ID3D10Texture3D(ID3D10Texture3D *iface)
Definition: texture.c:1424
struct d3d_texture1d * unsafe_impl_from_ID3D10Texture1D(ID3D10Texture1D *iface)
Definition: texture.c:403
struct d3d_buffer * unsafe_impl_from_ID3D10Buffer(ID3D10Buffer *iface)
Definition: buffer.c:386
struct wined3d_resource *CDECL wined3d_buffer_get_resource(struct wined3d_buffer *buffer)
Definition: buffer.c:520

Referenced by d3d10_device_CopyResource(), d3d10_device_CopySubresourceRegion(), and d3d10_device_ResolveSubresource().

◆ wined3d_resource_from_d3d11_resource()

struct wined3d_resource * wined3d_resource_from_d3d11_resource ( ID3D11Resource *  resource)

Definition at line 680 of file utils.c.

681{
682 D3D11_RESOURCE_DIMENSION dimension;
683
684 ID3D11Resource_GetType(resource, &dimension);
685
686 switch (dimension)
687 {
688 case D3D11_RESOURCE_DIMENSION_BUFFER:
690 (ID3D11Buffer *)resource)->wined3d_buffer);
691
692 case D3D11_RESOURCE_DIMENSION_TEXTURE1D:
694 (ID3D11Texture1D *)resource)->wined3d_texture);
695
696 case D3D11_RESOURCE_DIMENSION_TEXTURE2D:
698 (ID3D11Texture2D *)resource)->wined3d_texture);
699
700 case D3D11_RESOURCE_DIMENSION_TEXTURE3D:
702 (ID3D11Texture3D *)resource)->wined3d_texture);
703
704 default:
705 FIXME("Unhandled resource dimension %#x.\n", dimension);
706 return NULL;
707 }
708}
struct d3d_texture2d * unsafe_impl_from_ID3D11Texture2D(ID3D11Texture2D *iface)
Definition: texture.c:718
struct d3d_texture3d * unsafe_impl_from_ID3D11Texture3D(ID3D11Texture3D *iface)
Definition: texture.c:1432
struct d3d_texture1d * unsafe_impl_from_ID3D11Texture1D(ID3D11Texture1D *iface)
Definition: texture.c:216
struct d3d_buffer * unsafe_impl_from_ID3D11Buffer(ID3D11Buffer *iface)
Definition: buffer.c:214

Referenced by d3d11_device_context_CopyResource(), d3d11_device_context_CopySubresourceRegion(), d3d11_device_context_CopySubresourceRegion1(), d3d11_device_context_Map(), d3d11_device_context_ResolveSubresource(), d3d11_device_context_Unmap(), d3d11_device_context_UpdateSubresource(), d3d11_device_context_UpdateSubresource1(), d3d11_unordered_access_view_init(), d3d_depthstencil_view_init(), d3d_rendertarget_view_init(), and d3d_shader_resource_view_init().

◆ wined3d_usage_from_d3d11()

DWORD wined3d_usage_from_d3d11 ( enum D3D11_USAGE  usage)

Definition at line 447 of file utils.c.

448{
449 DWORD wined3d_usage = 0;
450
451 if (usage == D3D11_USAGE_DYNAMIC)
452 wined3d_usage |= WINED3DUSAGE_DYNAMIC;
453
454 return wined3d_usage;
455}
#define WINED3DUSAGE_DYNAMIC
Definition: wined3d.h:924

Referenced by d3d_buffer_init(), d3d_texture1d_create(), d3d_texture2d_create(), and d3d_texture3d_init().

◆ wined3dformat_from_dxgi_format()

enum wined3d_format_id wined3dformat_from_dxgi_format ( DXGI_FORMAT  format)

Definition at line 323 of file utils.c.

324{
325 switch(format)
326 {
430 default:
431 FIXME("Unhandled DXGI_FORMAT %#x.\n", format);
432 return WINED3DFMT_UNKNOWN;
433 }
434}

Referenced by d3d10_device_IASetIndexBuffer(), d3d10_device_ResolveSubresource(), d3d11_device_CheckFormatSupport(), d3d11_device_CheckMultisampleQualityLevels(), d3d11_device_context_IASetIndexBuffer(), d3d11_device_context_ResolveSubresource(), d3d11_input_layout_to_wined3d_declaration(), d3d11_swapchain_ResizeBuffers(), d3d_texture1d_create(), d3d_texture2d_create(), d3d_texture3d_init(), dxgi_device_CreateSurface(), dxgi_output_get_display_mode_list(), wined3d_depth_stencil_view_desc_from_d3d11(), wined3d_rendertarget_view_desc_from_d3d11(), wined3d_shader_resource_view_desc_from_d3d11(), and wined3d_unordered_access_view_desc_from_d3d11().