Layers: Implement unique_objects layer using vk.xml
UniqueObjects was the final LVL layer not using vk.xml for codegen.
The new implementation follows the threading layer model which
(outside of safe_struct dependencies) is more tolerant of API
changes. Also updated for structure and style.
build-android/android-generate.bat - Updated for build
build-android/android-generate.sh - Updated for build
generator.py - Added Unique Objects Generator
genvk.py - Added call to U_O generator
layers/CMakeLists.txt - Updated for build
layers/unique_objects.cpp - New: manually generated code
layers/unique_objects.h - Now a true header file
vk-layer-generate.py - killed!
Change-Id: I0d57871dfd2600829502f0bffd7cf6f926b7d5e7
diff --git a/genvk.py b/genvk.py
index 993477c..c34c8a4 100755
--- a/genvk.py
+++ b/genvk.py
@@ -18,6 +18,7 @@
from reg import *
from generator import write, CGeneratorOptions, COutputGenerator, DocGeneratorOptions, DocOutputGenerator, PyOutputGenerator, ValidityOutputGenerator, HostSynchronizationOutputGenerator, ThreadGeneratorOptions, ThreadOutputGenerator
from generator import ParamCheckerGeneratorOptions, ParamCheckerOutputGenerator
+from generator import UniqueObjectsGeneratorOptions, UniqueObjectsOutputGenerator
# debug - start header generation in debugger
# dump - dump registry after loading
@@ -308,6 +309,28 @@
alignFuncParam = 48,
genDirectory = outDir)
],
+ [ UniqueObjectsOutputGenerator,
+ UniqueObjectsGeneratorOptions(
+ filename = 'unique_objects_wrappers.h',
+ apiname = 'vulkan',
+ profile = None,
+ versions = allVersions,
+ emitversions = allVersions,
+ defaultExtensions = 'vulkan',
+ addExtensions = None,
+ removeExtensions = None,
+ prefixText = prefixStrings + vkPrefixStrings,
+ genFuncPointers = True,
+ protectFile = False,
+ protectFeature = False,
+ protectProto = None,
+ protectProtoStr = 'VK_NO_PROTOTYPES',
+ apicall = 'VKAPI_ATTR ',
+ apientry = 'VKAPI_CALL ',
+ apientryp = 'VKAPI_PTR *',
+ alignFuncParam = 48,
+ genDirectory = outDir)
+ ],
None
]