All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.jogamp.opengl.egl.EGLProcAddressTable Maven / Gradle / Ivy

The newest version!
/* !---- DO NOT EDIT: This file autogenerated by com/jogamp/gluegen/opengl/GLEmitter.java on Sat Oct 10 03:19:23 CEST 2015 ----! */

package com.jogamp.opengl.egl;

import java.util.*;
import com.jogamp.opengl.*;
import com.jogamp.opengl.fixedfunc.*;
import jogamp.opengl.*;
import com.jogamp.gluegen.runtime.opengl.GLProcAddressResolver;
import com.jogamp.gluegen.runtime.ProcAddressTable;
import com.jogamp.common.util.SecurityUtil;

/**
 * This table is a cache of pointers to the dynamically-linkable C library.
 * @see ProcAddressTable
 */
/* pp */ final class EGLProcAddressTable extends ProcAddressTable {


  public EGLProcAddressTable(){ super(); }

  public EGLProcAddressTable(com.jogamp.gluegen.runtime.FunctionAddressResolver resolver){ super(resolver); }

  /* pp */ long _addressof_eglChooseConfig;
  /* pp */ long _addressof_eglCopyBuffers;
  /* pp */ long _addressof_eglCreateContext;
  /* pp */ long _addressof_eglCreatePbufferSurface;
  /* pp */ long _addressof_eglCreatePixmapSurface;
  /* pp */ long _addressof_eglCreateWindowSurface;
  /* pp */ long _addressof_eglDestroyContext;
  /* pp */ long _addressof_eglDestroySurface;
  /* pp */ long _addressof_eglGetConfigAttrib;
  /* pp */ long _addressof_eglGetConfigs;
  /* pp */ long _addressof_eglGetCurrentDisplay;
  /* pp */ long _addressof_eglGetCurrentSurface;
  /* pp */ long _addressof_eglGetDisplay;
  /* pp */ long _addressof_eglGetError;
  /* pp */ long _addressof_eglInitialize;
  /* pp */ long _addressof_eglMakeCurrent;
  /* pp */ long _addressof_eglQueryContext;
  /* pp */ long _addressof_eglQueryString;
  /* pp */ long _addressof_eglQuerySurface;
  /* pp */ long _addressof_eglSwapBuffers;
  /* pp */ long _addressof_eglTerminate;
  /* pp */ long _addressof_eglWaitGL;
  /* pp */ long _addressof_eglWaitNative;
  /* pp */ long _addressof_eglBindTexImage;
  /* pp */ long _addressof_eglReleaseTexImage;
  /* pp */ long _addressof_eglSurfaceAttrib;
  /* pp */ long _addressof_eglSwapInterval;
  /* pp */ long _addressof_eglBindAPI;
  /* pp */ long _addressof_eglQueryAPI;
  /* pp */ long _addressof_eglCreatePbufferFromClientBuffer;
  /* pp */ long _addressof_eglReleaseThread;
  /* pp */ long _addressof_eglWaitClient;
  /* pp */ long _addressof_eglGetCurrentContext;
  /* pp */ long _addressof_eglCreateSync;
  /* pp */ long _addressof_eglDestroySync;
  /* pp */ long _addressof_eglClientWaitSync;
  /* pp */ long _addressof_eglGetSyncAttrib;
  /* pp */ long _addressof_eglCreateImage;
  /* pp */ long _addressof_eglDestroyImage;
  /* pp */ long _addressof_eglGetPlatformDisplay;
  /* pp */ long _addressof_eglCreatePlatformWindowSurface;
  /* pp */ long _addressof_eglCreatePlatformPixmapSurface;
  /* pp */ long _addressof_eglWaitSync;
  @Override
  protected boolean isFunctionAvailableImpl(String functionNameUsr) throws IllegalArgumentException  {
    final String functionNameBase = com.jogamp.gluegen.runtime.opengl.GLNameResolver.normalizeVEN(com.jogamp.gluegen.runtime.opengl.GLNameResolver.normalizeARB(functionNameUsr, true), true);
    final String addressFieldNameBase = "_addressof_" + functionNameBase;
    final int funcNamePermNum = com.jogamp.gluegen.runtime.opengl.GLNameResolver.getFuncNamePermutationNumber(functionNameBase);
    final java.lang.reflect.Field addressField = java.security.AccessController.doPrivileged(new java.security.PrivilegedAction() {
        public final java.lang.reflect.Field run() {
            java.lang.reflect.Field addressField = null;
            for(int i = 0; i < funcNamePermNum; i++) {
                final String addressFieldName = com.jogamp.gluegen.runtime.opengl.GLNameResolver.getFuncNamePermutation(addressFieldNameBase, i);
                try {
                    addressField = EGLProcAddressTable.class.getDeclaredField( addressFieldName );
                    addressField.setAccessible(true); // we need to read the protected value!
                    return addressField;
                } catch (NoSuchFieldException ex) { }
            }
            return null;
        } } );

    if(null==addressField) {
      // The user is calling a bogus function or one which is not
      // runtime linked
      throw new RuntimeException(
          "WARNING: Address field query failed for \"" + functionNameBase + "\"/\"" + functionNameUsr +
          "\"; it's either statically linked or address field is not a known " +
          "function");
    } 
    try {
      return 0 != addressField.getLong(this);
    } catch (Exception e) {
      throw new RuntimeException(
          "WARNING: Address query failed for \"" + functionNameBase + "\"/\"" + functionNameUsr +
          "\"; it's either statically linked or is not a known " +
          "function", e);
    }
  }
  @Override
  public long getAddressFor(String functionNameUsr) throws SecurityException, IllegalArgumentException {
    SecurityUtil.checkAllLinkPermission();
    final String functionNameBase = com.jogamp.gluegen.runtime.opengl.GLNameResolver.normalizeVEN(com.jogamp.gluegen.runtime.opengl.GLNameResolver.normalizeARB(functionNameUsr, true), true);
    final String addressFieldNameBase = "_addressof_" + functionNameBase;
    final int  funcNamePermNum = com.jogamp.gluegen.runtime.opengl.GLNameResolver.getFuncNamePermutationNumber(functionNameBase);
    final java.lang.reflect.Field addressField = java.security.AccessController.doPrivileged(new java.security.PrivilegedAction() {
        public final java.lang.reflect.Field run() {
            java.lang.reflect.Field addressField = null;
            for(int i = 0; i < funcNamePermNum; i++) {
                final String addressFieldName = com.jogamp.gluegen.runtime.opengl.GLNameResolver.getFuncNamePermutation(addressFieldNameBase, i);
                try {
                    addressField = EGLProcAddressTable.class.getDeclaredField( addressFieldName );
                    addressField.setAccessible(true); // we need to read the protected value!
                    return addressField;
                } catch (NoSuchFieldException ex) { }
            }
            return null;
        } } );

    if(null==addressField) {
      // The user is calling a bogus function or one which is not
      // runtime linked
      throw new RuntimeException(
          "WARNING: Address field query failed for \"" + functionNameBase + "\"/\"" + functionNameUsr +
          "\"; it's either statically linked or address field is not a known " +
          "function");
    } 
    try {
      return addressField.getLong(this);
    } catch (Exception e) {
      throw new RuntimeException(
          "WARNING: Address query failed for \"" + functionNameBase + "\"/\"" + functionNameUsr +
          "\"; it's either statically linked or is not a known " +
          "function", e);
    }
  }
} // end of class EGLProcAddressTable




© 2015 - 2024 Weber Informatics LLC | Privacy Policy