[Mesa-dev] [PATCH 11/39] st/nine: Increase minor d3dadapter9drm ABI
Axel Davy
axel.davy at ens.fr
Sun May 15 10:45:25 UTC 2016
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 <axel.davy at ens.fr>
---
include/d3dadapter/drm.h | 6 +++++-
src/gallium/state_trackers/nine/iunknown.c | 1 +
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 */
--
2.8.2
More information about the mesa-dev
mailing list