Java源码示例:org.lwjgl.opengl.GL40

示例1
private void getDeviceProperties(){
	System.out.println("OpenGL version: " + GL11.glGetString(GL11.GL_VERSION) + " bytes");
	System.out.println("Max Geometry Uniform Blocks: " + GL31.GL_MAX_GEOMETRY_UNIFORM_BLOCKS+ " bytes");
	System.out.println("Max Geometry Shader Invocations: " + GL40.GL_MAX_GEOMETRY_SHADER_INVOCATIONS + " bytes");
	System.out.println("Max Uniform Buffer Bindings: " + GL31.GL_MAX_UNIFORM_BUFFER_BINDINGS + " bytes");
	System.out.println("Max Uniform Block Size: " + GL31.GL_MAX_UNIFORM_BLOCK_SIZE + " bytes");
	System.out.println("Max SSBO Block Size: " + GL43.GL_MAX_SHADER_STORAGE_BLOCK_SIZE + " bytes");		
}
 
示例2
@Override
public void apply() {
    if (dirty) {
        switch (type.getCarrier()) {
            //@formatter:off
            case DOUBLE:
                switch (type.getSize()) {
                    case 1: GL40.glUniform1d(getLocation(), cache[0]); break;
                    case 2: GL40.glUniform2d(getLocation(), cache[0], cache[1]); break;
                    case 3: GL40.glUniform3d(getLocation(), cache[0], cache[1], cache[2]); break;
                    case 4: GL40.glUniform4d(getLocation(), cache[0], cache[1], cache[2], cache[3]); break;
                    default: throw new IllegalStateException("Invalid size for Double type." + type.getSize());
                }
                break;
            case MATRIX:
                switch (type) {
                    case D_MAT2:   GL40.glUniformMatrix2dv  (getLocation(), transpose, cache); break;
                    case D_MAT3:   GL40.glUniformMatrix3dv  (getLocation(), transpose, cache); break;
                    case D_MAT4:   GL40.glUniformMatrix4dv  (getLocation(), transpose, cache); break;
                    case D_MAT2x3: GL40.glUniformMatrix2x3dv(getLocation(), transpose, cache); break;
                    case D_MAT2x4: GL40.glUniformMatrix2x4dv(getLocation(), transpose, cache); break;
                    case D_MAT3x2: GL40.glUniformMatrix3x2dv(getLocation(), transpose, cache); break;
                    case D_MAT3x4: GL40.glUniformMatrix3x4dv(getLocation(), transpose, cache); break;
                    case D_MAT4x2: GL40.glUniformMatrix4x2dv(getLocation(), transpose, cache); break;
                    case D_MAT4x3: GL40.glUniformMatrix4x3dv(getLocation(), transpose, cache); break;
                    default: throw new IllegalStateException("Invalid Matrix type: " + type);
                }
                break;
            default: throw new IllegalStateException("Invalid type for DoubleUniformEntry: " + type.getCarrier());
            //@formatter:on
        }
        dirty = false;
    }
}
 
示例3
private static void buildMapping() {
	if (mapping != null) return;
	Multimap<Integer, String> map = HashMultimap.create();
	List<Class<?>> classes = ImmutableList.of(
			GL11.class, GL12.class, GL13.class, GL14.class, GL15.class,
			GL20.class, GL21.class, GL30.class, GL31.class, GL32.class,
			GL33.class, GL40.class, GL41.class, GL42.class, GL43.class,
			GL44.class, GL45.class, GLFW.class
			);
	for (Class<?> clazz : classes) {
		for (Field f : clazz.getDeclaredFields()) {
			if (f.getName().toUpperCase(Locale.ROOT).equals(f.getName()) &&
					f.getType() == int.class && Modifier.isPublic(f.getModifiers()) && Modifier.isStatic(f.getModifiers())) {
				List<String> li = Splitter.on('_').splitToList(f.getName());
				li = li.subList(1, li.size());
				String clean =
					Joiner.on(' ').join(
						li.stream()
							.map(Errors::toTitleCase)
							.iterator());
				try {
					map.put(f.getInt(null), clean);
				} catch (Throwable t) {
					t.printStackTrace();
				}
			}
		}
	}
	mapping = map;
}