38package com.jogamp.gluegen.runtime.opengl;
50 private static final String[] extensionsARB = {
"ARB",
"GL2",
"OES",
"KHR",
"OML" };
51 private static final String[] extensionsVEN = {
"3DFX",
79 return str.startsWith(
"gl") ||
80 str.startsWith(
"egl") || str.startsWith(
"wgl") || str.startsWith(
"agl") ||
81 str.startsWith(
"cgl") ;
85 return str.startsWith(
"GL_") || str.startsWith(
"GLU_") || str.startsWith(
"GLX_") ||
86 str.startsWith(
"EGL_") || str.startsWith(
"WGL_") || str.startsWith(
"AGL_") ||
87 str.startsWith(
"CGL_") ;
90 public static final int getExtensionIdx(
final String[] extensions,
final String str,
final boolean isGLFunc) {
92 for(
int i = extensions.length - 1 ; i>=0 ; i--) {
93 if( str.endsWith(extensions[i]) ) {
98 for(
int i = extensions.length - 1 ; i>=0 ; i--) {
99 if( str.endsWith(
"_"+extensions[i]) ) {
107 public static final boolean isExtension(
final String[] extensions,
final String str,
final boolean isGLFunc) {
114 return extensionsARB[idx];
118 return extensionsVEN[idx];
123 public static final String
normalize(
final String[] extensions, String str,
final boolean isGLFunc) {
124 boolean touched =
false;
125 for(
int i = extensions.length - 1 ; !touched && i>=0 ; i--) {
127 if(str.endsWith(extensions[i])) {
129 str = str.substring(0, str.length()-extensions[i].length());
133 if(str.endsWith(
"_"+extensions[i])) {
135 str = str.substring(0, str.length()-1-extensions[i].length());
142 public static final String
normalizeARB(
final String str,
final boolean isGLFunc) {
143 return normalize(extensionsARB, str, isGLFunc);
145 public static final boolean isExtensionARB(
final String str,
final boolean isGLFunc) {
148 public static final String
normalizeVEN(
final String str,
final boolean isGLFunc) {
149 return normalize(extensionsVEN, str, isGLFunc);
151 public static final boolean isExtensionVEN(
final String str,
final boolean isGLFunc) {
154 public static final String
normalize(
final String str,
final boolean isGLFunc) {
163 public static final boolean isExtension(
final String str,
final boolean isGLFunc) {
164 return isExtension(extensionsARB, str, isGLFunc) ||
173 return 1 + extensionsARB.length + extensionsVEN.length;
181 if(0>i || i>=(1+extensionsARB.length + extensionsVEN.length)) {
182 throw new RuntimeException(
"Index out of range [0.."+(1+extensionsARB.length+extensionsVEN.length-1)+
"]: "+i);
186 if(i<extensionsARB.length) {
187 return name+extensionsARB[i];
190 i-=extensionsARB.length;
191 return name+extensionsVEN[i];
Runtime utility identify and resolve extension names, which may be subsumed to core.
static final String normalize(final String str, final boolean isGLFunc)
static final boolean isExtensionVEN(final String str, final boolean isGLFunc)
static final String getExtensionSuffix(final String str, final boolean isGLFunc)
static final String getFuncNamePermutation(final String name, int i)
static final boolean isGLFunction(final String str)
static final int getExtensionIdx(final String[] extensions, final String str, final boolean isGLFunc)
static final String normalize(final String[] extensions, String str, final boolean isGLFunc)
static final String normalizeVEN(final String str, final boolean isGLFunc)
static final boolean isExtension(final String str, final boolean isGLFunc)
static final String normalizeARB(final String str, final boolean isGLFunc)
static final int getFuncNamePermutationNumber(final String name)
static final boolean isExtensionARB(final String str, final boolean isGLFunc)
static final boolean isGLEnumeration(final String str)
static final boolean isExtension(final String[] extensions, final String str, final boolean isGLFunc)