diff options
-rw-r--r-- | include/d3dadapter/drm.h | 6 | ||||
-rw-r--r-- | src/gallium/state_trackers/nine/iunknown.c | 1 | ||||
-rw-r--r-- | src/gallium/state_trackers/nine/iunknown.h | 4 |
3 files changed, 9 insertions, 2 deletions
diff --git a/include/d3dadapter/drm.h b/include/d3dadapter/drm.h index 9ec3e60..647f017 100644 --- a/include/d3dadapter/drm.h +++ b/include/d3dadapter/drm.h @@ -29,7 +29,11 @@ #define D3DADAPTER9DRM_NAME "drm" /* current version */ #define D3DADAPTER9DRM_MAJOR 0 -#define D3DADAPTER9DRM_MINOR 0 +#define D3DADAPTER9DRM_MINOR 1 + +/* version 0.0: Initial release + * 0.1: All IDirect3D objects can be assumed to have a pointer to the + * internal vtable in second position of the structure */ struct D3DAdapter9DRM { diff --git a/src/gallium/state_trackers/nine/iunknown.c b/src/gallium/state_trackers/nine/iunknown.c index 515ceaa..58ed9dc 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 b8de6be..bcd0b8b 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 */ |