当前位置: 首页>>代码示例>>Java>>正文


Java GL20.glCreateProgram方法代码示例

本文整理汇总了Java中org.lwjgl.opengl.GL20.glCreateProgram方法的典型用法代码示例。如果您正苦于以下问题:Java GL20.glCreateProgram方法的具体用法?Java GL20.glCreateProgram怎么用?Java GL20.glCreateProgram使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.lwjgl.opengl.GL20的用法示例。


在下文中一共展示了GL20.glCreateProgram方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: ShaderProgram

import org.lwjgl.opengl.GL20; //导入方法依赖的package包/类
public ShaderProgram(MyFile vertexFile, MyFile geometryFile, MyFile fragmentFile, String... inVariables) {
    int vertexShaderID = loadShader(vertexFile, GL20.GL_VERTEX_SHADER);
    int geometryShaderID = loadShader(geometryFile, GL32.GL_GEOMETRY_SHADER);
    int fragmentShaderID = loadShader(fragmentFile, GL20.GL_FRAGMENT_SHADER);
    programID = GL20.glCreateProgram();
    GL20.glAttachShader(programID, vertexShaderID);
    GL20.glAttachShader(programID, geometryShaderID);
    GL20.glAttachShader(programID, fragmentShaderID);
    bindAttributes(inVariables);
    GL20.glLinkProgram(programID);
    GL20.glDetachShader(programID, vertexShaderID);
    GL20.glDetachShader(programID, geometryShaderID);
    GL20.glDetachShader(programID, fragmentShaderID);
    GL20.glDeleteShader(vertexShaderID);
    GL20.glDeleteShader(geometryShaderID);
    GL20.glDeleteShader(fragmentShaderID);
}
 
开发者ID:GryPLOfficial,项目名称:EcoSystem-Official,代码行数:18,代码来源:ShaderProgram.java

示例2: ShaderProgram

import org.lwjgl.opengl.GL20; //导入方法依赖的package包/类
public ShaderProgram(MyFile vertexFile, MyFile geometryFile, MyFile fragmentFile, String... inVariables) {
	int vertexShaderID = loadShader(vertexFile, GL20.GL_VERTEX_SHADER);
	int geometryShaderID = loadShader(geometryFile, GL32.GL_GEOMETRY_SHADER);
	int fragmentShaderID = loadShader(fragmentFile, GL20.GL_FRAGMENT_SHADER);
	programID = GL20.glCreateProgram();
	GL20.glAttachShader(programID, vertexShaderID);
	GL20.glAttachShader(programID, geometryShaderID);
	GL20.glAttachShader(programID, fragmentShaderID);
	bindAttributes(inVariables);
	GL20.glLinkProgram(programID);
	GL20.glDetachShader(programID, vertexShaderID);
	GL20.glDetachShader(programID, geometryShaderID);
	GL20.glDetachShader(programID, fragmentShaderID);
	GL20.glDeleteShader(vertexShaderID);
	GL20.glDeleteShader(geometryShaderID);
	GL20.glDeleteShader(fragmentShaderID);
}
 
开发者ID:TheThinMatrix,项目名称:LowPolyWater,代码行数:18,代码来源:ShaderProgram.java

示例3: ShaderProgram

import org.lwjgl.opengl.GL20; //导入方法依赖的package包/类
/**
 * @param shaders list of shaders to use in program
 */
public ShaderProgram(Shader ... shaders) {
	id = GL20.glCreateProgram();
	this.shaders = shaders;
	
	// Attach shaders
	for (Shader shader : shaders) {
		GL20.glAttachShader(id, shader.id);
	}
	
	// Link
	GL20.glLinkProgram(id);
	if (GL20.glGetProgrami(id, GL20.GL_LINK_STATUS) == GL11.GL_FALSE) {
		throw new Error("Failed to link shader program.");
	}
		   
	// Validate
	GL20.glValidateProgram(id);
	if (GL20.glGetProgrami(id, GL20.GL_VALIDATE_STATUS) == GL11.GL_FALSE) {
		throw new Error("Failed to validate shader program.");
	}
}
 
开发者ID:tacocat,项目名称:lambda,代码行数:25,代码来源:ShaderProgram.java

示例4: Shader

import org.lwjgl.opengl.GL20; //导入方法依赖的package包/类
/**
    * Creates a shader with the specified file name.
    * @param name The filename of the shader as found in the specified PATH with the specified extensions
    */
   public Shader(String name) throws IOException {
// Create the program id
pid = GL20.glCreateProgram();

// Instantiate the uniform lookup
uniforms = new HashMap<String, Integer>();

// Add the vertex shader to the program
String vertSource = addShader(GL20.GL_VERTEX_SHADER, path + name + "." + vertexExtension);
// Add the fragment shader to the program
String fragSource = addShader(GL20.GL_FRAGMENT_SHADER, path + name + "." + fragmentExtension);

// Link the program
GL20.glLinkProgram(pid);
// Check if linking was successful
closeIfProgramError(GL20.glGetProgrami(pid, GL20.GL_LINK_STATUS) == 0, pid);

// Validate the program
GL20.glValidateProgram(pid);
// Check if validation was successful
closeIfProgramError(GL20.glGetProgrami(pid, GL20.GL_VALIDATE_STATUS) == 0, pid);

// Bind the shader
bind();

// Automatically add uniforms
autoAddUniforms(vertSource);
autoAddUniforms(fragSource);
   }
 
开发者ID:camilne,项目名称:open-world,代码行数:34,代码来源:Shader.java

示例5: ShaderProgram

import org.lwjgl.opengl.GL20; //导入方法依赖的package包/类
public ShaderProgram(final String vertexFile, final String fragmentFle) {
    LOGGER.debug("Initializing shader program for vertex - {} and fragment - {}", vertexFile, fragmentFle);
    vertShaderId = loadShader(vertexFile, GL20.GL_VERTEX_SHADER);
    fragShaderId = loadShader(fragmentFle, GL20.GL_FRAGMENT_SHADER);
    programId = GL20.glCreateProgram();
    GL20.glAttachShader(programId, vertShaderId);
    GL20.glAttachShader(programId, fragShaderId);
    bindAttributes();
    GL20.glLinkProgram(programId);
    GL20.glValidateProgram(programId);
    LOGGER.debug("Initialized shader - {} vertex - {} fragment - {}", programId, vertShaderId, fragShaderId);
    getAllUniformLocations();
}
 
开发者ID:Biacode,项目名称:bia-engine,代码行数:14,代码来源:ShaderProgram.java

示例6: ShaderProgram

import org.lwjgl.opengl.GL20; //导入方法依赖的package包/类
/**
 * Loads shader files and binds them the this program.
 * @param vertexFile - Vertex Shader location
 * @param fragmentFile - Fragment Shader location
 */
public ShaderProgram(String vertexFile, String fragmentFile) {
    vertexShaderID = loadShader(vertexFile, GL20.GL_VERTEX_SHADER);
    fragmentShaderID = loadShader(fragmentFile, GL20.GL_FRAGMENT_SHADER);

    programID = GL20.glCreateProgram();
    GL20.glAttachShader(programID, vertexShaderID);
    GL20.glAttachShader(programID, fragmentShaderID);
    bindAttributes();
    GL20.glLinkProgram(programID);
    GL20.glValidateProgram(programID);
    initUniforms();
}
 
开发者ID:Essentria,项目名称:Elgin-Plant-Game,代码行数:18,代码来源:ShaderProgram.java

示例7: Program

import org.lwjgl.opengl.GL20; //导入方法依赖的package包/类
public Program()
{
	this.handle = GL20.glCreateProgram();

	if (this.handle == 0)
	{
		throw new GLException("Could not create shader program!");
	}

	PROGRAMS.add(this);
}
 
开发者ID:andykuo1,项目名称:candlelight,代码行数:12,代码来源:Program.java

示例8: createShaderProgram

import org.lwjgl.opengl.GL20; //导入方法依赖的package包/类
public void createShaderProgram(RenderMethod renderMethod) {
	shaderProgram = GL20.glCreateProgram();
	vshader = createShader(vertexShader, GL20.GL_VERTEX_SHADER);
	fshader = createShader(renderMethod.getFragmentShader(), GL20.GL_FRAGMENT_SHADER);
	GL20.glAttachShader(shaderProgram, vshader);
	GL20.glAttachShader(shaderProgram, fshader);
	GL20.glBindAttribLocation(shaderProgram, 0, "vertex");
	GL30.glBindFragDataLocation(shaderProgram, 0, "color");
	GL20.glLinkProgram(shaderProgram);
	int linked = GL20.glGetProgrami(shaderProgram, GL20.GL_LINK_STATUS);
	String programLog = GL20.glGetProgramInfoLog(shaderProgram, GL20.glGetProgrami(shaderProgram, GL20.GL_INFO_LOG_LENGTH));
	if (programLog.trim().length() > 0) {
		System.err.println(programLog);
	}
	if (linked == 0) {
		throw new AssertionError("Could not link program");
	}
	
	//init vbo
	vbo = GL15.glGenBuffers();
	GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vbo);
	ByteBuffer bb = BufferUtils.createByteBuffer(2 * 6);
	bb.put((byte) -1).put((byte) -1);
	bb.put((byte) 1).put((byte) -1);
	bb.put((byte) 1).put((byte) 1);
	bb.put((byte) 1).put((byte) 1);
	bb.put((byte) -1).put((byte) 1);
	bb.put((byte) -1).put((byte) -1);
	bb.flip();
	GL15.glBufferData(GL15.GL_ARRAY_BUFFER, bb, GL15.GL_STATIC_DRAW);
	GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0);
}
 
开发者ID:shaunlebron,项目名称:flex-fov,代码行数:33,代码来源:Shader.java

示例9: ShaderProgram

import org.lwjgl.opengl.GL20; //导入方法依赖的package包/类
public ShaderProgram(String vertexFile, String fragmentFile) {
	vertexShaderID = loadShader(vertexFile, GL20.GL_VERTEX_SHADER);
	fragmentShaderID = loadShader(fragmentFile, GL20.GL_FRAGMENT_SHADER);
	programID = GL20.glCreateProgram();
	GL20.glAttachShader(programID, vertexShaderID);
	GL20.glAttachShader(programID, fragmentShaderID);
	bindAttributes();
	GL20.glLinkProgram(programID);
	GL20.glValidateProgram(programID);
	getAllUniformLocations();
}
 
开发者ID:DevipriyaSarkar,项目名称:Terrain,代码行数:12,代码来源:ShaderProgram.java

示例10: ShaderProgram

import org.lwjgl.opengl.GL20; //导入方法依赖的package包/类
public ShaderProgram(MyFile vertexFile, MyFile fragmentFile, String... inVariables) {
	int vertexShaderID = loadShader(vertexFile, GL20.GL_VERTEX_SHADER);
	int fragmentShaderID = loadShader(fragmentFile, GL20.GL_FRAGMENT_SHADER);
	programID = GL20.glCreateProgram();
	GL20.glAttachShader(programID, vertexShaderID);
	GL20.glAttachShader(programID, fragmentShaderID);
	bindAttributes(inVariables);
	GL20.glLinkProgram(programID);
	GL20.glDetachShader(programID, vertexShaderID);
	GL20.glDetachShader(programID, fragmentShaderID);
	GL20.glDeleteShader(vertexShaderID);
	GL20.glDeleteShader(fragmentShaderID);
}
 
开发者ID:TheThinMatrix,项目名称:OpenGL-Animation,代码行数:14,代码来源:ShaderProgram.java

示例11: createShaderProgram

import org.lwjgl.opengl.GL20; //导入方法依赖的package包/类
public void createShaderProgram() {
	shaderProgram = GL20.glCreateProgram();
	vShader = createShader(vertexShader, GL20.GL_VERTEX_SHADER);
	fShader = createShader(fragmentShader, GL20.GL_FRAGMENT_SHADER);
	
	GL20.glAttachShader(shaderProgram, vShader);
	GL20.glAttachShader(shaderProgram, fShader);
	GL20.glBindAttribLocation(shaderProgram, 0, "vertex");
	GL30.glBindFragDataLocation(shaderProgram, 0, "color");
	GL20.glLinkProgram(shaderProgram);
	
	GL20.glDetachShader(shaderProgram, vShader);
	GL20.glDetachShader(shaderProgram, fShader);
	GL20.glDeleteShader(vShader);
	vShader = 0;
	GL20.glDeleteShader(fShader);
	fShader = 0;
	
	int linked = GL20.glGetProgrami(shaderProgram, GL20.GL_LINK_STATUS);
	String programLog = GL20.glGetProgramInfoLog(shaderProgram, GL20.glGetProgrami(shaderProgram, GL20.GL_INFO_LOG_LENGTH));
	if (programLog.trim().length() > 0) {
		System.err.println(programLog);
	}
	if (linked == 0) {
		throw new AssertionError("Could not link program");
	}
	
	//init vbo
	vbo = GL15.glGenBuffers();
	GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vbo);
	ByteBuffer bb = BufferUtils.createByteBuffer(2 * 6);
	bb.put((byte) -1).put((byte) -1);
	bb.put((byte) 1).put((byte) -1);
	bb.put((byte) 1).put((byte) 1);
	bb.put((byte) 1).put((byte) 1);
	bb.put((byte) -1).put((byte) 1);
	bb.put((byte) -1).put((byte) -1);
	bb.flip();
	GL15.glBufferData(GL15.GL_ARRAY_BUFFER, bb, GL15.GL_STATIC_DRAW);
	GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0);
	
	worldChunkSsbo = GL15.glGenBuffers();
	chunkSsbo = GL15.glGenBuffers();
	worldMetadataSsbo = GL15.glGenBuffers();
	metadataSsbo = GL15.glGenBuffers();
	
	GL15.glBindBuffer(GL43.GL_SHADER_STORAGE_BUFFER, worldChunkSsbo);
	GL15.glBufferData(GL43.GL_SHADER_STORAGE_BUFFER, 0, GL15.GL_DYNAMIC_DRAW);
	GL30.glBindBufferBase(GL43.GL_SHADER_STORAGE_BUFFER, 2, worldChunkSsbo);
	
	GL15.glBindBuffer(GL43.GL_SHADER_STORAGE_BUFFER, chunkSsbo);
	GL15.glBufferData(GL43.GL_SHADER_STORAGE_BUFFER, 0, GL15.GL_DYNAMIC_DRAW);
	GL30.glBindBufferBase(GL43.GL_SHADER_STORAGE_BUFFER, 3, chunkSsbo);
	
	GL15.glBindBuffer(GL43.GL_SHADER_STORAGE_BUFFER, worldMetadataSsbo);
	GL15.glBufferData(GL43.GL_SHADER_STORAGE_BUFFER, 0, GL15.GL_DYNAMIC_DRAW);
	GL30.glBindBufferBase(GL43.GL_SHADER_STORAGE_BUFFER, 4, worldMetadataSsbo);
	
	GL15.glBindBuffer(GL43.GL_SHADER_STORAGE_BUFFER, metadataSsbo);
	GL15.glBufferData(GL43.GL_SHADER_STORAGE_BUFFER, 0, GL15.GL_DYNAMIC_DRAW);
	GL30.glBindBufferBase(GL43.GL_SHADER_STORAGE_BUFFER, 5, metadataSsbo);
	GL15.glBindBuffer(GL43.GL_SHADER_STORAGE_BUFFER, 0);
}
 
开发者ID:18107,项目名称:MC-Ray-Tracer,代码行数:64,代码来源:Shader.java

示例12: glCreateProgram

import org.lwjgl.opengl.GL20; //导入方法依赖的package包/类
public static int glCreateProgram()
{
    return arbShaders ? ARBShaderObjects.glCreateProgramObjectARB() : GL20.glCreateProgram();
}
 
开发者ID:Notoh,项目名称:DecompiledMinecraft,代码行数:5,代码来源:OpenGlHelper.java

示例13: createProgram

import org.lwjgl.opengl.GL20; //导入方法依赖的package包/类
private void createProgram() {
	program = GL20.glCreateProgram();
	GL20.glAttachShader(program, vertex);
	GL20.glAttachShader(program, fragment);
}
 
开发者ID:ComunityEngine,项目名称:CommunityEngine-Java,代码行数:6,代码来源:Shader.java


注:本文中的org.lwjgl.opengl.GL20.glCreateProgram方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。