1 2 // Copyright Michael D. Parker 2018. 3 // Distributed under the Boost Software License, Version 1.0. 4 // (See accompanying file LICENSE_1_0.txt or copy at 5 // http://www.boost.org/LICENSE_1_0.txt) 6 7 module bindbc.sdl.bind.sdlblendmode; 8 9 import bindbc.sdl.config; 10 11 static if(sdlSupport >= SDLSupport.sdl2012) { 12 enum SDL_BlendMode { 13 SDL_BLENDMODE_NONE = 0x00000000, 14 SDL_BLENDMODE_BLEND = 0x00000001, 15 SDL_BLENDMODE_ADD = 0x00000002, 16 SDL_BLENDMODE_MOD = 0x00000004, 17 SDL_BLENDMODE_MUL = 0x00000008, 18 SDL_BLENDMODE_INVALID = 0x7FFFFFFF, 19 } 20 } 21 else static if(sdlSupport >= SDLSupport.sdl206) { 22 enum SDL_BlendMode { 23 SDL_BLENDMODE_NONE = 0x00000000, 24 SDL_BLENDMODE_BLEND = 0x00000001, 25 SDL_BLENDMODE_ADD = 0x00000002, 26 SDL_BLENDMODE_MOD = 0x00000004, 27 SDL_BLENDMODE_INVALID = 0x7FFFFFFF, 28 } 29 } 30 else { 31 enum SDL_BlendMode { 32 SDL_BLENDMODE_NONE = 0x00000000, 33 SDL_BLENDMODE_BLEND = 0x00000001, 34 SDL_BLENDMODE_ADD = 0x00000002, 35 SDL_BLENDMODE_MOD = 0x00000004, 36 } 37 } 38 mixin(expandEnum!SDL_BlendMode); 39 40 static if(sdlSupport >= SDLSupport.sdl206) { 41 42 enum SDL_BlendOperation { 43 SDL_BLENDOPERATION_ADD = 0x1, 44 SDL_BLENDOPERATION_SUBTRACT = 0x2, 45 SDL_BLENDOPERATION_REV_SUBTRACT = 0x3, 46 SDL_BLENDOPERATION_MINIMUM = 0x4, 47 SDL_BLENDOPERATION_MAXIMUM = 0x5, 48 } 49 mixin(expandEnum!SDL_BlendOperation); 50 51 enum SDL_BlendFactor { 52 SDL_BLENDFACTOR_ZERO = 0x1, 53 SDL_BLENDFACTOR_ONE = 0x2, 54 SDL_BLENDFACTOR_SRC_COLOR = 0x3, 55 SDL_BLENDFACTOR_ONE_MINUS_SRC_COLOR = 0x4, 56 SDL_BLENDFACTOR_SRC_ALPHA = 0x5, 57 SDL_BLENDFACTOR_ONE_MINUS_SRC_ALPHA = 0x6, 58 SDL_BLENDFACTOR_DST_COLOR = 0x7, 59 SDL_BLENDFACTOR_ONE_MINUS_DST_COLOR = 0x8, 60 SDL_BLENDFACTOR_DST_ALPHA = 0x9, 61 SDL_BLENDFACTOR_ONE_MINUS_DST_ALPHA = 0xA, 62 } 63 mixin(expandEnum!SDL_BlendFactor); 64 } 65 66 static if(staticBinding) { 67 extern(C) @nogc nothrow { 68 static if(sdlSupport >= SDLSupport.sdl206) { 69 SDL_BlendMode SDL_ComposeCustomBlendMode(SDL_BlendFactor,SDL_BlendFactor,SDL_BlendOperation,SDL_BlendFactor,SDL_BlendFactor,SDL_BlendOperation); 70 } 71 } 72 } 73 else { 74 static if(sdlSupport >= SDLSupport.sdl206) { 75 extern(C) @nogc nothrow { 76 alias pSDL_ComposeCustomBlendMode = SDL_BlendMode function(SDL_BlendFactor,SDL_BlendFactor,SDL_BlendOperation,SDL_BlendFactor,SDL_BlendFactor,SDL_BlendOperation); 77 } 78 79 __gshared { 80 pSDL_ComposeCustomBlendMode SDL_ComposeCustomBlendMode; 81 } 82 } 83 }