mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 09:08:10 +02:00
st/nine: Add new helper for object creation with bind
Add a new helper to create objects starting with a bind count instead of a ref count. Signed-off-by: Axel Davy <davyaxel0@gmail.com>
This commit is contained in:
parent
fd86ce7c14
commit
e83b15cba0
1 changed files with 26 additions and 0 deletions
|
|
@ -99,6 +99,32 @@ static inline void _nine_bind(void **dst, void *obj)
|
|||
} \
|
||||
return D3D_OK
|
||||
|
||||
#define NINE_DEVICE_CHILD_BIND_NEW(nine, out, dev, ...) \
|
||||
{ \
|
||||
struct NineUnknownParams __params; \
|
||||
struct Nine##nine *__data; \
|
||||
\
|
||||
__data = CALLOC_STRUCT(Nine##nine); \
|
||||
if (!__data) { return E_OUTOFMEMORY; } \
|
||||
\
|
||||
__params.vtable = ((dev)->params.BehaviorFlags & D3DCREATE_MULTITHREADED) ? &Lock##nine##_vtable : &Nine##nine##_vtable; \
|
||||
__params.guids = Nine##nine##_IIDs; \
|
||||
__params.dtor = (void *)Nine##nine##_dtor; \
|
||||
__params.container = NULL; \
|
||||
__params.device = dev; \
|
||||
__params.start_with_bind_not_ref = true; \
|
||||
{ \
|
||||
HRESULT __hr = Nine##nine##_ctor(__data, &__params, ## __VA_ARGS__); \
|
||||
if (FAILED(__hr)) { \
|
||||
Nine##nine##_dtor(__data); \
|
||||
return __hr; \
|
||||
} \
|
||||
} \
|
||||
\
|
||||
*(out) = __data; \
|
||||
} \
|
||||
return D3D_OK
|
||||
|
||||
#define NINE_NEW(nine, out, lock, ...) \
|
||||
{ \
|
||||
struct NineUnknownParams __params; \
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue