示例#1
0
文件: Flood.cs 项目: tritao/flood
        public void Preprocess(Library lib)
        {
            lib.IgnoreHeadersWithName("API.h");
            lib.IgnoreHeadersWithName("Concurrency.h");
            lib.IgnoreHeadersWithName("ConcurrentQueue.h");
            lib.IgnoreHeadersWithName("Delegate.h");
            lib.IgnoreHeadersWithName("Event.h");
            lib.IgnoreHeadersWithName("Handle.h");
            lib.IgnoreHeadersWithName("Object.h");
            lib.IgnoreHeadersWithName("Pointers.h");
            lib.IgnoreHeadersWithName("References.h");
            lib.IgnoreHeadersWithName("Reflection.h");
            lib.IgnoreHeadersWithName("ReflectionHelpers.h");

            //Core
            lib.IgnoreClassWithName("Object");
            lib.IgnoreClassWithName("Class");
            lib.IgnoreClassWithName("ReferenceCounted");
            lib.IgnoreClassWithName("HandleManager");

            lib.IgnoreClassWithName("Delegate0");
            lib.IgnoreClassWithName("Delegate1");
            lib.IgnoreClassWithName("Delegate2");

            lib.IgnoreClassWithName("TaskPool");
            lib.IgnoreClassWithName("ConcurrentQueue");

            lib.SetClassAsValueType("StringHash");
            lib.IgnoreClassWithName("RawStringCompare");

            lib.SetClassAsValueType("LogEntry");
            lib.IgnoreFunctionWithName("LogCreate");

            lib.IgnoreFunctionWithName("AllocatorAllocate");
            lib.IgnoreFunctionWithName("AllocatorDeallocate");
            lib.SetNameOfFunction("AllocatorReset", "AllocatorResetMemory");

            lib.IgnoreClassWithName("StreamFuncs");
            lib.SetClassAsOpaque("FileStream");
            lib.SetClassAsValueType("FileWatchEvent");

            lib.IgnoreFunctionWithPattern(".+GetType");
            lib.IgnoreFunctionWithName("ClassGetIdMap");

            lib.IgnoreFunctionWithName("ReflectionSetHandleContext");
            lib.IgnoreFunctionWithName("SerializerCreateJSON");
            lib.IgnoreFunctionWithName("SerializerCreateBinary");
            lib.IgnoreClassWithName("ReflectionContext");
            lib.IgnoreClassWithName("ValueContext");

            lib.SetClassAsValueType("ExtensionMetadata");

            // Math
            lib.SetClassAsValueType("ColorP");
            lib.SetClassAsValueType("Color");
            lib.SetClassAsValueType("Vector2P");
            lib.SetClassAsValueType("Vector2");
            lib.SetClassAsValueType("Vector2i");
            lib.SetClassAsValueType("Vector3P");
            lib.SetClassAsValueType("Vector3");
            lib.SetClassAsValueType("Vector4");
            lib.SetClassAsValueType("EulerAngles");
            lib.SetClassAsValueType("QuaternionP");
            lib.SetClassAsValueType("Quaternion");
            lib.SetClassAsValueType("Matrix4x3");
            lib.SetClassAsValueType("Matrix4x4");

            lib.IgnoreClassWithName("ColorP");
            lib.IgnoreClassWithName("Vector2P");
            lib.IgnoreClassWithName("Vector3P");
            lib.IgnoreClassWithName("QuaternionP");

            lib.SetNameOfClassMethod("Matrix4x3", "identity", "setIdentity");
            lib.SetNameOfClassMethod("Matrix4x4", "identity", "setIdentity");
            lib.SetNameOfClassMethod("Quaternion", "identity", "setIdentity");
            lib.SetNameOfClassMethod("Vector2", "zero", "setZero");
            lib.SetNameOfClassMethod("Vector3", "zero", "setZero");
            lib.SetNameOfClassMethod("Vector4", "zero", "setZero");

            // Resources
            lib.IgnoreFunctionWithName("ResourcesInitialize");
            lib.IgnoreFunctionWithName("ResourcesDeinitialize");
            //lib.SetClassAsValueType("ResourceEvent");
            lib.SetClassAsValueType("ResourceLoadOption");
            lib.SetClassAsValueType("ResourceLoadOptions");
            lib.SetNameOfClassMethod("Texture", "allocate", "alloc");
            lib.ExcludeFromPass("ResourceHandleCreate", typeof(FunctionToInstanceMethodPass));

            // Graphics
            lib.SetClassAsValueType("RenderContextSettings");
            lib.SetClassAsValueType("RenderBatchRange");
            lib.SetClassAsValueType("VertexElementP");
            lib.SetClassAsValueType("VertexElement");
            lib.SetClassAsValueType("UniformBufferElement");
            lib.SetClassAsValueType("RenderBlock");
            lib.SetClassAsValueType("RenderState");
            lib.SetClassAsValueType("LightState");

            // Engine
            lib.IgnoreClassMethodWithName("Engine", "addSubsystem");
            lib.SetClassAsValueType("Settings");
            lib.SetClassAsValueType("WindowSettings");
            lib.SetEnumAsFlags("WindowStyles");
        }