From 66843910d278b050a4e814102cd75c06f95de54c Mon Sep 17 00:00:00 2001 From: triton Date: Wed, 3 Oct 2012 17:28:46 +0100 Subject: [PATCH] Added an SDL transform module. --- src/Generator/Libraries/SDL.cs | 60 ++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 src/Generator/Libraries/SDL.cs diff --git a/src/Generator/Libraries/SDL.cs b/src/Generator/Libraries/SDL.cs new file mode 100644 index 00000000..e6f58118 --- /dev/null +++ b/src/Generator/Libraries/SDL.cs @@ -0,0 +1,60 @@ + +namespace Cxxi +{ + /// + /// Transform the SDL library declarations to something more .NET friendly. + /// + class SDLTransforms : LibraryTransform + { + public void Preprocess(Generator g) + { + g.IgnoreEnumWithMatchingItem("SDL_FALSE"); + g.IgnoreEnumWithMatchingItem("DUMMY_ENUM_VALUE"); + + g.SetNameOfEnumWithMatchingItem("SDL_SCANCODE_UNKNOWN", "ScanCode"); + g.SetNameOfEnumWithMatchingItem("SDLK_UNKNOWN", "Key"); + g.SetNameOfEnumWithMatchingItem("KMOD_NONE", "KeyModifier"); + g.SetNameOfEnumWithMatchingItem("SDL_LOG_CATEGORY_CUSTOM", "LogCategory"); + + g.GenerateEnumFromMacros("InitFlags", "SDL_INIT_(.*)").SetFlags(); + g.GenerateEnumFromMacros("Endianness", "SDL_(.*)_ENDIAN"); + g.GenerateEnumFromMacros("InputState", "SDL_RELEASED", "SDL_PRESSED"); + + g.GenerateEnumFromMacros("AlphaState", "SDL_ALPHA_(.*)"); + + g.GenerateEnumFromMacros("HatState", "SDL_HAT_(.*)"); + + g.IgnoreModuleWithName("SDL_atomic*"); + g.IgnoreModuleWithName("SDL_endian*"); + g.IgnoreModuleWithName("SDL_main*"); + g.IgnoreModuleWithName("SDL_mutex*"); + g.IgnoreModuleWithName("SDL_stdinc*"); + + //g.IgnoreModuleWithName("SDL_error"); + + g.IgnoreEnumWithMatchingItem("SDL_ENOMEM"); + g.IgnoreFunctionWithName("SDL_Error"); + + g.RemovePrefix("SDL_"); + g.RemovePrefix("SCANCODE_"); + g.RemovePrefix("SDLK_"); + g.RemovePrefix("KMOD_"); + g.RemovePrefix("LOG_CATEGORY_"); + } + + public void Postprocess(Generator g) + { + g.SetNameOfEnumWithName("PIXELTYPE", "PixelType"); + g.SetNameOfEnumWithName("BITMAPORDER", "BitmapOrder"); + g.SetNameOfEnumWithName("PACKEDORDER", "PackedOrder"); + g.SetNameOfEnumWithName("ARRAYORDER", "ArrayOrder"); + g.SetNameOfEnumWithName("PACKEDLAYOUT", "PackedLayout"); + g.SetNameOfEnumWithName("PIXELFORMAT", "PixelFormats"); + g.SetNameOfEnumWithName("assert_state", "AssertState"); + g.SetNameOfClassWithName("assert_data", "AssertData"); + g.SetNameOfEnumWithName("eventaction", "EventAction"); + + //gen.SetNameOfEnumWithName("LOG_CATEGORY", "LogCategory"); + } + } +}