diff --git a/src/java/org/lwjgl/util/generator/Extension.java b/src/java/org/lwjgl/util/generator/Extension.java index 166fa078..981da6ab 100644 --- a/src/java/org/lwjgl/util/generator/Extension.java +++ b/src/java/org/lwjgl/util/generator/Extension.java @@ -46,4 +46,7 @@ public @interface Extension { String className() default ""; boolean isFinal() default true; String postfix(); + + /** The extension name as it appears in the extension string. The default is the API prefix followed by the interface name, converted to lower-case. */ + String nativeName() default ""; } diff --git a/src/java/org/lwjgl/util/generator/opencl/CLPDCapabilitiesGenerator.java b/src/java/org/lwjgl/util/generator/opencl/CLPDCapabilitiesGenerator.java index 9d7f10e3..99a58c34 100644 --- a/src/java/org/lwjgl/util/generator/opencl/CLPDCapabilitiesGenerator.java +++ b/src/java/org/lwjgl/util/generator/opencl/CLPDCapabilitiesGenerator.java @@ -33,6 +33,7 @@ package org.lwjgl.util.generator.opencl; import org.lwjgl.PointerWrapper; +import org.lwjgl.util.generator.Extension; import org.lwjgl.util.generator.Private; import java.io.PrintWriter; @@ -108,7 +109,12 @@ public class CLPDCapabilitiesGenerator { final String extName = CLGeneratorProcessorFactory.getExtensionName(t.getSimpleName()); - writer.print("\t\t" + extName + " = extensions.contains(\"" + extName.toLowerCase() + "\")"); + String nativeName = extName.toLowerCase(); + Extension ext = t.getAnnotation(Extension.class); + if ( ext != null && !ext.nativeName().isEmpty() ) + nativeName = ext.nativeName(); + + writer.print("\t\t" + extName + " = extensions.contains(\"" + nativeName + "\")"); if ( !t.getMethods().isEmpty() ) writer.print(" && CLCapabilities." + extName); writer.println(";"); diff --git a/src/templates/org/lwjgl/opencl/APPLE_ContextLoggingFunctions.java b/src/templates/org/lwjgl/opencl/APPLE_ContextLoggingFunctions.java index e3f7036f..f2bc0a09 100644 --- a/src/templates/org/lwjgl/opencl/APPLE_ContextLoggingFunctions.java +++ b/src/templates/org/lwjgl/opencl/APPLE_ContextLoggingFunctions.java @@ -39,6 +39,7 @@ import java.nio.ByteBuffer; @Private @CLPlatformExtension @CLDeviceExtension +@Extension(postfix = "APPLE", nativeName = "cl_APPLE_ContextLoggingFunctions") public interface APPLE_ContextLoggingFunctions { @Extern diff --git a/src/templates/org/lwjgl/opencl/APPLE_SetMemObjectDestructor.java b/src/templates/org/lwjgl/opencl/APPLE_SetMemObjectDestructor.java index 92a388c6..71f3d4d5 100644 --- a/src/templates/org/lwjgl/opencl/APPLE_SetMemObjectDestructor.java +++ b/src/templates/org/lwjgl/opencl/APPLE_SetMemObjectDestructor.java @@ -33,6 +33,7 @@ package org.lwjgl.opencl; import org.lwjgl.util.generator.Code; import org.lwjgl.util.generator.Constant; +import org.lwjgl.util.generator.Extension; import org.lwjgl.util.generator.PointerWrapper; import org.lwjgl.util.generator.opencl.CLDeviceExtension; import org.lwjgl.util.generator.opencl.CLPlatformExtension; @@ -40,6 +41,7 @@ import org.lwjgl.util.generator.opencl.cl_int; @CLPlatformExtension @CLDeviceExtension +@Extension(postfix = "APPLE", nativeName = "cl_APPLE_SetMemObjectDestructor") public interface APPLE_SetMemObjectDestructor { @Code( diff --git a/src/templates/org/lwjgl/opencl/APPLE_gl_sharing.java b/src/templates/org/lwjgl/opencl/APPLE_gl_sharing.java index 5594c1ce..fe6d4207 100644 --- a/src/templates/org/lwjgl/opencl/APPLE_gl_sharing.java +++ b/src/templates/org/lwjgl/opencl/APPLE_gl_sharing.java @@ -39,7 +39,7 @@ import java.nio.ByteBuffer; @CLPlatformExtension @CLDeviceExtension -@Extension(postfix = "APPLE", className = "APPLEGLSharing") +@Extension(postfix = "APPLE", className = "APPLEGLSharing", nativeName = "cl_APPLE_gl_sharing") public interface APPLE_gl_sharing { /**