Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.mrpizzacake.futura.graphics;
- import com.sun.org.apache.xalan.internal.xsltc.compiler.CompilerException;
- import org.lwjgl.BufferUtils;
- import org.lwjgl.opengl.GL20;
- import java.io.BufferedReader;
- import java.io.File;
- import java.io.FileReader;
- import java.nio.IntBuffer;
- import static org.lwjgl.opengl.GL11.*;
- import static org.lwjgl.opengl.GL20.*;
- public final class Shader
- {
- private int id;
- private int vertShader;
- private int fragShader;
- public Shader(File vertSourceFile, File fragSourceFile) throws Exception
- {
- id = glCreateProgram();
- vertShader = glCreateShader(GL_VERTEX_SHADER);
- fragShader = glCreateShader(GL_FRAGMENT_SHADER);
- StringBuilder vertSourceBuilder = new StringBuilder();
- StringBuilder fragSourceBuilder = new StringBuilder();
- String line;
- BufferedReader vertReader = new BufferedReader(new FileReader(vertSourceFile));
- while ((line = vertReader.readLine()) != null)
- vertSourceBuilder.append(line).append('\n');
- vertReader.close();
- BufferedReader fragReader = new BufferedReader(new FileReader(fragSourceFile));
- while ((line = fragReader.readLine()) != null)
- fragSourceBuilder.append(line).append('\n');
- fragReader.close();
- String vertSource = vertSourceBuilder.toString();
- String fragSource = fragSourceBuilder.toString();
- make(vertShader, vertSource);
- make(fragShader, fragSource);
- }
- public Shader(String vertSource, String fragSource)
- {
- id = glCreateProgram();
- vertShader = glCreateShader(GL_VERTEX_SHADER);
- System.out.println(vertShader);
- if (vertShader == 0)
- System.err.println("Shader wasn't created properly");
- fragShader = glCreateShader(GL_FRAGMENT_SHADER);
- System.out.println(fragShader);
- if (fragShader == 0)
- System.err.println("Shader wasn't created properly");
- make(vertShader, vertSource);
- make(fragShader, fragSource);
- glLinkProgram(id);
- if (glGetProgrami(id, GL_LINK_STATUS) == GL_FALSE)
- System.err.println("Shader program wasn't linked properly");
- glValidateProgram(id);
- if (glGetProgrami(id, GL_VALIDATE_STATUS) == GL_FALSE)
- System.err.println("Shader program wasn't validated properly");
- System.out.println(glGetProgramInfoLog(id));
- }
- private void make(int shader, String source)
- {
- glShaderSource(shader, source);
- glCompileShader(shader);
- if (glGetShaderi(shader, GL20.GL_COMPILE_STATUS) == GL_FALSE)
- System.err.println("Shader wasn't compiled properly");
- glAttachShader(id, shader);
- System.out.println(glGetShaderInfoLog(shader));
- }
- public void use()
- {
- glUseProgram(id);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment