mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 13:58:04 +02:00
st/nine: Add parameter to start with bind
Add a parameter to start new object with a bind instead of a refcount. Signed-off-by: Axel Davy <davyaxel0@gmail.com>
This commit is contained in:
parent
a9bf82ecf4
commit
fd86ce7c14
3 changed files with 18 additions and 3 deletions
|
|
@ -34,9 +34,21 @@ HRESULT
|
|||
NineUnknown_ctor( struct NineUnknown *This,
|
||||
struct NineUnknownParams *pParams )
|
||||
{
|
||||
This->refs = pParams->container ? 0 : 1;
|
||||
This->bind = 0;
|
||||
This->forward = !This->refs;
|
||||
if (pParams->container) {
|
||||
This->refs = 0;
|
||||
This->forward = true;
|
||||
This->bind = 0;
|
||||
assert(!pParams->start_with_bind_not_ref);
|
||||
} else if (pParams->start_with_bind_not_ref) {
|
||||
This->refs = 0;
|
||||
This->forward = false;
|
||||
This->bind = 1;
|
||||
} else {
|
||||
This->refs = 1;
|
||||
This->forward = false;
|
||||
This->bind = 0;
|
||||
}
|
||||
|
||||
This->container = pParams->container;
|
||||
This->device = pParams->device;
|
||||
if (This->refs && This->device)
|
||||
|
|
|
|||
|
|
@ -78,6 +78,7 @@ struct NineUnknownParams
|
|||
void (*dtor)(void *data);
|
||||
struct NineUnknown *container;
|
||||
struct NineDevice9 *device;
|
||||
bool start_with_bind_not_ref;
|
||||
};
|
||||
|
||||
HRESULT
|
||||
|
|
|
|||
|
|
@ -86,6 +86,7 @@ static inline void _nine_bind(void **dst, void *obj)
|
|||
__params.dtor = (void *)Nine##nine##_dtor; \
|
||||
__params.container = NULL; \
|
||||
__params.device = dev; \
|
||||
__params.start_with_bind_not_ref = false; \
|
||||
{ \
|
||||
HRESULT __hr = Nine##nine##_ctor(__data, &__params, ## __VA_ARGS__); \
|
||||
if (FAILED(__hr)) { \
|
||||
|
|
@ -111,6 +112,7 @@ static inline void _nine_bind(void **dst, void *obj)
|
|||
__params.dtor = (void *)Nine##nine##_dtor; \
|
||||
__params.container = NULL; \
|
||||
__params.device = NULL; \
|
||||
__params.start_with_bind_not_ref = false; \
|
||||
{ \
|
||||
HRESULT __hr = Nine##nine##_ctor(__data, &__params, ## __VA_ARGS__); \
|
||||
if (FAILED(__hr)) { \
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue