aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/nine
diff options
context:
space:
mode:
authorAxel Davy <[email protected]>2016-03-05 12:17:06 +0100
committerAxel Davy <[email protected]>2016-05-18 23:37:14 +0200
commit3e9d01ff3989963f10d6dfa567c23afcaef3f6e8 (patch)
tree84e6f57ad70696931224a41860134b900bec6aa1 /src/gallium/state_trackers/nine
parent2d51c817cdff6ada200e80ecb6819a641aebc462 (diff)
st/nine: Increase minor d3dadapter9drm ABI
Version 0.1 allows to assume that the second element of the IDirect3D* structures will be a pointer to the internal nine vtable. This is useful if the gallium nine user wants to wrap some interfaces. Signed-off-by: Axel Davy <[email protected]>
Diffstat (limited to 'src/gallium/state_trackers/nine')
-rw-r--r--src/gallium/state_trackers/nine/iunknown.c1
-rw-r--r--src/gallium/state_trackers/nine/iunknown.h4
2 files changed, 4 insertions, 1 deletions
diff --git a/src/gallium/state_trackers/nine/iunknown.c b/src/gallium/state_trackers/nine/iunknown.c
index 515ceaa263f..58ed9dc73a1 100644
--- a/src/gallium/state_trackers/nine/iunknown.c
+++ b/src/gallium/state_trackers/nine/iunknown.c
@@ -39,6 +39,7 @@ NineUnknown_ctor( struct NineUnknown *This,
NineUnknown_AddRef(NineUnknown(This->device));
This->vtable = pParams->vtable;
+ This->vtable_internal = pParams->vtable;
This->guids = pParams->guids;
This->dtor = pParams->dtor;
diff --git a/src/gallium/state_trackers/nine/iunknown.h b/src/gallium/state_trackers/nine/iunknown.h
index b8de6be9663..bcd0b8bce9d 100644
--- a/src/gallium/state_trackers/nine/iunknown.h
+++ b/src/gallium/state_trackers/nine/iunknown.h
@@ -39,8 +39,10 @@ struct NineDevice9;
struct NineUnknown
{
- /* pointer to vtable */
+ /* pointer to vtable (can be overriden outside gallium nine) */
void *vtable;
+ /* pointer to internal vtable */
+ void *vtable_internal;
int32_t refs; /* external reference count */
int32_t bind; /* internal bind count */