/** * Creates a program object. * @param gl gl API object */ public Program(GL3 gl) { this.gl = gl; this.programHandle = gl.glCreateProgram(); if (this.programHandle == 0) { throw new RuntimeException("Cannot create GL program"); } }
GLProgram(GPU gpu) { this.gpu = gpu; this.gl = gpu.getGl(); programID = gl.glCreateProgram(); if (programID < 0) throw new RuntimeException("Invalid program ID: " + programID + ". Something went wrong."); }//end constructor
/** * @return * @see com.jogamp.opengl.GL2ES2#glCreateProgram() */ public int glCreateProgram() { try{ return delegate.glCreateProgram();} catch(GLException e){glException(e); throw e;} } /**
@Override public int glCreateProgram() { return GLContext.getCurrentGL().getGL3().glCreateProgram(); }
public GLProgram(final GL pGL, final HashMap<GLShaderType, GLShader> pipeline) { super(); mGL = pGL; mProgramId = mGL.getGL3().glCreateProgram(); mShaders = pipeline; for (final GLShader shader : pipeline.values()) { mGL.getGL3().glAttachShader(mProgramId, shader.getId()); } mGL.getGL3().glLinkProgram(mProgramId); }
public GLProgram(final GL pGL, final HashMap<GLShaderType, GLShader> pipeline, final HashMap<String, String> parameters) { super(); mGL = pGL; this.parameters = parameters; mProgramId = mGL.getGL3().glCreateProgram(); mShaders = pipeline; for (final GLShader shader : pipeline.values()) { mGL.getGL3().glAttachShader(mProgramId, shader.getId()); } mGL.getGL3().glLinkProgram(mProgramId); }
public void recompileProgram(final GL pGL) { final long start = System.nanoTime(); pGL.getGL3().glDeleteProgram(mProgramId); mProgramId = mGL.getGL3().glCreateProgram(); for (final GLShader shader : mShaders.values()) { shader.setParameters(parameters); shader.recompile(pGL); mGL.getGL3().glAttachShader(mProgramId, shader.getId()); } mGL.getGL3().glLinkProgram(mProgramId); final long diff = System.nanoTime() - start; stale = false; }
private static int createProgram( final GL3 g, final int vs, final int fs, final IntBuffer status) { final int id = g.glCreateProgram(); if (id == 0) { throw new GLException("glCreateProgram failed"); } g.glAttachShader(id, vs); g.glAttachShader(id, fs); g.glLinkProgram(id); g.glGetProgramiv(id, GL2ES2.GL_LINK_STATUS, status); if (status.get(0) == GL.GL_FALSE) { final ByteBuffer buffer = Buffers.newDirectByteBuffer(8192); final IntBuffer buffer_length = Buffers.newDirectIntBuffer(1); g.glGetProgramInfoLog(id, 8192, buffer_length, buffer); final byte[] raw = new byte[buffer.remaining()]; buffer.get(raw); final String tt = new String(raw); throw new GLException("compile: program: " + tt); } return id; }
int glProgram = gl.glCreateProgram();
public GLProgram(final GLShader pVerteShader, final GLShader pFragmentShader) { super(); mVertexShader = pVerteShader; mFragmentShader = pFragmentShader; mShaders.put(GLShaderType.VertexShader, pVerteShader); mShaders.put(GLShaderType.FragmentShader, pFragmentShader); mGL = pVerteShader.getGL(); final int lVertexShaderId = mVertexShader.getId(); final int lFragmentShaderId = mFragmentShader.getId(); mProgramId = mGL.getGL3().glCreateProgram(); mGL.getGL3().glAttachShader(mProgramId, lVertexShaderId); mGL.getGL3().glAttachShader(mProgramId, lFragmentShaderId); mGL.getGL3().glLinkProgram(mProgramId); mGL.getGL3().glBindFragDataLocation(mProgramId, 0, "outColor"); }