Example usage for com.badlogic.gdx.graphics GL20 GL_TEXTURE_2D

List of usage examples for com.badlogic.gdx.graphics GL20 GL_TEXTURE_2D

Introduction

In this page you can find the example usage for com.badlogic.gdx.graphics GL20 GL_TEXTURE_2D.

Prototype

int GL_TEXTURE_2D

To view the source code for com.badlogic.gdx.graphics GL20 GL_TEXTURE_2D.

Click Source Link

Usage

From source file:com.badlogic.gdx.tests.gles2.MipMap2D.java

License:Apache License

public void render() {
    Gdx.gl20.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
    Gdx.gl20.glClear(GL20.GL_COLOR_BUFFER_BIT);

    Gdx.gl20.glActiveTexture(GL20.GL_TEXTURE0);
    texture.bind();//from  w ww.j a  va2  s . com
    shader.begin();
    shader.setUniformf("s_texture", 0);

    Gdx.gl20.glTexParameteri(GL20.GL_TEXTURE_2D, GL20.GL_TEXTURE_MIN_FILTER, GL20.GL_NEAREST);
    shader.setUniformf("u_offset", -0.6f);
    mesh.render(shader, GL20.GL_TRIANGLES);

    Gdx.gl20.glTexParameteri(GL20.GL_TEXTURE_2D, GL20.GL_TEXTURE_MIN_FILTER, GL20.GL_LINEAR_MIPMAP_LINEAR);
    shader.setUniformf("u_offset", 0.6f);
    mesh.render(shader, GL20.GL_TRIANGLES);

    shader.end();
}

From source file:com.googlecode.gdxquake2.game.render.GlRenderer.java

License:Open Source License

public void uploadImage(Image image) {
    GlState.checkError("before upload image");
    image.has_alpha = true;/*  ww w . j av  a2  s  .com*/
    image.complete = true;

    Images.GL_Bind(image.texnum);
    if (image.type == com.googlecode.gdxquake2.game.common.QuakeImage.it_pic) {
        GlState.gl.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_S, GL11.GL_CLAMP_TO_EDGE);
        GlState.gl.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_T, GL11.GL_CLAMP_TO_EDGE);
        GlState.gl.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR);
        GlState.gl.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);
        texImage2D(image.pixmap, GL20.GL_TEXTURE_2D, 0, GL20.GL_RGBA, GL20.GL_RGBA, GL20.GL_UNSIGNED_BYTE);
        image.upload_width = image.width;
        image.upload_height = image.height;
    } else if (image.type == com.googlecode.gdxquake2.game.common.QuakeImage.it_sky) {
        GlState.gl.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_S, GL11.GL_CLAMP_TO_EDGE);
        GlState.gl.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_T, GL11.GL_CLAMP_TO_EDGE);
        GlState.gl.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR);
        GlState.gl.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);
        if (Images.skyTarget == null)
            Images.skyTarget = image;
        Images.GL_Bind(Images.skyTarget.texnum);
        if (Images.skyTarget.upload_width != 6 * image.width) {
            texImage2D(new Pixmap(6 * image.width, image.height, Pixmap.Format.RGBA8888), GL20.GL_TEXTURE_2D, 0,
                    GL20.GL_RGBA, GL20.GL_RGBA, GL20.GL_UNSIGNED_BYTE);
            Images.skyTarget.upload_width = 6 * image.width;
        }
        Images.skyTarget.upload_height = image.height;
        texSubImage2D(image.pixmap, GL20.GL_TEXTURE_2D, 0, image.width * image.skyIndex, 0, GL20.GL_RGBA,
                GL20.GL_UNSIGNED_BYTE);
    } else {
        GlState.gl.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_S, GL11.GL_REPEAT);
        GlState.gl.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_T, GL11.GL_REPEAT);
        GlState.gl.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER,
                GL11.GL_LINEAR_MIPMAP_LINEAR);
        GlState.gl.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR);
        int p2size = 1 << ((int) Math.ceil(Math.log(Math.max(image.width, image.height)) / Math.log(2)));
        image.upload_width = p2size;
        image.upload_height = p2size;

        int level = 0;
        do {
            Pixmap canvas = getTmpImage(p2size, p2size);
            canvas.setColor(0x88888888);
            canvas.fill();
            try {
                canvas.drawPixmap(image.pixmap, 0, 0, image.pixmap.getWidth(), image.pixmap.getHeight(), 0, 0,
                        p2size, p2size);
            } catch (Exception e) {
                GdxQuake2.tools.log("Error rendering image " + image.name + "; size: " + p2size + " MSG: " + e);
                break;
            }
            texImage2D(canvas, GL20.GL_TEXTURE_2D, level++, GL20.GL_RGBA, GL20.GL_RGBA, GL20.GL_UNSIGNED_BYTE);
            p2size /= 2;
        } while (p2size > 0);
    }

    GLDebug.checkError(GlState.gl, "uploadImage");
}

From source file:com.iLoong.launcher.Widget3D.FrameBuffer.java

License:Open Source License

private void build() {
    if (!Gdx.graphics.isGL20Available())
        throw new GdxRuntimeException("GL2 is required.");
    colorTexture = new Texture(width, height, format);
    colorTexture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
    colorTexture.setWrap(TextureWrap.ClampToEdge, TextureWrap.ClampToEdge);
    GL20 gl = Gdx.graphics.getGL20();/*from  ww  w .j a v  a  2s . co m*/
    IntBuffer handle = BufferUtils.newIntBuffer(1);
    gl.glGenFramebuffers(1, handle);
    framebufferHandle = handle.get(0);
    if (hasDepth) {
        gl.glGenRenderbuffers(1, handle);
        depthbufferHandle = handle.get(0);
    }
    gl.glBindTexture(GL20.GL_TEXTURE_2D, colorTexture.getTextureObjectHandle());
    if (hasDepth) {
        gl.glBindRenderbuffer(GL20.GL_RENDERBUFFER, depthbufferHandle);
        gl.glRenderbufferStorage(GL20.GL_RENDERBUFFER, GL20.GL_DEPTH_COMPONENT16, colorTexture.getWidth(),
                colorTexture.getHeight());
    }
    gl.glBindFramebuffer(GL20.GL_FRAMEBUFFER, framebufferHandle);
    gl.glFramebufferTexture2D(GL20.GL_FRAMEBUFFER, GL20.GL_COLOR_ATTACHMENT0, GL20.GL_TEXTURE_2D,
            colorTexture.getTextureObjectHandle(), 0);
    if (hasDepth) {
        gl.glFramebufferRenderbuffer(GL20.GL_FRAMEBUFFER, GL20.GL_DEPTH_ATTACHMENT, GL20.GL_RENDERBUFFER,
                depthbufferHandle);
    }
    int result = gl.glCheckFramebufferStatus(GL20.GL_FRAMEBUFFER);
    gl.glBindRenderbuffer(GL20.GL_RENDERBUFFER, 0);
    gl.glBindTexture(GL20.GL_TEXTURE_2D, 0);
    gl.glBindFramebuffer(GL20.GL_FRAMEBUFFER, 0);
    if (result != GL20.GL_FRAMEBUFFER_COMPLETE) {
        colorTexture.dispose();
        if (hasDepth) {
            handle.put(depthbufferHandle);
            handle.flip();
            gl.glDeleteRenderbuffers(1, handle);
        }
        colorTexture.dispose();
        handle.put(framebufferHandle);
        handle.flip();
        gl.glDeleteFramebuffers(1, handle);
        if (result == GL20.GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT)
            throw new IllegalStateException("frame buffer couldn't be constructed: incomplete attachment");
        if (result == GL20.GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS)
            throw new IllegalStateException("frame buffer couldn't be constructed: incomplete dimensions");
        if (result == GL20.GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT)
            throw new IllegalStateException("frame buffer couldn't be constructed: missing attachment");
    }
}

From source file:com.jlabarca.kflame.MeshShader.java

License:Apache License

@Override
public void render() {
    angle += Gdx.graphics.getDeltaTime() * 45;
    matrix.setToRotation(axis, angle);//ww  w . j  av  a2 s.  c  o m

    Gdx.gl20.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
    Gdx.gl20.glClearColor(0.2f, 0.2f, 0.2f, 1);
    Gdx.gl20.glClear(GL20.GL_COLOR_BUFFER_BIT);
    Gdx.gl20.glEnable(GL20.GL_TEXTURE_2D);
    Gdx.gl20.glEnable(GL20.GL_BLEND);
    Gdx.gl20.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
    texture.bind();
    shader.begin();
    shader.setUniformMatrix("u_worldView", matrix);
    shader.setUniformi("u_texture", 0);
    mesh.render(shader, GL20.GL_TRIANGLES);
    shader.end();
}

From source file:com.toet.TinyVoxel.android.AndroidConfig.java

@Override
public void uploadPalette(int width, int height) {
    paletteBuffer.rewind();/*from  w  ww.  ja va 2  s  .  co m*/
    Gdx.graphics.getGL20().glPixelStorei(GL20.GL_UNPACK_ALIGNMENT, 1);
    Gdx.graphics.getGL20().glTexImage2D(GL20.GL_TEXTURE_2D, 0, GL20.GL_RGBA, width, height, 0, GL20.GL_RGBA,
            GL20.GL_UNSIGNED_BYTE, paletteBuffer);
}

From source file:com.toet.TinyVoxel.android.AndroidConfig.java

@Override
public void uploadSinglePalette(int paletteId) {
    tinyPaletteBuffer.rewind();/*from  w  ww. j  av  a  2s  .c  om*/
    Gdx.graphics.getGL20().glPixelStorei(GL20.GL_UNPACK_ALIGNMENT, 1);
    Gdx.graphics.getGL20().glTexSubImage2D(GL20.GL_TEXTURE_2D, 0, 0, paletteId, Config.TINY_GRID_TOTAL, 1,
            GL20.GL_RGBA, GL20.GL_UNSIGNED_BYTE, tinyPaletteBuffer);
}

From source file:com.watabou.glwrap.NoosaTexture.java

License:Open Source License

public void pixels(int w, int h, int[] pixels) {

    // FIXME/*from w  w w  . j  av  a 2  s . c o m*/
    bind();

    IntBuffer imageBuffer = ByteBuffer.allocateDirect(w * h * 4).order(ByteOrder.nativeOrder()).asIntBuffer();
    imageBuffer.put(pixels);
    imageBuffer.position(0);

    Gdx.gl.glTexImage2D(GL20.GL_TEXTURE_2D, 0, GL20.GL_RGBA, w, h, 0, GL20.GL_RGBA, GL20.GL_UNSIGNED_BYTE,
            imageBuffer);
}

From source file:com.watabou.glwrap.NoosaTexture.java

License:Open Source License

public void pixels(int w, int h, byte[] pixels) {

    bind();// ww  w  .  j  a  v  a2 s.co  m

    ByteBuffer imageBuffer = ByteBuffer.allocateDirect(w * h).order(ByteOrder.nativeOrder());
    imageBuffer.put(pixels);
    imageBuffer.position(0);

    Gdx.gl.glPixelStorei(GL20.GL_UNPACK_ALIGNMENT, 1);

    Gdx.gl.glTexImage2D(GL20.GL_TEXTURE_2D, 0, GL20.GL_ALPHA, w, h, 0, GL20.GL_ALPHA, GL20.GL_UNSIGNED_BYTE,
            imageBuffer);
}

From source file:MeshBoneUtil.CreatureRenderer.java

License:Open Source License

public void Flush() {
    UpdateData();/*from   w  ww  .  ja v a 2  s  .c o m*/

    creature_texture.bind();
    //no need for depth...
    Gdx.gl.glDepthMask(false);

    //enable blending, for alpha
    Gdx.gl.glEnable(GL20.GL_TEXTURE_2D);
    Gdx.gl.glEnable(GL20.GL_BLEND);
    Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);

    shader_program.begin();

    shader_program.setUniformMatrix("u_projView", camera.combined);
    shader_program.setUniformMatrix("u_xform", xform);
    shader_program.setUniformi("u_texture", 0);

    render_mesh.render(shader_program, GL20.GL_TRIANGLES);

    shader_program.end();

    //re-enable depth to reset states to their default
    Gdx.gl.glDepthMask(true);
}

From source file:org.catrobat.catroid.common.DroneVideoLookData.java

License:Open Source License

@Override
public void draw(Batch batch, float parentAlpha) {
    if (firstStart) {
        videoTexture = new GLBGVideoSprite();
        onSurfaceChanged();//from   w w  w .  j  a va 2 s. co m
        firstStart = false;
    }

    if (videoSize[0] != videoTexture.imageWidth || videoSize[1] != videoTexture.imageHeight) {
        onSurfaceChanged();
    }

    Gdx.gl20.glBindTexture(GL20.GL_TEXTURE_2D, textureRegion.getTexture().getTextureObjectHandle());
    videoTexture.onUpdateVideoTexture();
}