43 ID3D11Buffer_AddRef(iface);
52 ID3D10Buffer_AddRef(&
buffer->ID3D10Buffer_iface);
75 ID3D11Device2_AddRef(
buffer->device);
96 ID3D11Device2_Release(
device);
109 ID3D11Device_AddRef(*
device);
167 D3D11_RESOURCE_DIMENSION *resource_dimension)
169 TRACE(
"iface %p, resource_dimension %p.\n", iface, resource_dimension);
171 *resource_dimension = D3D11_RESOURCE_DIMENSION_BUFFER;
176 FIXME(
"iface %p, eviction_priority %#x stub!\n", iface, eviction_priority);
181 FIXME(
"iface %p stub!\n", iface);
190 TRACE(
"iface %p, desc %p.\n", iface,
desc);
244 TRACE(
"iface %p.\n", iface);
253 TRACE(
"iface %p.\n", iface);
266 ID3D11Device2_QueryInterface(
buffer->device, &IID_ID3D10Device, (
void **)
device);
274 TRACE(
"iface %p, guid %s, data_size %p, data %p.\n",
285 TRACE(
"iface %p, guid %s, data_size %u, data %p.\n",
305 TRACE(
"iface %p, resource_dimension %p\n", iface, resource_dimension);
312 FIXME(
"iface %p, eviction_priority %u stub!\n", iface, eviction_priority);
317 FIXME(
"iface %p stub!\n", iface);
330 TRACE(
"iface %p, map_type %u, map_flags %#x, data %p.\n", iface,
map_type, map_flags,
data);
333 FIXME(
"Ignoring map_flags %#x.\n", map_flags);
346 TRACE(
"iface %p.\n", iface);
354 const D3D11_BUFFER_DESC *d3d11_desc = &
buffer->desc;
356 TRACE(
"iface %p, desc %p.\n", iface,
desc);
358 desc->ByteWidth = d3d11_desc->ByteWidth;
398 if (
buffer->dxgi_resource) IUnknown_Release(
buffer->dxgi_resource);
410 desc->Usage,
desc->BindFlags,
desc->CPUAccessFlags, feature_level))
417 WARN(
"Raw and structure buffers are mutually exclusive.\n");
420 if (!(
desc->BindFlags & (D3D11_BIND_SHADER_RESOURCE | D3D11_BIND_UNORDERED_ACCESS)))
422 WARN(
"Invalid bind flags %#x for raw buffer.\n",
desc->BindFlags);
429 if (!
desc->StructureByteStride ||
desc->StructureByteStride % 4)
431 WARN(
"Invalid structure byte stride %u.\n",
desc->StructureByteStride);
434 if (
desc->ByteWidth %
desc->StructureByteStride)
436 WARN(
"Byte width %u is not divisible by structure byte stride %u.\n",
437 desc->ByteWidth,
desc->StructureByteStride);
443 desc->StructureByteStride = 0;
448 WARN(
"Buffer with the D3D11_RESOURCE_MISC_GENERATE_MIPS flag.\n");
456 const D3D11_BUFFER_DESC *
desc,
const D3D11_SUBRESOURCE_DATA *
data)
482 WARN(
"Failed to create wined3d buffer, hr %#lx.\n",
hr);
492 ERR(
"Failed to create DXGI resource, returning %#.lx\n",
hr);
499 ID3D11Device2_AddRef(
buffer->device = &
device->ID3D11Device2_iface);
510 if (!(
object =
calloc(1,
sizeof(*
object))))
515 WARN(
"Failed to initialise buffer, hr %#lx.\n",
hr);
520 TRACE(
"Created buffer %p.\n",
object);
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define STDMETHODCALLTYPE
@ D3D10_RESOURCE_DIMENSION_BUFFER
@ D3D11_RESOURCE_MISC_BUFFER_STRUCTURED
@ D3D11_RESOURCE_MISC_GENERATE_MIPS
@ D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS
UINT d3d10_bind_flags_from_d3d11_bind_flags(UINT bind_flags)
static unsigned int wined3d_bind_flags_from_d3d11(UINT bind_flags, UINT 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)
enum D3D10_USAGE d3d10_usage_from_d3d11_usage(enum D3D11_USAGE usage)
UINT d3d10_cpu_access_flags_from_d3d11_cpu_access_flags(UINT cpu_access_flags)
DWORD wined3d_usage_from_d3d11(enum D3D11_USAGE usage)
UINT d3d10_resource_misc_flags_from_d3d11_resource_misc_flags(UINT resource_misc_flags)
HRESULT d3d_device_create_dxgi_resource(IUnknown *device, struct wined3d_resource *wined3d_resource, IUnknown *outer, BOOL needs_surface, IUnknown **dxgi_resource)
unsigned int wined3d_access_from_d3d11(D3D11_USAGE usage, UINT cpu_access)
DWORD wined3d_map_flags_from_d3d10_map_type(D3D10_MAP map_type)
static ULONG STDMETHODCALLTYPE d3d11_buffer_Release(ID3D11Buffer *iface)
static HRESULT STDMETHODCALLTYPE d3d10_buffer_SetPrivateData(ID3D10Buffer *iface, REFGUID guid, UINT data_size, const void *data)
static void STDMETHODCALLTYPE d3d10_buffer_SetEvictionPriority(ID3D10Buffer *iface, UINT eviction_priority)
static HRESULT STDMETHODCALLTYPE d3d11_buffer_QueryInterface(ID3D11Buffer *iface, REFIID riid, void **out)
static HRESULT STDMETHODCALLTYPE d3d11_buffer_SetPrivateData(ID3D11Buffer *iface, REFGUID guid, UINT data_size, const void *data)
static void STDMETHODCALLTYPE d3d10_buffer_Unmap(ID3D10Buffer *iface)
static HRESULT STDMETHODCALLTYPE d3d10_buffer_GetPrivateData(ID3D10Buffer *iface, REFGUID guid, UINT *data_size, void *data)
static const struct ID3D11BufferVtbl d3d11_buffer_vtbl
static struct d3d_buffer * impl_from_ID3D11Buffer(ID3D11Buffer *iface)
static void STDMETHODCALLTYPE d3d10_buffer_GetDevice(ID3D10Buffer *iface, ID3D10Device **device)
static ULONG STDMETHODCALLTYPE d3d11_buffer_AddRef(ID3D11Buffer *iface)
struct d3d_buffer * unsafe_impl_from_ID3D10Buffer(ID3D10Buffer *iface)
static void STDMETHODCALLTYPE d3d10_buffer_GetDesc(ID3D10Buffer *iface, D3D10_BUFFER_DESC *desc)
static HRESULT STDMETHODCALLTYPE d3d10_buffer_Map(ID3D10Buffer *iface, D3D10_MAP map_type, UINT map_flags, void **data)
static HRESULT d3d_buffer_init(struct d3d_buffer *buffer, struct d3d_device *device, const D3D11_BUFFER_DESC *desc, const D3D11_SUBRESOURCE_DATA *data)
static void STDMETHODCALLTYPE d3d11_buffer_SetEvictionPriority(ID3D11Buffer *iface, UINT eviction_priority)
static void STDMETHODCALLTYPE d3d_buffer_wined3d_object_released(void *parent)
static HRESULT STDMETHODCALLTYPE d3d10_buffer_QueryInterface(ID3D10Buffer *iface, REFIID riid, void **out)
static struct d3d_buffer * impl_from_ID3D10Buffer(ID3D10Buffer *iface)
static HRESULT STDMETHODCALLTYPE d3d11_buffer_SetPrivateDataInterface(ID3D11Buffer *iface, REFGUID guid, const IUnknown *data)
static void STDMETHODCALLTYPE d3d11_buffer_GetDevice(ID3D11Buffer *iface, ID3D11Device **device)
static void STDMETHODCALLTYPE d3d11_buffer_GetType(ID3D11Buffer *iface, D3D11_RESOURCE_DIMENSION *resource_dimension)
struct d3d_buffer * unsafe_impl_from_ID3D11Buffer(ID3D11Buffer *iface)
static BOOL validate_buffer_desc(D3D11_BUFFER_DESC *desc, D3D_FEATURE_LEVEL feature_level)
static UINT STDMETHODCALLTYPE d3d10_buffer_GetEvictionPriority(ID3D10Buffer *iface)
static HRESULT STDMETHODCALLTYPE d3d11_buffer_GetPrivateData(ID3D11Buffer *iface, REFGUID guid, UINT *data_size, void *data)
HRESULT d3d_buffer_create(struct d3d_device *device, const D3D11_BUFFER_DESC *desc, const D3D11_SUBRESOURCE_DATA *data, struct d3d_buffer **buffer)
static UINT STDMETHODCALLTYPE d3d11_buffer_GetEvictionPriority(ID3D11Buffer *iface)
static ULONG STDMETHODCALLTYPE d3d10_buffer_AddRef(ID3D10Buffer *iface)
static void STDMETHODCALLTYPE d3d10_buffer_GetType(ID3D10Buffer *iface, D3D10_RESOURCE_DIMENSION *resource_dimension)
static ULONG STDMETHODCALLTYPE d3d10_buffer_Release(ID3D10Buffer *iface)
static const struct wined3d_parent_ops d3d_buffer_wined3d_parent_ops
static const struct ID3D10BufferVtbl d3d10_buffer_vtbl
static HRESULT STDMETHODCALLTYPE d3d10_buffer_SetPrivateDataInterface(ID3D10Buffer *iface, REFGUID guid, const IUnknown *data)
static void STDMETHODCALLTYPE d3d11_buffer_GetDesc(ID3D11Buffer *iface, D3D11_BUFFER_DESC *desc)
HRESULT CDECL wined3d_buffer_create(struct wined3d_device *device, const struct wined3d_buffer_desc *desc, const struct wined3d_sub_resource_data *data, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_buffer **buffer)
ULONG CDECL wined3d_buffer_incref(struct wined3d_buffer *buffer)
ULONG CDECL wined3d_buffer_decref(struct wined3d_buffer *buffer)
struct wined3d_resource *CDECL wined3d_buffer_get_resource(struct wined3d_buffer *buffer)
HRESULT CDECL wined3d_resource_unmap(struct wined3d_resource *resource, unsigned int sub_resource_idx)
HRESULT CDECL wined3d_resource_map(struct wined3d_resource *resource, unsigned int sub_resource_idx, struct wined3d_map_desc *map_desc, const struct wined3d_box *box, uint32_t flags)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
D3D11_SHADER_VARIABLE_DESC desc
#define IsEqualGUID(rguid1, rguid2)
ID3D10Buffer ID3D10Buffer_iface
ID3D11Buffer ID3D11Buffer_iface
unsigned int structure_byte_stride
#define CONTAINING_RECORD(address, type, field)
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
void WINAPI wined3d_mutex_unlock(void)
void WINAPI wined3d_mutex_lock(void)