diff options
| author | Jon Ashburn <jon@lunarg.com> | 2015-04-02 12:06:28 -0600 |
|---|---|---|
| committer | Chia-I Wu <olv@lunarg.com> | 2015-04-16 17:33:29 +0800 |
| commit | 3d98fec8d8c5b9a1e9b45c32ba50ca4ab651754c (patch) | |
| tree | 1d07d0cc90ffc123e33a0425a0c8d811ed4fe36d /layers/mem_tracker.cpp | |
| parent | 07b8cc331f9eb6c53cd32d4eeaff1c12f4685203 (diff) | |
| download | usermoji-3d98fec8d8c5b9a1e9b45c32ba50ca4ab651754c.tar.xz | |
layers: Update GetExtensionSupport() to handle queries for layer name
Layers now support loader querying their layer name via GetExtensionSupport
in addition to EnumerateLayers.
Also fixed bugs in ObjectTracker and DrawState to add the extensions they
support in the GetExtensionSupport queries.
Conflicts:
xgl-layer-generate.py
Diffstat (limited to 'layers/mem_tracker.cpp')
| -rw-r--r-- | layers/mem_tracker.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/layers/mem_tracker.cpp b/layers/mem_tracker.cpp index a6bc088a..5b47bfc5 100644 --- a/layers/mem_tracker.cpp +++ b/layers/mem_tracker.cpp @@ -865,6 +865,24 @@ XGL_LAYER_EXPORT XGL_RESULT XGLAPI xglDestroyDevice(XGL_DEVICE device) return result; } +XGL_LAYER_EXPORT XGL_RESULT XGLAPI xglGetExtensionSupport(XGL_PHYSICAL_GPU gpu, const char* pExtName) +{ + XGL_BASE_LAYER_OBJECT* gpuw = (XGL_BASE_LAYER_OBJECT *) gpu; + XGL_RESULT result; + /* This entrypoint is NOT going to init its own dispatch table since loader calls here early */ + if (!strcmp(pExtName, "MemTracker")) + { + result = XGL_SUCCESS; + } else if (nextTable.GetExtensionSupport != NULL) + { + result = nextTable.GetExtensionSupport((XGL_PHYSICAL_GPU)gpuw->nextObject, pExtName); + } else + { + result = XGL_ERROR_INVALID_EXTENSION; + } + return result; +} + XGL_LAYER_EXPORT XGL_RESULT XGLAPI xglEnumerateLayers(XGL_PHYSICAL_GPU gpu, size_t maxLayerCount, size_t maxStringSize, size_t* pOutLayerCount, char* const* pOutLayers, void* pReserved) { @@ -1900,6 +1918,8 @@ XGL_LAYER_EXPORT void* XGLAPI xglGetProcAddr(XGL_PHYSICAL_GPU gpu, const char* f return (void*) xglCreateDevice; if (!strcmp(funcName, "xglDestroyDevice")) return (void*) xglDestroyDevice; + if (!strcmp(funcName, "xglGetExtensionSupport")) + return (void*) xglGetExtensionSupport; if (!strcmp(funcName, "xglEnumerateLayers")) return (void*) xglEnumerateLayers; if (!strcmp(funcName, "xglQueueSubmit")) |
