List of usage examples for org.lwjgl.opengl GL13 glActiveTexture
public static void glActiveTexture(@NativeType("GLenum") int texture)
From source file:de.ikosa.mars.viewer.glviewer.engine.GLTextureBuilder.java
License:Open Source License
public static GLTexture createEmptyTexture(String name, int width, int height, byte r, byte g, byte b, byte a) { try {//w w w. ja v a 2 s . co m int textureId = GL11.glGenTextures(); ByteBuffer buffer = ByteBuffer.allocateDirect(width * height * 4); for (int i = 0; i < width * height; i++) { buffer.put(r); buffer.put(g); buffer.put(b); buffer.put(a); } buffer.flip(); GL13.glActiveTexture(GL13.GL_TEXTURE0); GL11.glBindTexture(GL11.GL_TEXTURE_2D, textureId); GL11.glPixelStorei(GL11.GL_UNPACK_ALIGNMENT, 1); GL11.glTexImage2D(GL11.GL_TEXTURE_2D, 0, GL11.GL_RGBA, width, height, 0, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, buffer); GL30.glGenerateMipmap(GL11.GL_TEXTURE_2D); GL11.glBindTexture(GL11.GL_TEXTURE_2D, 0); return new GLTexture(name, textureId); } catch (Exception e) { ML.f(e); } return null; }
From source file:de.ikosa.mars.viewer.glviewer.engine.GLTextureBuilder.java
License:Open Source License
public static GLTexture createEmptyTexture(String name, int width, int height, float initial) { try {/*from ww w. j ava 2 s .com*/ int textureId = GL11.glGenTextures(); ByteBuffer buffer = ByteBuffer.allocateDirect(width * height * 4); for (int i = 0; i < width * height * 4; i++) { buffer.put((byte) 0); } buffer.flip(); GL13.glActiveTexture(GL13.GL_TEXTURE0); GL11.glBindTexture(GL11.GL_TEXTURE_2D, textureId); GL11.glPixelStorei(GL11.GL_UNPACK_ALIGNMENT, 1); GL11.glTexImage2D(GL11.GL_TEXTURE_2D, 0, GL11.GL_DEPTH_COMPONENT, width, height, 0, GL11.GL_DEPTH_COMPONENT, GL11.GL_FLOAT, buffer); GL30.glGenerateMipmap(GL11.GL_TEXTURE_2D); GL11.glBindTexture(GL11.GL_TEXTURE_2D, 0); return new GLTexture(name, textureId); } catch (Exception e) { ML.f(e); } return null; }
From source file:de.ikosa.mars.viewer.glviewer.engine.GLTextureBuilder.java
License:Open Source License
private int createRGBTexture(BufferedImage image, byte[] x) { ByteBuffer buffer;/*from ww w. j a va 2 s . c om*/ buffer = ByteBuffer.allocateDirect(x.length); for (int i = 0; i < x.length; i++) { buffer.put(x[i]); } buffer.flip(); int textureId = GL11.glGenTextures(); GLRenderer2Stage.errorCheck("generating texture id"); GL13.glActiveTexture(GL13.GL_TEXTURE0); GLRenderer2Stage.errorCheck("activating texture image unit"); GL11.glBindTexture(GL11.GL_TEXTURE_2D, textureId); GLRenderer2Stage.errorCheck("binding 2d texture"); GL11.glPixelStorei(GL11.GL_UNPACK_ALIGNMENT, 1); GLRenderer2Stage.errorCheck("setting unpack aligment"); GL11.glTexImage2D(GL11.GL_TEXTURE_2D, 0, GL11.GL_RGBA, image.getWidth(), image.getHeight(), 0, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, buffer); GLRenderer2Stage.errorCheck("storing 2d texture data"); GL30.glGenerateMipmap(GL11.GL_TEXTURE_2D); GLRenderer2Stage.errorCheck("generating 2d texture array mipmaps"); GL11.glBindTexture(GL11.GL_TEXTURE_2D, 0); GLRenderer2Stage.errorCheck("unbinding 2d texture array"); return textureId; }
From source file:de.ikosa.mars.viewer.glviewer.engine.GLTextureBuilder.java
License:Open Source License
private int createGrayscaleTexture(BufferedImage image, byte[] x) { ShortBuffer buffer;/* w w w. j a v a2s . co m*/ buffer = BufferUtils.createShortBuffer(image.getHeight() * image.getWidth()); for (int i = 0; i < x.length; i += 2) { short val = (short) (fromByte(x[i]) + (fromByte(x[i + 1]) << 8)); buffer.put(val); } buffer.flip(); int textureId = GL11.glGenTextures(); GLRenderer2Stage.errorCheck("generating texture id"); GL13.glActiveTexture(GL13.GL_TEXTURE0); GLRenderer2Stage.errorCheck("activating texture image unit"); GL11.glBindTexture(GL11.GL_TEXTURE_2D, textureId); GLRenderer2Stage.errorCheck("binding 2d texture"); GL11.glPixelStorei(GL11.GL_UNPACK_ALIGNMENT, 2); GLRenderer2Stage.errorCheck("setting unpack aligment"); GL11.glTexImage2D(GL11.GL_TEXTURE_2D, 0, GL30.GL_R16, image.getWidth(), image.getHeight(), 0, GL11.GL_RED, GL11.GL_UNSIGNED_SHORT, buffer); GLRenderer2Stage.errorCheck("storing 2d texture data"); GL30.glGenerateMipmap(GL11.GL_TEXTURE_2D); GLRenderer2Stage.errorCheck("generating 2d texture array mipmaps"); GL11.glBindTexture(GL11.GL_TEXTURE_2D, 0); GLRenderer2Stage.errorCheck("unbinding 2d texture array"); return textureId; }
From source file:engine.render.TexturedQuad.java
public void renderQuad() { int shaderID = shader.getProgramID(); GL20.glUseProgram(shaderID);/*from w w w . j av a 2 s. c o m*/ glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); GL13.glActiveTexture(GL13.GL_TEXTURE0); GL11.glBindTexture(GL11.GL_TEXTURE_2D, tex.getTextureID()); GL30.glBindVertexArray(vaoId); GL20.glEnableVertexAttribArray(0); GL20.glEnableVertexAttribArray(1); GL20.glEnableVertexAttribArray(2); GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, vboiId); glUniform2f(glGetUniformLocation(shaderID, "scale"), scale.x, scale.y); glUniform2f(glGetUniformLocation(shaderID, "translation"), translation.x, translation.y); glUniform2f(glGetUniformLocation(shaderID, "cameraOffset"), cameraOffset.x, cameraOffset.y); glUniform1f(glGetUniformLocation(shaderID, "rotation"), rotation); glUniform2f(glGetUniformLocation(shaderID, "resolution"), resolution.x, resolution.y); GL11.glDrawElements(GL11.GL_TRIANGLES, indicesCount, GL11.GL_UNSIGNED_BYTE, 0); GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, 0); GL20.glDisableVertexAttribArray(0); GL20.glDisableVertexAttribArray(1); GL20.glDisableVertexAttribArray(2); GL30.glBindVertexArray(0); glDisable(GL_BLEND); GL20.glUseProgram(0); }
From source file:eu.over9000.veya.rendering.Scene.java
License:Open Source License
public void render() { this.checkCameraPosition(); ChunkChunkVAOPair addEntry;// www . j a v a 2s.c o m while ((addEntry = this.toAdd.poll()) != null) { addEntry.getChunkVAO().create(); this.displayedChunks.put(addEntry.getChunk(), addEntry.getChunkVAO()); } ChunkChunkVAOPair removeEntry; while ((removeEntry = this.toRemove.poll()) != null) { this.displayedChunks.remove(removeEntry.getChunk()); removeEntry.getChunkVAO().dispose(); } ChunkChunkVAOPair updatedEntry; while ((updatedEntry = this.updatedUpdateOffRender.poll()) != null) { updatedEntry.getChunkVAO().create(); final ChunkVAO oldVAO = this.displayedChunks.put(updatedEntry.getChunk(), updatedEntry.getChunkVAO()); if (oldVAO != null) { oldVAO.dispose(); } } int updates = 0; for (final Chunk chunk : displayedChunks.keySet()) { if (world.hasChunkChanged(chunk)) { if (chunk.getLocation().nextTo(centerChunk)) { final ChunkVAO newVAO = new ChunkVAO(chunk); final ChunkVAO oldVAO = this.displayedChunks.put(chunk, newVAO); oldVAO.dispose(); newVAO.create(); chunkUpdateCounterInRender.incrementAndGet(); updates++; if (updates > MAX_CHUNK_UPDATES_PER_FRAME) { break; } } else { toUpdateOffRender.add(chunk); } } } shadow.preRender(); Util.checkGLError(); internalRender(false); Util.checkGLError(); shadow.postRender(); Util.checkGLError(); GL13.glActiveTexture(GL13.GL_TEXTURE0); GL11.glBindTexture(GL30.GL_TEXTURE_2D_ARRAY, this.texture_handle); internalRender(true); if (Veya.debugShadow) { Veya.program_debug.use(true); GL20.glUniform1f(Veya.program_debug.getUniformLocation("near_plane"), Shadow.SHADOW_NEAR); GL20.glUniform1f(Veya.program_debug.getUniformLocation("far_plane"), Shadow.SHADOW_FAR); GL13.glActiveTexture(GL13.GL_TEXTURE0); GL11.glBindTexture(GL11.GL_TEXTURE_2D, shadow.getDepthMap()); shadow.renderQuad(); } Veya.program_normal.use(true); }
From source file:eu.over9000.veya.rendering.Shadow.java
License:Open Source License
public void postRender() { GL11.glCullFace(GL11.GL_BACK); // don't forget to reset original culling face GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, 0); Veya.program_normal.use(true);/*from w w w. j a v a 2s. c o m*/ GL11.glViewport(0, 0, Display.getWidth(), Display.getHeight()); GL13.glActiveTexture(GL13.GL_TEXTURE1); GL11.glBindTexture(GL11.GL_TEXTURE_2D, depthMap); }
From source file:eu.over9000.veya.util.TextureLoader.java
License:Open Source License
public static int loadFontTexture(final int textureUnit) { final int texId = GL11.glGenTextures(); try {/*from w w w. ja v a2s . co m*/ final InputStream in = TextureLoader.class.getResourceAsStream("/textures/font.png"); final PNGDecoder decoder = new PNGDecoder(in); final int sourceTexWidth = decoder.getWidth(); final int sourceTexHeight = decoder.getHeight(); final ByteBuffer byteBuffer = ByteBuffer.allocateDirect(4 * decoder.getWidth() * decoder.getHeight()); decoder.decode(byteBuffer, decoder.getWidth() * 4, Format.RGBA); byteBuffer.flip(); GL13.glActiveTexture(textureUnit); GL11.glBindTexture(GL11.GL_TEXTURE_2D, texId); GL11.glTexImage2D(GL11.GL_TEXTURE_2D, 0, GL11.GL_RGB, sourceTexWidth, sourceTexHeight, 0, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, byteBuffer); // Setup the ST coordinate system GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_S, GL12.GL_CLAMP_TO_EDGE); GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_T, GL12.GL_CLAMP_TO_EDGE); // Setup what to do when the texture has to be scaled GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR); GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR); org.lwjgl.opengl.Util.checkGLError(); GL11.glBindTexture(GL11.GL_TEXTURE_2D, 0); } catch (final IOException e) { e.printStackTrace(); System.exit(-1); } return texId; }
From source file:eu.over9000.veya.util.TextureLoader.java
License:Open Source License
public static int loadBlockTexture(final int textureUnit) { final InputStream in = TextureLoader.class.getResourceAsStream("/textures/blocks.png"); ByteBuffer convertedBuffer = null; int sourceTexWidth = 0; int sourceTexHeight = 0; int texCount = 0; try {//from w ww . j a v a 2 s.c o m // Link the PNG decoder to this stream final PNGDecoder decoder = new PNGDecoder(in); // Get the width and height of the texture sourceTexWidth = decoder.getWidth(); sourceTexHeight = decoder.getHeight(); texCount = sourceTexWidth / TextureLoader.TEXTURE_WIDTH * (sourceTexHeight / TextureLoader.TEXTURE_WIDTH); // Decode the PNG file in a ByteBuffer final ByteBuffer buf = ByteBuffer.allocateDirect(4 * decoder.getWidth() * decoder.getHeight()); decoder.decode(buf, decoder.getWidth() * 4, Format.RGBA); buf.flip(); convertedBuffer = TextureLoader.convertBuffer(buf, sourceTexWidth, sourceTexHeight); in.close(); } catch (final IOException e) { e.printStackTrace(); System.exit(-1); } // Create a new texture object in memory and bind it final int texId = GL11.glGenTextures(); GL13.glActiveTexture(textureUnit); GL11.glBindTexture(GL30.GL_TEXTURE_2D_ARRAY, texId); // All RGB bytes are aligned to each other and each component is 1 byte GL11.glPixelStorei(GL11.GL_UNPACK_ALIGNMENT, 1); // Upload the texture model and generate mip maps (for scaling) // GL11.glTexImage2D(GL11.GL_TEXTURE_2D, 0, GL11.GL_RGB, tWidth, tHeight, 0, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, buf); GL12.glTexImage3D(GL30.GL_TEXTURE_2D_ARRAY, 0, GL11.GL_RGBA, TextureLoader.TEXTURE_WIDTH, TextureLoader.TEXTURE_HEIGHT, texCount, 0, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, convertedBuffer); GL30.glGenerateMipmap(GL30.GL_TEXTURE_2D_ARRAY); // Setup the ST coordinate system GL11.glTexParameteri(GL30.GL_TEXTURE_2D_ARRAY, GL11.GL_TEXTURE_WRAP_S, GL12.GL_CLAMP_TO_EDGE); GL11.glTexParameteri(GL30.GL_TEXTURE_2D_ARRAY, GL11.GL_TEXTURE_WRAP_T, GL12.GL_CLAMP_TO_EDGE); // Setup what to do when the texture has to be scaled GL11.glTexParameteri(GL30.GL_TEXTURE_2D_ARRAY, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST); GL11.glTexParameteri(GL30.GL_TEXTURE_2D_ARRAY, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_NEAREST_MIPMAP_LINEAR); org.lwjgl.opengl.Util.checkGLError(); System.out .println("loading block texture, id=" + texId + ", w=" + sourceTexWidth + ", h=" + sourceTexHeight); GL11.glBindTexture(GL30.GL_TEXTURE_2D_ARRAY, 0); return texId; }
From source file:flash.display.ShaderInput.java
License:Open Source License
public void JITB$applyInput(final int programId) { if (null != input() && InputType.NONE.equals(_inputType)) { return;/*from ww w . j a v a 2 s. co m*/ } final int textureLocation = ARBShaderObjects.glGetUniformLocationARB(programId, "tex" + index()); ARBShaderObjects.glUniform1iARB(textureLocation, index()); switch (_inputType) { case BITMAPDATA: GL13.glActiveTexture(GL13.GL_TEXTURE0 + index()); glBindTexture(TextureUtil.mode(), ((BitmapData) input()).JITB$textureId()); break; default: // // System.out.println("Warning: Unhandled input type "+_inputType+"."); // } }