Example usage for org.lwjgl.opengl GL30 GL_DEPTH24_STENCIL8

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

Introduction

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

Prototype

int GL_DEPTH24_STENCIL8

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

Click Source Link

Document

Accepted by the internalformat parameter of TexImage1D, TexImage2D, TexImage3D, CopyTexImage1D, CopyTexImage2D, and RenderbufferStorage, and returned in the data parameter of GetTexLevelParameter and GetRenderbufferParameteriv.

Usage

From source file:com.samrj.devil.graphics.TexUtil.java

License:Open Source License

/**
 * @param format an OpenGL texture format.
 * @return the base OpenGL internal texture format corresponding with the
 *         given format./*from  w ww .j  a v a 2  s  .c om*/
 */
public static int getBaseFormat(int format) {
    switch (format) {
    //Forward-compatible formats.
    case GL11.GL_DEPTH_COMPONENT:
    case GL14.GL_DEPTH_COMPONENT16:
    case GL14.GL_DEPTH_COMPONENT24:
    case GL14.GL_DEPTH_COMPONENT32:
    case GL30.GL_DEPTH_COMPONENT32F:
        return GL11.GL_DEPTH_COMPONENT;

    case GL11.GL_RED:
    case GL30.GL_R8:
    case GL30.GL_R16:
    case GL30.GL_R16F:
    case GL30.GL_R16I:
    case GL30.GL_R32F:
    case GL30.GL_R32I:
        return GL11.GL_RED;

    case GL30.GL_DEPTH_STENCIL:
    case GL30.GL_DEPTH24_STENCIL8:
    case GL30.GL_DEPTH32F_STENCIL8:
        return GL30.GL_DEPTH_STENCIL;

    case GL30.GL_RG:
    case GL30.GL_RG8:
    case GL30.GL_RG16:
    case GL30.GL_RG16F:
    case GL30.GL_RG16I:
    case GL30.GL_RG32F:
    case GL30.GL_RG32I:
        return GL30.GL_RG;

    case GL11.GL_RGB:
    case GL11.GL_R3_G3_B2:
    case GL11.GL_RGB4:
    case GL11.GL_RGB5:
    case GL11.GL_RGB8:
    case GL11.GL_RGB10:
    case GL11.GL_RGB12:
    case GL11.GL_RGB16:
    case GL30.GL_RGB16F:
    case GL30.GL_RGB16I:
    case GL30.GL_RGB32F:
    case GL30.GL_RGB32I:
        return GL11.GL_RGB;

    case GL11.GL_RGBA:
    case GL11.GL_RGBA2:
    case GL11.GL_RGBA4:
    case GL11.GL_RGBA8:
    case GL11.GL_RGBA12:
    case GL11.GL_RGBA16:
    case GL30.GL_RGBA16F:
    case GL30.GL_RGBA16I:
    case GL30.GL_RGBA32F:
    case GL30.GL_RGBA32I:
        return GL11.GL_RGBA;

    //Deprecated formats.
    case GL11.GL_LUMINANCE:
    case GL11.GL_LUMINANCE8:
    case GL11.GL_LUMINANCE16:
        return GL11.GL_LUMINANCE;

    case GL11.GL_ALPHA:
    case GL11.GL_ALPHA8:
    case GL11.GL_ALPHA16:
        return GL11.GL_ALPHA;

    case GL11.GL_LUMINANCE_ALPHA:
    case GL11.GL_LUMINANCE8_ALPHA8:
    case GL11.GL_LUMINANCE16_ALPHA16:
        return GL11.GL_LUMINANCE_ALPHA;

    default:
        return -1;
    }
}

From source file:com.samrj.devil.graphics.TexUtil.java

License:Open Source License

/**
 * Returns the OpenGL field name for the given format.
 * /*from w w w.ja  v  a  2  s  .  co m*/
 * @param format An OpenGL texture format.
 * @return The OpenGL field name for the given format.
 */
public static String formatToString(int format) {
    switch (format) {
    case GL11.GL_DEPTH_COMPONENT:
        return "GL_DEPTH_COMPONENT";
    case GL14.GL_DEPTH_COMPONENT16:
        return "GL_DEPTH_COMPONENT16";
    case GL14.GL_DEPTH_COMPONENT24:
        return "GL_DEPTH_COMPONENT24";
    case GL14.GL_DEPTH_COMPONENT32:
        return "GL_DEPTH_COMPONENT32";
    case GL30.GL_DEPTH_COMPONENT32F:
        return "GL_DEPTH_COMPONENT32F";

    case GL11.GL_RED:
        return "GL_RED";
    case GL30.GL_R8:
        return "GL_R8";
    case GL30.GL_R16:
        return "GL_R16";
    case GL30.GL_R16F:
        return "GL_R16F";
    case GL30.GL_R16I:
        return "GL_R16I";
    case GL30.GL_R32F:
        return "GL_R32F";
    case GL30.GL_R32I:
        return "GL_R32I";

    case GL30.GL_DEPTH_STENCIL:
        return "GL_DEPTH_STENCIL";
    case GL30.GL_DEPTH24_STENCIL8:
        return "GL_DEPTH24_STENCIL8";
    case GL30.GL_DEPTH32F_STENCIL8:
        return "GL_DEPTH32F_STENCIL8";

    case GL30.GL_RG:
        return "GL_RG";
    case GL30.GL_RG8:
        return "GL_RG8";
    case GL30.GL_RG16:
        return "GL_RG16";
    case GL30.GL_RG16F:
        return "GL_RG16F";
    case GL30.GL_RG16I:
        return "GL_RG16I";
    case GL30.GL_RG32F:
        return "GL_RG32F";
    case GL30.GL_RG32I:
        return "GL_RG32I";

    case GL11.GL_RGB:
        return "GL_RGB";
    case GL11.GL_RGB8:
        return "GL_RGB8";
    case GL11.GL_RGB16:
        return "GL_RGB16";
    case GL30.GL_RGB16F:
        return "GL_RGB16F";
    case GL30.GL_RGB16I:
        return "GL_RGB16I";
    case GL30.GL_RGB32F:
        return "GL_RGB32F";
    case GL30.GL_RGB32I:
        return "GL_RGB32I";

    case GL11.GL_RGBA:
        return "GL_RGBA";
    case GL11.GL_RGBA8:
        return "GL_RGBA8";
    case GL11.GL_RGBA16:
        return "GL_RGBA16";
    case GL30.GL_RGBA16F:
        return "GL_RGBA16F";
    case GL30.GL_RGBA16I:
        return "GL_RGBA16I";
    case GL30.GL_RGBA32F:
        return "GL_RGBA32F";
    case GL30.GL_RGBA32I:
        return "GL_RGBA32I";

    case GL11.GL_LUMINANCE:
        return "GL_LUMINANCE";
    case GL11.GL_LUMINANCE8:
        return "GL_LUMINANCE8";
    case GL11.GL_LUMINANCE16:
        return "GL_LUMINANCE16";

    case GL11.GL_ALPHA:
        return "GL_ALPHA";
    case GL11.GL_ALPHA8:
        return "GL_ALPHA8";
    case GL11.GL_ALPHA16:
        return "GL_ALPHA16";

    case GL11.GL_LUMINANCE_ALPHA:
        return "GL_LUMINANCE_ALPHA";
    case GL11.GL_LUMINANCE8_ALPHA8:
        return "GL_LUMINANCE8_ALPHA8";
    case GL11.GL_LUMINANCE16_ALPHA16:
        return "GL_LUMINANCE16_ALPHA16";

    default:
        return "UNSUPPORTED_FORMAT";
    }
}

From source file:com.samrj.devil.graphics.TexUtil.java

License:Open Source License

/**
 * Returns the OpenGL enumerator for the given primitive type.
 * //from   w  ww  . j av  a  2  s .com
 * @param format an OpenGL texture format.
 * @return the primitive data type associated with the given OpenGL format.
 */
public static int getPrimitiveType(int format) {
    switch (format) {
    default:
    case GL11.GL_LUMINANCE8:
    case GL11.GL_ALPHA8:
    case GL11.GL_LUMINANCE8_ALPHA8:
    case GL30.GL_R8:
    case GL30.GL_RG8:
    case GL11.GL_RGB8:
    case GL11.GL_RGBA8:
        return GL11.GL_UNSIGNED_BYTE;

    case GL11.GL_LUMINANCE16:
    case GL11.GL_ALPHA16:
    case GL11.GL_LUMINANCE16_ALPHA16:
    case GL14.GL_DEPTH_COMPONENT16:
    case GL30.GL_R16:
    case GL30.GL_RG16:
    case GL11.GL_RGB16:
    case GL11.GL_RGBA16:
        return GL11.GL_UNSIGNED_SHORT;

    case GL30.GL_R16I:
    case GL30.GL_RG16I:
    case GL30.GL_RGB16I:
    case GL30.GL_RGBA16I:
        return GL11.GL_SHORT;

    case GL30.GL_DEPTH_COMPONENT32F:
    case GL30.GL_R32F:
    case GL30.GL_RG32F:
    case GL30.GL_RGB32F:
    case GL30.GL_RGBA32F:
        return GL11.GL_FLOAT;

    case GL30.GL_R32I:
    case GL30.GL_RG32I:
    case GL30.GL_RGB32I:
    case GL30.GL_RGBA32I:
        return GL11.GL_INT;

    case GL30.GL_DEPTH24_STENCIL8:
        return GL30.GL_UNSIGNED_INT_24_8;
    }
}

From source file:com.samrj.devil.graphics.TexUtil.java

License:Open Source License

/**
 * @param format an OpenGL texture format.
 * @return Approximately how many bits are stored per texel for the given format.
 *//*ww w .j  a  v a  2s. c  om*/
public static long getBits(int format) {
    switch (format) {
    //Forward-compatible formats.
    case GL11.GL_DEPTH_COMPONENT:
        return 24;
    case GL14.GL_DEPTH_COMPONENT16:
        return 16;
    case GL14.GL_DEPTH_COMPONENT24:
        return 24;
    case GL14.GL_DEPTH_COMPONENT32:
    case GL30.GL_DEPTH_COMPONENT32F:
        return 32;
    case GL11.GL_RED:
    case GL30.GL_R8:
        return 8;
    case GL30.GL_R16:
    case GL30.GL_R16F:
    case GL30.GL_R16I:
        return 16;
    case GL30.GL_R32F:
    case GL30.GL_R32I:
        return 32;
    case GL30.GL_DEPTH_STENCIL:
        return 8;
    case GL30.GL_DEPTH24_STENCIL8:
        return 32;
    case GL30.GL_DEPTH32F_STENCIL8:
        return 40;

    case GL30.GL_RG:
    case GL30.GL_RG8:
        return 16;
    case GL30.GL_RG16:
    case GL30.GL_RG16F:
    case GL30.GL_RG16I:
        return 32;
    case GL30.GL_RG32F:
    case GL30.GL_RG32I:
        return 64;

    case GL11.GL_RGB:
        return 24;
    case GL11.GL_R3_G3_B2:
        return 8;
    case GL11.GL_RGB4:
        return 12;
    case GL11.GL_RGB5:
        return 15;
    case GL11.GL_RGB8:
        return 24;
    case GL11.GL_RGB10:
        return 30;
    case GL11.GL_RGB12:
        return 36;
    case GL11.GL_RGB16:
    case GL30.GL_RGB16F:
    case GL30.GL_RGB16I:
        return 48;
    case GL30.GL_RGB32F:
    case GL30.GL_RGB32I:
        return 96;

    case GL11.GL_RGBA:
        return 32;
    case GL11.GL_RGBA2:
        return 8;
    case GL11.GL_RGBA4:
        return 16;
    case GL11.GL_RGBA8:
        return 32;
    case GL11.GL_RGBA12:
        return 48;
    case GL11.GL_RGBA16:
    case GL30.GL_RGBA16F:
    case GL30.GL_RGBA16I:
        return 64;
    case GL30.GL_RGBA32F:
    case GL30.GL_RGBA32I:
        return 128;

    //Deprecated formats.
    case GL11.GL_LUMINANCE:
    case GL11.GL_LUMINANCE8:
        return 8;
    case GL11.GL_LUMINANCE16:
        return 16;

    case GL11.GL_ALPHA:
    case GL11.GL_ALPHA8:
        return 8;
    case GL11.GL_ALPHA16:
        return 16;

    case GL11.GL_LUMINANCE_ALPHA:
    case GL11.GL_LUMINANCE8_ALPHA8:
        return 16;
    case GL11.GL_LUMINANCE16_ALPHA16:
        return 32;

    default:
        return -1;
    }
}

From source file:com.xrbpowered.gl.res.buffers.MultisampleBuffers.java

License:Open Source License

protected void create(int w, int h, int samples, boolean depthBuffer, boolean hdr) {
    colorMSTexId = GL11.glGenTextures();
    GL11.glBindTexture(GL32.GL_TEXTURE_2D_MULTISAMPLE, colorMSTexId);
    GL32.glTexImage2DMultisample(GL32.GL_TEXTURE_2D_MULTISAMPLE, samples, hdr ? GL30.GL_RGB16F : GL11.GL_RGB, w,
            h, false);/*from  w  w  w  .j a  v a  2s.co  m*/
    GL11.glBindTexture(GL32.GL_TEXTURE_2D_MULTISAMPLE, 0);
    GL32.glFramebufferTexture(GL30.GL_FRAMEBUFFER, GL30.GL_COLOR_ATTACHMENT0, colorMSTexId, 0);

    depthMSTexId = 0;
    if (depthBuffer) {
        depthMSTexId = GL11.glGenTextures();
        GL11.glBindTexture(GL32.GL_TEXTURE_2D_MULTISAMPLE, depthMSTexId);
        GL32.glTexImage2DMultisample(GL32.GL_TEXTURE_2D_MULTISAMPLE, samples, GL30.GL_DEPTH24_STENCIL8, w, h,
                false);
        GL11.glBindTexture(GL32.GL_TEXTURE_2D_MULTISAMPLE, 0);
        GL32.glFramebufferTexture(GL30.GL_FRAMEBUFFER, GL30.GL_DEPTH_ATTACHMENT, depthMSTexId, 0);
    }
    checkStatus();
    GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, 0);
}

From source file:org.spoutcraft.api.gui.renderer.GuiRendererFBO.java

License:MIT License

@Override
public void initGui(Gui gui) {
    Minecraft mc = Minecraft.getMinecraft();
    int width = mc.displayWidth;
    int height = mc.displayHeight;
    TextureUtil.bind(guiTex);//from  w w  w .j av a  2 s.co m
    GL11.glTexImage2D(GL11.GL_TEXTURE_2D, 0, GL11.GL_RGBA8, width, height, 0, GL11.GL_RGBA,
            GL11.GL_UNSIGNED_BYTE, (ByteBuffer) null);
    TextureUtil.bind(0);

    GL30.glBindRenderbuffer(GL30.GL_RENDERBUFFER, stencilBuff);
    GL30.glRenderbufferStorage(GL30.GL_RENDERBUFFER, GL30.GL_DEPTH24_STENCIL8, width, height);
    GL30.glBindRenderbuffer(GL30.GL_RENDERBUFFER, 0);

    GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, fbo);
    GL30.glFramebufferTexture2D(GL30.GL_FRAMEBUFFER, GL30.GL_COLOR_ATTACHMENT0, GL11.GL_TEXTURE_2D, guiTex, 0);
    GL30.glFramebufferRenderbuffer(GL30.GL_FRAMEBUFFER, GL30.GL_DEPTH_ATTACHMENT, GL30.GL_RENDERBUFFER,
            stencilBuff);
    GL30.glFramebufferRenderbuffer(GL30.GL_FRAMEBUFFER, GL30.GL_STENCIL_ATTACHMENT, GL30.GL_RENDERBUFFER,
            stencilBuff);

    GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, 0);
}

From source file:se.angergard.engine.graphics.FrameBuffer.java

License:Apache License

public FrameBuffer(int width, int height, boolean hasDepth, boolean hasStencil) {
    this.width = width;
    this.height = height;

    if ((width + height) % 4 != 0.0) {
        new Exception("Width + Height must be divisible by 4");
    }//from   w  w w .j  a  v a  2s  . c o  m

    frameBufferID = GL30.glGenFramebuffers();
    GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, frameBufferID);

    if (hasDepth && hasStencil) {
        depthAndStencilBufferID = GL30.glGenRenderbuffers();
        GL30.glBindRenderbuffer(GL30.GL_RENDERBUFFER, depthAndStencilBufferID);
        GL30.glRenderbufferStorage(GL30.GL_RENDERBUFFER, GL30.GL_DEPTH24_STENCIL8, width, height);
        GL30.glFramebufferRenderbuffer(GL30.GL_FRAMEBUFFER, GL30.GL_DEPTH_STENCIL_ATTACHMENT,
                GL30.GL_RENDERBUFFER, depthAndStencilBufferID);
        GL30.glBindRenderbuffer(GL30.GL_RENDERBUFFER, 0);
    }

    else if (hasDepth) {
        depthBufferID = GL30.glGenRenderbuffers();
        GL30.glBindRenderbuffer(GL30.GL_RENDERBUFFER, depthBufferID);
        GL30.glRenderbufferStorage(GL30.GL_RENDERBUFFER, GL30.GL_DEPTH_COMPONENT32F, width, height);
        GL30.glFramebufferRenderbuffer(GL30.GL_FRAMEBUFFER, GL30.GL_DEPTH_ATTACHMENT, GL30.GL_RENDERBUFFER,
                depthBufferID);
        GL30.glBindRenderbuffer(GL30.GL_RENDERBUFFER, 0);
    }

    else if (hasStencil) {
        stencilBufferID = GL30.glGenRenderbuffers();
        GL30.glBindRenderbuffer(GL30.GL_RENDERBUFFER, stencilBufferID);
        GL30.glRenderbufferStorage(GL30.GL_RENDERBUFFER, GL30.GL_STENCIL_INDEX16, width, height);
        GL30.glFramebufferRenderbuffer(GL30.GL_FRAMEBUFFER, GL30.GL_STENCIL_ATTACHMENT, GL30.GL_RENDERBUFFER,
                stencilBufferID);
        GL30.glBindRenderbuffer(GL30.GL_RENDERBUFFER, 0);
    }

    colorTexture = GL11.glGenTextures();
    GL11.glBindTexture(GL11.GL_TEXTURE_2D, colorTexture);
    GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_S, GL11.GL_CLAMP);
    GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_T, GL11.GL_CLAMP);
    GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_NEAREST);
    GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);

    GL11.glTexImage2D(GL11.GL_TEXTURE_2D, 0, GL11.GL_RGBA8, width, height, 0, GL11.GL_RGBA,
            GL11.GL_UNSIGNED_BYTE, (ByteBuffer) null);

    GL30.glFramebufferTexture2D(GL30.GL_FRAMEBUFFER, GL30.GL_COLOR_ATTACHMENT0, GL11.GL_TEXTURE_2D,
            colorTexture, 0);

    int result = GL30.glCheckFramebufferStatus(GL30.GL_FRAMEBUFFER);
    GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, 0);
    if (result != GL30.GL_FRAMEBUFFER_COMPLETE) {
        if (result == GL30.GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT) {
            new Exception("Frame Buffer Error: incomplete attachment").printStackTrace();
        }
        if (result == GL30.GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER) {
            new Exception("Frame Buffer Error: incomplete draw buffer").printStackTrace();
        }
        if (result == GL30.GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT) {
            new Exception("Frame Buffer Error: missing attachment").printStackTrace();
        }
        if (result == GL30.GL_FRAMEBUFFER_UNSUPPORTED) {
            new Exception("Frame Buffer Error: unsupported combination of formats").printStackTrace();
        }
        if (result == GL30.GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE) {
            new Exception("Frame Buffer Error: incomplete multisample").printStackTrace();
        }
        if (result == GL30.GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER) {
            new Exception("Frame Buffer Error: incomplete read buffer").printStackTrace();
        }

        new Exception("frame buffer couldn't be constructed: unknown error " + result).printStackTrace();
    }
    RenderUtil.unbindFrameBuffer();
    RenderUtil.unbindTexture();

    frameBufferShader = new ShaderProgram().createDefault2DShader();
}