1 module bindbc.opengl.bind.khr.khr_01; 2 3 import bindbc.loader; 4 import bindbc.opengl.config, 5 bindbc.opengl.context; 6 import bindbc.opengl.bind.types; 7 8 9 // KHR_blend_equation_advanced 10 version(GL_KHR) enum useKHRBlendEquationAdvanced = true; 11 else version(GL_KHR_blend_equation_advanced) enum useKHRBlendEquationAdvanced = true; 12 else version(GL_KHR_blend_equation_advanced_coherent) enum useKHRBlendEquationAdvanced = true; 13 else enum useKHRBlendEquationAdvanced = false; 14 15 static if(useKHRBlendEquationAdvanced) { 16 private bool _hasKHRBlendEquationAdvanced; 17 private bool _hasKHRBlendEquationAdvancedCoherent; 18 @nogc nothrow bool hasKHRBlendEquationAdvanced() { return _hasKHRBlendEquationAdvanced; } 19 @nogc nothrow bool hasKHRBlendEquationAdvancedCoherent() { return _hasKHRBlendEquationAdvancedCoherent; } 20 21 enum uint GL_BLEND_ADVANCED_COHERENT_KHR = 0x9285; 22 23 enum uint GL_MULTIPLY_KHR = 0x9294; 24 enum uint GL_SCREEN_KHR = 0x9295; 25 enum uint GL_OVERLAY_KHR = 0x9296; 26 enum uint GL_DARKEN_KHR = 0x9297; 27 enum uint GL_LIGHTEN_KHR = 0x9298; 28 enum uint GL_COLORDODGE_KHR = 0x9299; 29 enum uint GL_COLORBURN_KHR = 0x929A; 30 enum uint GL_HARDLIGHT_KHR = 0x929B; 31 enum uint GL_SOFTLIGHT_KHR = 0x929C; 32 enum uint GL_DIFFERENCE_KHR = 0x929E; 33 enum uint GL_EXCLUSION_KHR = 0x92A0; 34 enum uint GL_HSL_HUE_KHR = 0x92AD; 35 enum uint GL_HSL_SATURATION_KHR = 0x92AE; 36 enum uint GL_HSL_COLOR_KHR = 0x92AF; 37 enum uint GL_HSL_LUMINOSITY_KHR = 0x92B0; 38 39 40 extern(System) @nogc nothrow { 41 alias pglBlendBarrierKHR = void function(); 42 } 43 44 __gshared { 45 pglBlendBarrierKHR glBlendBarrierKHR; 46 } 47 48 private @nogc nothrow 49 bool loadKHRBlendEquationAdvanced(SharedLib lib, GLSupport contextVersion) 50 { 51 lib.bindGLSymbol(cast(void**)&glBlendBarrierKHR, "glBlendBarrierKHR"); 52 return resetErrorCountGL(); 53 } 54 } else { 55 enum hasKHRBlendEquationAdvanced = false; 56 enum hasKHRBlendEquationAdvancedCoherent = false; 57 } 58 59 package @nogc nothrow 60 void loadKHR_01(SharedLib lib, GLSupport contextVersion) { 61 static if(useKHRBlendEquationAdvanced) { 62 _hasKHRBlendEquationAdvanced = 63 hasExtension(contextVersion, "GL_KHR_blend_equation_advanced") && 64 lib.loadKHRBlendEquationAdvanced(contextVersion); 65 _hasKHRBlendEquationAdvancedCoherent = hasExtension(contextVersion, "GL_KHR_blend_equation_advanced_coherent"); 66 } 67 }