Example usage for org.lwjgl.opengl GL30 GL_FRAMEBUFFER

List of usage examples for org.lwjgl.opengl GL30 GL_FRAMEBUFFER

Introduction

In this page you can find the example usage for org.lwjgl.opengl GL30 GL_FRAMEBUFFER.

Prototype

int GL_FRAMEBUFFER

To view the source code for org.lwjgl.opengl GL30 GL_FRAMEBUFFER.

Click Source Link

Document

Accepted by the target parameter of BindFramebuffer, CheckFramebufferStatus, FramebufferTexture{1D|2D|3D}, FramebufferRenderbuffer, and GetFramebufferAttachmentParameteriv.

Usage

From source file:net.smert.frameworkgl.opengl.helpers.FrameBufferObjectHelper.java

License:Apache License

public void bind(int fboID) {
    GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, fboID);
}

From source file:net.smert.frameworkgl.opengl.helpers.FrameBufferObjectHelper.java

License:Apache License

public int checkStatus() {
    return GL30.glCheckFramebufferStatus(GL30.GL_FRAMEBUFFER);
}

From source file:net.smert.frameworkgl.opengl.helpers.FrameBufferObjectHelper.java

License:Apache License

public void unbind() {
    GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, 0);
}

From source file:org.agpu.oc.common.tileentity.AdvancedMonitor.java

public void startDrawing3D(int x, int y, int width, int height, float fov, float zNear, float zFar) {
    if (worldObj.isRemote) {
        GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, frameBufferID);

        GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
        GL11.glViewport(0, 0, width, height);

        GL11.glMatrixMode(GL11.GL_PROJECTION);
        GL11.glPushMatrix();//from w w  w.ja  v a 2s . c o  m
        GL11.glLoadIdentity();
        GLU.gluPerspective(fov, (float) width / (float) height, zNear, zFar);

        GL11.glMatrixMode(GL11.GL_MODELVIEW);
        GL11.glPushMatrix();
        GL11.glLoadIdentity();

        GL11.glClearColor(cr, cg, cb, ca);
        GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
    }
}

From source file:org.agpu.oc.common.tileentity.AdvancedMonitor.java

public void startDrawing2D(int x, int y, int width, int height) {
    if (worldObj.isRemote) {
        GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, frameBufferID);

        GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
        GL11.glViewport(x, y, width, height);

        GL11.glMatrixMode(GL11.GL_PROJECTION);
        GL11.glPushMatrix();//ww w  .  ja  va 2s  .c  o m
        GL11.glLoadIdentity();
        GL11.glOrtho(0, width, height, 0, 1, -1);

        GL11.glMatrixMode(GL11.GL_MODELVIEW);
        GL11.glPushMatrix();
        GL11.glLoadIdentity();

        GL11.glClearColor(cr, cg, cb, ca);
        GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
    }
}

From source file:org.agpu.oc.common.tileentity.AdvancedMonitor.java

public void swapBuffers(NBTTagCompound tag) {
    if (worldObj.isRemote) {
        for (int i = 0; i < tag.getInteger("commands"); i++) {
            NBTTagCompound t = tag.getCompoundTag(String.valueOf(i));
            String type = t.getString("type");
            if (type.equals("startDrawing3D")) {
                startDrawing3D(t.getInteger("x"), t.getInteger("y"), t.getInteger("width"),
                        t.getInteger("height"), t.getFloat("fov"), t.getFloat("zNear"), t.getFloat("zFar"));
            } else if (type.equals("startDrawing2D")) {
                startDrawing2D(t.getInteger("x"), t.getInteger("y"), t.getInteger("width"),
                        t.getInteger("height"));
            } else if (type.equals("setColor")) {
                GL11.glColor4f(t.getFloat("r"), t.getFloat("g"), t.getFloat("b"), t.getFloat("a"));
            } else if (type.equals("vertex3f")) {
                GL11.glVertex3f(t.getFloat("x"), t.getFloat("y"), t.getFloat("z"));
            } else if (type.equals("vertex2i")) {
                GL11.glVertex2i(t.getInteger("x"), t.getInteger("y"));
            } else if (type.equals("translate")) {
                GL11.glTranslatef(t.getFloat("x"), t.getFloat("y"), t.getFloat("z"));
            } else if (type.equals("rotate")) {
                GL11.glRotatef(t.getFloat("angle"), t.getFloat("x"), t.getFloat("y"), t.getFloat("z"));
            } else if (type.equals("scale")) {
                GL11.glScalef(t.getFloat("x"), t.getFloat("y"), t.getFloat("z"));
            } else if (type.equals("begin")) {
                GL11.glBegin(t.getInteger("m"));
            } else if (type.equals("end")) {
                GL11.glEnd();/*from ww w . j a v  a  2  s. c  om*/
            } else if (type.equals("string")) {
                Minecraft.getMinecraft().fontRendererObj.drawString(t.getString("string"), t.getInteger("x"),
                        t.getInteger("y"), t.getInteger("color"));
            } else if (type.equals("enable")) {
                GL11.glEnable(t.getInteger("v"));
            } else if (type.equals("disable")) {
                GL11.glDisable(t.getInteger("v"));
            } else {
                System.out.println("Unknown packet type received: " + type);
            }
        }

        GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, 0);

        GL11.glMatrixMode(GL11.GL_PROJECTION);
        GL11.glPopMatrix();

        GL11.glMatrixMode(GL11.GL_MODELVIEW);
        GL11.glPopMatrix();
        GL11.glPopAttrib();
    }
}

From source file:org.spout.engine.filesystem.resource.ClientRenderTexture.java

License:Open Source License

public void activate() {

    if (framebuffer == INVALID_BUFFER) {
        return; //Can't set this to active if it's not created yet
    }//  w  w  w  .j  a v a2  s .  c  o  m

    if (useEXT) {
        EXTFramebufferObject.glBindFramebufferEXT(EXTFramebufferObject.GL_FRAMEBUFFER_EXT, framebuffer);
    } else {
        GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, framebuffer);
    }
    SpoutRenderer.checkGLError();

    GL11.glViewport(0, 0, width, height);
    SpoutRenderer.checkGLError();
}

From source file:org.spout.engine.filesystem.resource.ClientRenderTexture.java

License:Open Source License

public void release() {

    if (framebuffer != INVALID_BUFFER) {
        if (useEXT) {
            EXTFramebufferObject.glBindFramebufferEXT(EXTFramebufferObject.GL_FRAMEBUFFER_EXT, SCREEN_BUFFER);
        } else {/*from   ww w. j a va  2 s.c o  m*/
            GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, SCREEN_BUFFER);
        }
        SpoutRenderer.checkGLError();

        GL11.glViewport(0, 0, width, height);
        SpoutRenderer.checkGLError();

        GL11.glDrawBuffer(GL11.GL_BACK);
    }
}

From source file:org.spout.engine.filesystem.resource.ClientRenderTexture.java

License:Open Source License

@Override
public void writeGPU() {
    if (framebuffer != INVALID_BUFFER) {
        throw new IllegalStateException("Framebuffer already created!");
    }//  w  ww.  j a  v a2  s . c o  m

    int buffers = 1;

    //Create the color buffer for this renderTexture
    textureID = GL11.glGenTextures();
    SpoutRenderer.checkGLError();
    GL11.glBindTexture(GL11.GL_TEXTURE_2D, textureID);
    SpoutRenderer.checkGLError();

    GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);
    SpoutRenderer.checkGLError();
    GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_NEAREST);
    SpoutRenderer.checkGLError();
    GL11.glTexImage2D(GL11.GL_TEXTURE_2D, 0, GL11.GL_RGBA8, width, height, 0, GL11.GL_RGBA, GL11.GL_INT,
            (ByteBuffer) null); // Create the texture data
    SpoutRenderer.checkGLError();

    if (useNormalBuffer) {
        //Create the color buffer for this renderTexture
        normalTarget = GL11.glGenTextures();
        SpoutRenderer.checkGLError();
        GL11.glBindTexture(GL11.GL_TEXTURE_2D, normalTarget);
        SpoutRenderer.checkGLError();

        GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);
        SpoutRenderer.checkGLError();
        GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_NEAREST);
        SpoutRenderer.checkGLError();
        GL11.glTexImage2D(GL11.GL_TEXTURE_2D, 0, GL11.GL_RGBA8, width, height, 0, GL11.GL_RGBA,
                GL11.GL_UNSIGNED_BYTE, (ByteBuffer) null); // Create the texture data
        SpoutRenderer.checkGLError();
        buffers++;
    }

    if (useDepthBuffer) {
        //Create the color buffer for this renderTexture
        depthTarget = GL11.glGenTextures();
        SpoutRenderer.checkGLError();
        GL11.glBindTexture(GL11.GL_TEXTURE_2D, depthTarget);
        SpoutRenderer.checkGLError();

        GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);
        SpoutRenderer.checkGLError();
        GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_NEAREST);
        SpoutRenderer.checkGLError();
        GL11.glTexImage2D(GL11.GL_TEXTURE_2D, 0, GL11.GL_DEPTH_COMPONENT, width, height, 0,
                GL11.GL_DEPTH_COMPONENT, GL11.GL_FLOAT, (ByteBuffer) null); // Create the texture data
        SpoutRenderer.checkGLError();
        buffers++;
    }

    if (useEXT) {
        framebuffer = EXTFramebufferObject.glGenFramebuffersEXT();
        SpoutRenderer.checkGLError();

        EXTFramebufferObject.glBindFramebufferEXT(EXTFramebufferObject.GL_FRAMEBUFFER_EXT, framebuffer);
        SpoutRenderer.checkGLError();

        GL11.glBindTexture(GL11.GL_TEXTURE_2D, textureID);
        SpoutRenderer.checkGLError();

        EXTFramebufferObject.glFramebufferTexture2DEXT(EXTFramebufferObject.GL_FRAMEBUFFER_EXT,
                EXTFramebufferObject.GL_COLOR_ATTACHMENT0_EXT, GL11.GL_TEXTURE_2D, textureID, 0);
        SpoutRenderer.checkGLError();

        if (useDepthBuffer) {
            GL11.glBindTexture(GL11.GL_TEXTURE_2D, depthTarget);
            SpoutRenderer.checkGLError();

            EXTFramebufferObject.glFramebufferTexture2DEXT(EXTFramebufferObject.GL_FRAMEBUFFER_EXT,
                    EXTFramebufferObject.GL_DEPTH_ATTACHMENT_EXT, GL11.GL_TEXTURE_2D, depthTarget, 0);
            SpoutRenderer.checkGLError();
        }

        if (useNormalBuffer) {

            GL11.glBindTexture(GL11.GL_TEXTURE_2D, normalTarget);
            SpoutRenderer.checkGLError();

            EXTFramebufferObject.glFramebufferTexture2DEXT(EXTFramebufferObject.GL_FRAMEBUFFER_EXT,
                    EXTFramebufferObject.GL_COLOR_ATTACHMENT1_EXT, GL11.GL_TEXTURE_2D, normalTarget, 0);
            SpoutRenderer.checkGLError();
        }

        if (EXTFramebufferObject.glCheckFramebufferStatusEXT(
                EXTFramebufferObject.GL_FRAMEBUFFER_EXT) != EXTFramebufferObject.GL_FRAMEBUFFER_COMPLETE_EXT) {
            System.out.println("ERROR: Framebuffer not complete");
            throw new ComputerIsPotatoException("Framebuffer not complete");
        }
        SpoutRenderer.checkGLError();
    } else {
        framebuffer = GL30.glGenFramebuffers();
        SpoutRenderer.checkGLError();

        GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, framebuffer);
        SpoutRenderer.checkGLError();

        IntBuffer drawBuffers = BufferUtils.createIntBuffer(buffers);
        drawBuffers.put(GL30.GL_COLOR_ATTACHMENT0);
        if (useNormalBuffer) {
            drawBuffers.put(GL30.GL_COLOR_ATTACHMENT1);
        }
        drawBuffers.flip();
        GL20.glDrawBuffers(drawBuffers);
        SpoutRenderer.checkGLError();

        GL11.glBindTexture(GL11.GL_TEXTURE_2D, textureID);
        SpoutRenderer.checkGLError();

        GL30.glFramebufferTexture2D(GL30.GL_FRAMEBUFFER, GL30.GL_COLOR_ATTACHMENT0, GL11.GL_TEXTURE_2D,
                textureID, 0);
        SpoutRenderer.checkGLError();

        if (useDepthBuffer) {
            GL11.glBindTexture(GL11.GL_TEXTURE_2D, depthTarget);
            SpoutRenderer.checkGLError();

            GL30.glFramebufferTexture2D(GL30.GL_FRAMEBUFFER, GL30.GL_DEPTH_ATTACHMENT, GL11.GL_TEXTURE_2D,
                    depthTarget, 0);
            SpoutRenderer.checkGLError();
        }
        if (useNormalBuffer) {
            GL11.glBindTexture(GL11.GL_TEXTURE_2D, normalTarget);
            SpoutRenderer.checkGLError();

            GL30.glFramebufferTexture2D(GL30.GL_FRAMEBUFFER, GL30.GL_COLOR_ATTACHMENT1, GL11.GL_TEXTURE_2D,
                    normalTarget, 0);
            SpoutRenderer.checkGLError();
        }

        int status = GL30.glCheckFramebufferStatus(GL30.GL_FRAMEBUFFER);
        if (status != GL30.GL_FRAMEBUFFER_COMPLETE) {
            System.out.println("ERROR: Framebuffer not complete.  Status: " + status);
            throw new ComputerIsPotatoException("Framebuffer not complete");
        }
        SpoutRenderer.checkGLError();

        GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, SCREEN_BUFFER);
        SpoutRenderer.checkGLError();
    }
    GL11.glBindTexture(GL11.GL_TEXTURE_2D, 0);
    SpoutRenderer.checkGLError();
}

From source file:org.spout.engine.resources.ClientRenderTexture.java

License:Open Source License

public void activate() {
    if (framebuffer == INVALID_BUFFER)
        return; //Can't set this to active if it's not created yet
    if (useEXT)/* w  ww  .  j a v a 2  s.c  om*/
        EXTFramebufferObject.glBindFramebufferEXT(EXTFramebufferObject.GL_FRAMEBUFFER_EXT, framebuffer);
    else
        GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, framebuffer);
    GL11.glViewport(0, 0, width, height);

}