public void Preprocess(Driver driver, ASTContext ctx) { ctx.IgnoreHeadersWithName("lldb/lldb-forward.h"); ctx.IgnoreHeadersWithName("lldb/API/SBDefines.h"); ctx.SetMethodParameterUsage("lldb::SBTarget", "Launch", 2, 2, ParameterUsage.Out); ctx.SetMethodParameterUsage("lldb::SBTarget", "Launch", 10, 10, ParameterUsage.Out); ctx.RemoveEnumItemsPrefix("lldb::StateType", "eState"); ctx.RemoveEnumItemsPrefix("lldb::LaunchFlags", "eLaunchFlag"); ctx.RemoveEnumItemsPrefix("lldb::RunMode", "e"); ctx.RemoveEnumItemsPrefix("lldb::ExpressionResults", "eExpression"); ctx.RemoveEnumItemsPrefix("lldb::SymbolContextItem", "eSymbolContext"); ctx.RemoveEnumItemsPrefix("lldb::InputReaderAction", "eInputReader"); ctx.RemoveEnumItemsPrefix("lldb::DynamicValueType", "e"); ctx.RemoveEnumItemsPrefix("lldb::InputReaderAction", "eInputReader"); ctx.RemoveEnumItemsPrefix("lldb::AccessType", "eAccess"); ctx.RemoveEnumItemsPrefix("lldb::CommandArgumentType", "eArgType"); ctx.RemoveEnumItemsPrefix("lldb::EmulateInstructionOptions", "eEmulateInstructionOption"); ctx.RemoveEnumItemsPrefix("lldb::TypeOptions", "eTypeOption"); ctx.RemoveEnumItemsPrefix("lldb::FrameComparison", "eFrameCompare"); ctx.RemoveEnumItemsPrefix("lldb::ExpressionEvaluationPhase", "eExpressionEvaluation"); ctx.RemoveEnumItemsPrefix("lldb::TypeFlags", "eType"); ctx.RemoveEnumItemsPrefix("lldb::CommandFlags", "eCommand"); ctx.RemoveEnumItemsPrefix("lldb::TypeSummaryCapping", "eTypeSummary"); ctx.SetNameOfClassMethod("lldb::SBError", "GetError", "GetErrorCode"); ctx.SetNameOfClassMethod("lldb::SBValue", "GetValue", "GetValueAsString"); ctx.GenerateEnumFromMacros("BreakpointId", "LLDB_BREAK_*", "LLDB_INVALID_BREAK_ID", "LLDB_DEFAULT_BREAK_SIZE"); ctx.GenerateEnumFromMacros("WatchpointId", "LLDB_WATCH_*", "LLDB_INVALID_WATCH_ID"); ctx.GenerateEnumFromMacros("GenericRegister", "LLDB_REGNUM_GENERIC_*"); ctx.GenerateEnumFromMacros("InvalidValue", "LLDB_INVALID_*"); ctx.GenerateEnumFromMacros("CPUType", "LLDB_ARCH_*", "LLDB_INVALID_CPUTYPE"); ctx.GenerateEnumFromMacros("OptionSet", "LDB_OPT_SET_*", "LLDB_MAX_NUM_OPTION_SETS"); ctx.RenameNamespace("lldb", "LLDB"); }
public void Preprocess(Driver driver, ASTContext ctx) { ctx.IgnoreHeadersWithName("API.h"); ctx.IgnoreHeadersWithName("Concurrency.h"); ctx.IgnoreHeadersWithName("ConcurrentQueue.h"); ctx.IgnoreHeadersWithName("Delegate.h"); ctx.IgnoreHeadersWithName("Event.h"); ctx.IgnoreHeadersWithName("Handle.h"); ctx.IgnoreHeadersWithName("Object.h"); ctx.IgnoreHeadersWithName("Pointers.h"); ctx.IgnoreHeadersWithName("References.h"); ctx.IgnoreHeadersWithName("Reflection.h"); ctx.IgnoreHeadersWithName("ReflectionHelpers.h"); ctx.IgnoreHeadersWithName("Task.h"); ctx.IgnoreHeadersWithName("Timer.h"); ctx.IgnoreHeadersWithName("Swap.h"); //Core ctx.IgnoreClassWithName("Object"); ctx.IgnoreClassWithName("Class"); ctx.IgnoreClassWithName("ReferenceCounted"); ctx.IgnoreClassWithName("HandleManager"); ctx.IgnoreClassWithName("Delegate0"); ctx.IgnoreClassWithName("Delegate1"); ctx.IgnoreClassWithName("Delegate2"); ctx.IgnoreClassWithName("TaskPool"); ctx.IgnoreClassWithName("ConcurrentQueue"); ctx.SetClassAsValueType("StringHash"); ctx.IgnoreClassWithName("RawStringCompare"); ctx.SetClassAsValueType("LogEntry"); ctx.IgnoreFunctionWithName("LogCreate"); ctx.IgnoreFunctionWithName("AllocatorAllocate"); ctx.IgnoreFunctionWithName("AllocatorDeallocate"); ctx.SetNameOfFunction("AllocatorReset", "AllocatorResetMemory"); ctx.IgnoreClassWithName("StreamFuncs"); ctx.IgnoreClassWithName("FileStream"); ctx.SetClassAsValueType("FileWatchEvent"); ctx.IgnoreFunctionWithPattern(".+GetType"); ctx.IgnoreFunctionWithName("ClassGetIdMap"); ctx.IgnoreFunctionWithName("ReflectionSetHandleContext"); ctx.IgnoreFunctionWithName("SerializerCreateJSON"); ctx.IgnoreFunctionWithName("SerializerCreateBinary"); ctx.IgnoreClassWithName("ReflectionContext"); ctx.IgnoreClassWithName("ValueContext"); ctx.SetClassAsValueType("ExtensionMetadata"); ctx.IgnoreClassWithName("MemoryStream"); ctx.IgnoreClassWithName("Serializer"); ctx.IgnoreClassWithName("Thread"); // Math ctx.SetClassAsValueType("ColorP"); ctx.SetClassAsValueType("Color"); ctx.SetClassAsValueType("Vector2P"); ctx.SetClassAsValueType("Vector2"); ctx.SetClassAsValueType("Vector2i"); ctx.SetClassAsValueType("Vector3P"); ctx.SetClassAsValueType("Vector3"); ctx.SetClassAsValueType("Vector4"); ctx.SetClassAsValueType("EulerAngles"); ctx.SetClassAsValueType("QuaternionP"); ctx.SetClassAsValueType("Quaternion"); ctx.SetClassAsValueType("Matrix4x3"); ctx.SetClassAsValueType("Matrix4x4"); ctx.CopyClassFields("ColorP", "Color"); ctx.CopyClassFields("Vector2P", "Vector2"); ctx.CopyClassFields("Vector3P", "Vector3"); ctx.CopyClassFields("QuaternionP", "Quaternion"); ctx.IgnoreClassWithName("ColorP"); ctx.IgnoreClassWithName("Vector2P"); ctx.IgnoreClassWithName("Vector3P"); ctx.IgnoreClassWithName("QuaternionP"); ctx.SetNameOfClassMethod("Matrix4x3", "identity", "setIdentity"); ctx.SetNameOfClassMethod("Matrix4x4", "identity", "setIdentity"); ctx.SetNameOfClassMethod("Quaternion", "identity", "setIdentity"); ctx.SetNameOfClassMethod("Vector2", "zero", "setZero"); ctx.SetNameOfClassMethod("Vector3", "zero", "setZero"); ctx.SetNameOfClassMethod("Vector4", "zero", "setZero"); // Resources ctx.IgnoreFunctionWithName("ResourcesInitialize"); ctx.IgnoreFunctionWithName("ResourcesDeinitialize"); //lib.SetClassAsValueType("ResourceEvent"); ctx.SetClassAsValueType("ResourceLoadOption"); ctx.SetClassAsValueType("ResourceLoadOptions"); ctx.SetNameOfClassMethod("Texture", "allocate", "alloc"); ctx.ExcludeFromPass("ResourceHandleCreate", typeof (FunctionToInstanceMethodPass)); // Set generic type constraints on template methods var resourceManager = ctx.FindClass("ResourceManager").FirstOrDefault(); if (resourceManager != null) foreach (var template in resourceManager.Templates) { for (var i = 0; i < template.Parameters.Count; ++i) { var param = template.Parameters[i]; param.Constraint = "Flood::Resource"; template.Parameters[i] = param; } } // Graphics ctx.SetClassAsValueType("RenderContextSettings"); ctx.SetClassAsValueType("RenderBatchRange"); ctx.SetClassAsValueType("VertexElementP"); ctx.SetClassAsValueType("VertexElement"); ctx.SetClassAsValueType("UniformBufferElement"); ctx.SetClassAsValueType("RenderState"); ctx.SetClassAsValueType("LightState"); ctx.IgnoreHeadersWithName("MaxRectsBinPack.h"); ctx.IgnoreClassWithName("MaxRectsBinPack"); ctx.IgnoreClassWithName("CompareHandle"); ctx.SetClassAsValueType("Glyph"); ctx.SetClassAsValueType("Rectangle"); ctx.SetClassAsValueType("RectangleF"); ctx.SetClassAsValueType("SubTexture"); ctx.SetMethodParameterUsage("TextureAtlas", "getImageSubTexture", 2, ParameterUsage.Out); ctx.SetMethodParameterUsage("Font", "getGlyphInfo", 3, ParameterUsage.Out); // Engine ctx.IgnoreClassMethodWithName("Engine", "addSubsystem"); }