Example usage for org.lwjgl.opengl GL30 GL_RGBA32F

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

Introduction

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

Prototype

int GL_RGBA32F

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

Click Source Link

Document

Accepted by the internalFormat parameter of TexImage1D, TexImage2D, and TexImage3D.

Usage

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

License:Open Source License

/**
 * Returns the OpenGL format best corresponding with the given image, or -1
 * if none could be found.// w  w w  .j  a v  a 2 s. c  o  m
 * 
 * @param image The image to get the format of.
 * @return The OpenGL format of the given image, or -1 if none exists.
 */
public static int getFormat(Image image) {
    switch (image.type) {
    case BYTE:
        switch (image.bands) {
        case 1:
            return GL30.GL_R8;
        case 2:
            return GL30.GL_RG8;
        case 3:
            return GL11.GL_RGB8;
        case 4:
            return GL11.GL_RGBA8;
        }
        break;
    case CHAR:
        switch (image.bands) {
        case 1:
            return GL30.GL_R16;
        case 2:
            return GL30.GL_RG16;
        case 3:
            return GL11.GL_RGB16;
        case 4:
            return GL11.GL_RGBA16;
        }
        break;
    case SHORT:
        switch (image.bands) {
        case 1:
            return GL30.GL_R16I;
        case 2:
            return GL30.GL_RG16I;
        case 3:
            return GL30.GL_RGB16I;
        case 4:
            return GL30.GL_RGBA16I;
        }
        break;
    case INT:
        switch (image.bands) {
        case 1:
            return GL30.GL_R32I;
        case 2:
            return GL30.GL_RG32I;
        case 3:
            return GL30.GL_RGB32I;
        case 4:
            return GL30.GL_RGBA32I;
        }
        break;
    case FLOAT:
        switch (image.bands) {
        case 1:
            return GL30.GL_R32F;
        case 2:
            return GL30.GL_RG32F;
        case 3:
            return GL30.GL_RGB32F;
        case 4:
            return GL30.GL_RGBA32F;
        }
        break;
    }

    return -1;
}

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 . ja  v  a2  s  . c  o m*/
 */
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.
 * /*  w w  w . j  a va2  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  w w.  jav a 2s  .  c  o m*/
 * @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.
 *//*from  w w  w . j a  v a  2s  . com*/
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:cuchaz.jfxgl.prism.JFXGLContext.java

License:Open Source License

private static int translatePrismToGL(int value) {
    switch (value) {
    case GLContext.GL_FLOAT:
        return GL11.GL_FLOAT;
    case GLContext.GL_UNSIGNED_BYTE:
        return GL11.GL_UNSIGNED_BYTE;
    case GLContext.GL_UNSIGNED_INT_8_8_8_8_REV:
        return GL12.GL_UNSIGNED_INT_8_8_8_8_REV;
    case GLContext.GL_UNSIGNED_INT_8_8_8_8:
        return GL12.GL_UNSIGNED_INT_8_8_8_8;
    case GLContext.GL_UNSIGNED_SHORT_8_8_APPLE:
        return 0x85BA;

    case GLContext.GL_RGBA:
        return GL11.GL_RGBA;
    case GLContext.GL_BGRA:
        return GL12.GL_BGRA;
    case GLContext.GL_RGB:
        return GL11.GL_RGB;
    case GLContext.GL_LUMINANCE:
        return GL11.GL_LUMINANCE;
    case GLContext.GL_ALPHA:
        return GL11.GL_ALPHA;
    case GLContext.GL_RGBA32F:
        return GL30.GL_RGBA32F;
    case GLContext.GL_YCBCR_422_APPLE:
        return 0x85B9;

    case GLContext.GL_TEXTURE_2D:
        return GL11.GL_TEXTURE_2D;
    case GLContext.GL_TEXTURE_BINDING_2D:
        return GL11.GL_TEXTURE_BINDING_2D;
    case GLContext.GL_NEAREST:
        return GL11.GL_NEAREST;
    case GLContext.GL_LINEAR:
        return GL11.GL_LINEAR;
    case GLContext.GL_NEAREST_MIPMAP_NEAREST:
        return GL11.GL_NEAREST_MIPMAP_NEAREST;
    case GLContext.GL_LINEAR_MIPMAP_LINEAR:
        return GL11.GL_LINEAR_MIPMAP_LINEAR;

    case GLContext.WRAPMODE_REPEAT:
        return GL11.GL_REPEAT;
    case GLContext.WRAPMODE_CLAMP_TO_EDGE:
        return GL12.GL_CLAMP_TO_EDGE;
    case GLContext.WRAPMODE_CLAMP_TO_BORDER:
        return GL13.GL_CLAMP_TO_BORDER;

    case GLContext.GL_MAX_FRAGMENT_UNIFORM_COMPONENTS:
        return GL20.GL_MAX_FRAGMENT_UNIFORM_COMPONENTS;
    case GLContext.GL_MAX_FRAGMENT_UNIFORM_VECTORS:
        return GL41.GL_MAX_FRAGMENT_UNIFORM_VECTORS;
    case GLContext.GL_MAX_TEXTURE_IMAGE_UNITS:
        return GL20.GL_MAX_TEXTURE_IMAGE_UNITS;
    case GLContext.GL_MAX_TEXTURE_SIZE:
        return GL11.GL_MAX_TEXTURE_SIZE;
    case GLContext.GL_MAX_VARYING_COMPONENTS:
        return GL30.GL_MAX_VARYING_COMPONENTS;
    case GLContext.GL_MAX_VARYING_VECTORS:
        return GL41.GL_MAX_VARYING_VECTORS;
    case GLContext.GL_MAX_VERTEX_ATTRIBS:
        return GL20.GL_MAX_VERTEX_ATTRIBS;
    case GLContext.GL_MAX_VERTEX_UNIFORM_COMPONENTS:
        return GL20.GL_MAX_VERTEX_UNIFORM_COMPONENTS;
    case GLContext.GL_MAX_VERTEX_UNIFORM_VECTORS:
        return GL41.GL_MAX_VERTEX_UNIFORM_VECTORS;
    case GLContext.GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS:
        return GL20.GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS;

    default:/*from   ww  w  .  j  ava 2 s. c  o  m*/
        // don't know how to translate, just hope for the best
        return value;
    }
}

From source file:fr.ign.cogit.geoxygene.appli.gl.ImageColormap.java

License:Open Source License

/**
 * @return the generated texture id//from w  ww  . j  a  v a 2 s .co  m
 */
@Override
public final Integer getTextureId() {
    if (this.textureId < 0) {
        // Declaration and initialization
        int target = GL_TEXTURE_2D;
        int levels = 0; // MipMap disabled

        // We generate a texture ID
        this.textureId = glGenTextures();

        // We bind the texture
        glBindTexture(target, this.textureId);

        // Give the buffer to the GPU
        ByteBuffer bufferColormap = ByteBuffer.allocateDirect(nbPoints * 2 * 4 * 4);
        bufferColormap.order(ByteOrder.nativeOrder());

        // In order, we send first colors and then associated values
        for (int i = 0; i < nbPoints; i++) {
            for (int j = 0; j < 4; j++) {
                bufferColormap.putFloat((float) color[i][j]);
            }
        }
        for (int i = 0; i < nbPoints; i++) {
            for (int j = 0; j < 4; j++) {
                bufferColormap.putFloat((float) value[i]);
            }
        }
        bufferColormap.rewind();

        glTexImage2D(target, levels, GL30.GL_RGBA32F, nbPoints, 2, 0, GL11.GL_RGBA, GL11.GL_FLOAT,
                bufferColormap);

        // TODO : useful ?
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL11.GL_NEAREST);
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);

        // TODO : unload buffer, is it working ?
        bufferColormap.clear();

    }

    // Return the texture ID so we can bind it later again
    return this.textureId;
}

From source file:fr.ign.cogit.geoxygene.appli.gl.RasterImage.java

License:Open Source License

private int generateOptimalGLinternalFormat() {
    if (defColormap) {
        // With a colormap, we must keep pixel information in the shader,
        // only solution, give float to shader
        if (nbBandsSelected == 1)
            return GL30.GL_R32F;
        else if (nbBandsSelected == 2)
            return GL30.GL_RG32F;
        else if (nbBandsSelected == 3)
            return GL30.GL_RGB32F;
        else/*from w w  w. j a va2 s .c o m*/
            return GL30.GL_RGBA32F;
    } else if (GLinternalDataType == GL11.GL_BYTE) {
        if (nbBandsSelected == 1)
            return GL30.GL_R8;
        else if (nbBandsSelected == 2)
            return GL30.GL_RG8;
        else if (nbBandsSelected == 3)
            return GL11.GL_RGB8;
        else
            return GL11.GL_RGBA8;
    } else if (GLinternalDataType == GL11.GL_SHORT) {
        if (nbBandsSelected == 1)
            return GL30.GL_R16;
        else if (nbBandsSelected == 2)
            return GL30.GL_RG16;
        else if (nbBandsSelected == 3)
            return GL11.GL_RGB16;
        else
            return GL11.GL_RGBA16;
    } else if (GLinternalDataType == GL11.GL_INT) {
        if (nbBandsSelected == 1)
            return GL30.GL_R32I;
        else if (nbBandsSelected == 2)
            return GL30.GL_RG32I;
        else if (nbBandsSelected == 3)
            return GL30.GL_RGB32I;
        else
            return GL30.GL_RGBA32I;
    } else if (GLinternalDataType == GL11.GL_FLOAT) {
        if (nbBandsSelected == 1)
            return GL30.GL_R32F;
        else if (nbBandsSelected == 2)
            return GL30.GL_RG32F;
        else if (nbBandsSelected == 3)
            return GL30.GL_RGB32F;
        else
            return GL30.GL_RGBA32F;
    } else if (GLinternalDataType == GL11.GL_DOUBLE) {
        // TODO : check that
        if (nbBandsSelected == 1)
            return GL30.GL_R32F;
        else if (nbBandsSelected == 2)
            return GL30.GL_RG32F;
        else if (nbBandsSelected == 3)
            return GL30.GL_RGB32F;
        else
            return GL30.GL_RGBA32F;
    } else if (GLinternalDataType == GL11.GL_UNSIGNED_BYTE) {
        // TODO check that too
        if (nbBandsSelected == 1)
            return GL30.GL_R8;
        else if (nbBandsSelected == 2)
            return GL30.GL_RG8;
        else if (nbBandsSelected == 3)
            return GL11.GL_RGB8;
        else
            return GL11.GL_RGBA8;
    } else if (GLinternalDataType == GL11.GL_UNSIGNED_SHORT) {
        if (nbBandsSelected == 1)
            return GL30.GL_R16;
        else if (nbBandsSelected == 2)
            return GL30.GL_RG16;
        else if (nbBandsSelected == 3)
            return GL11.GL_RGB16;
        else
            return GL11.GL_RGBA16;
    } else if (GLinternalDataType == GL11.GL_UNSIGNED_INT) {
        if (nbBandsSelected == 1)
            return GL30.GL_R32UI;
        else if (nbBandsSelected == 2)
            return GL30.GL_RG32UI;
        else if (nbBandsSelected == 3)
            return GL30.GL_RGB32UI;
        else
            return GL30.GL_RGBA32UI;
    } else {
        System.err.println("generateOptimalGLinternalFormat() failed to find the correct format");
        return -1; // nothing to do here with that
    }
}

From source file:fr.ign.cogit.geoxygene.appli.render.texture.BinaryGradientTexture.java

License:Open Source License

/**
 * @return the generated texture id/* w ww . j  av a 2  s.  c  o  m*/
 */
public final Integer getTextureId() {
    if (this.textureId < 0) {
        GL13.glActiveTexture(this.textureSlot);
        BinaryGradientImage gradientImage = this.getBinaryGradientImage();

        int width = gradientImage.getWidth();
        int height = gradientImage.getHeight();
        // 16 = 4 floats (float = 4 bytes) = 16
        ByteBuffer buffer = BufferUtils.createByteBuffer(width * height * 16);
        double uMin = gradientImage.getuMin();
        double vMin = gradientImage.getvMin();
        double uRange = gradientImage.getuMax() - gradientImage.getuMin();
        double vRange = gradientImage.getvMax() - gradientImage.getvMin();
        for (int y = 0; y < height; y++) {
            for (int x = 0; x < width; x++) {
                GradientPixel pixel = gradientImage.getPixel(x, y);
                buffer.putFloat((float) ((pixel.uTexture - uMin) / uRange));
                buffer.putFloat((float) ((pixel.vTexture - vMin) / vRange));
                // System.err.println("uvTexture = "
                // + (float) ((pixel.uTexture - uMin) / uRange) + "x"
                // + (float) ((pixel.vTexture - vMin) / vRange));
                if (pixel.vGradient != null) {
                    buffer.putFloat((float) pixel.vGradient.x);
                    buffer.putFloat((float) pixel.vGradient.y);
                } else {
                    // TODO: !! compute gradient !!
                    buffer.putFloat(0f);
                    buffer.putFloat(0f);
                }
            }
        }

        buffer.rewind();

        // You now have a ByteBuffer filled with the color data of each
        // pixel.
        // Now just create a texture ID and bind it. Then you can load it
        // using
        // whatever OpenGL method you want, for example:

        this.textureId = glGenTextures(); // Generate texture ID
        glBindTexture(GL_TEXTURE_2D, this.textureId); // Bind texture ID

        glTexImage2D(GL_TEXTURE_2D, 0, GL30.GL_RGBA32F, width, height, 0, GL11.GL_RGBA, GL11.GL_FLOAT, buffer);
        // Setup texture scaling filtering
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
        // Return the texture ID so we can bind it later again
    }
    return this.textureId;
}

From source file:org.jge.render.RenderEngine.java

License:Open Source License

public void init() {
    try {/*from ww w.  ja  v  a  2 s  .c  o m*/
        beforeRenders = new Stack<Runnable>();
        this.setBoolean("normalMapping", true);
        this.setParallaxDispMapping(true);
        this.setLighting(true);
        this.setShadowing(true);
        postFilters = new ArrayList<Shader>();

        lightMatrix = new Matrix4().initScale(0, 0, 0);
        ambientShader = new Shader(new ResourceLocation("shaders", "forward-ambient"));
        renderToTextShader = new Shader(new ResourceLocation("shaders", "renderToText"));
        shadowMapShader = new Shader(new ResourceLocation("shaders", "shadowMapGen"));
        nullFilterShader = new Shader(new ResourceLocation("shaders", "filter-null"));
        gausBlurFilterShader = new Shader(new ResourceLocation("shaders", "filter-gausBlur7x1"));

        setClearColor(0, 0, 0, 0);
        glFrontFace(GL_CW);
        glCullFace(GL_BACK);
        enableGLCap(GL_CULL_FACE);
        enableGLCap(GL_DEPTH_TEST);
        enableGLCap(GL32.GL_DEPTH_CLAMP);

        glShadeModel(GL_SMOOTH);
        setVector3("ambient", Vector3.get(0.75f, 0.75f, 0.75f));
        shadowMaps = new Texture[ShadowMapSize.values().length];
        shadowMapTempTargets = new Texture[ShadowMapSize.values().length];
        for (int i = 0; i < ShadowMapSize.values().length; i++) {
            shadowMaps[i] = new Texture(ShadowMapSize.values()[i].getSize(),
                    ShadowMapSize.values()[i].getSize(), null, GL_TEXTURE_2D, GL_LINEAR, GL_COLOR_ATTACHMENT0,
                    GL_RG32F, GL_RGBA, true);
            shadowMapTempTargets[i] = new Texture(ShadowMapSize.values()[i].getSize(),
                    ShadowMapSize.values()[i].getSize(), null, GL_TEXTURE_2D, GL_LINEAR, GL_COLOR_ATTACHMENT0,
                    GL_RG32F, GL_RGBA, true);
        }

        lights = new ArrayList<BaseLight>();

        glClampColor(GL_CLAMP_FRAGMENT_COLOR, GL_FALSE);
        glClampColor(GL_CLAMP_READ_COLOR, GL_FALSE);
        glClampColor(GL_CLAMP_VERTEX_COLOR, GL_FALSE);

        double width = (double) Window.getCurrent().getWidth() / 1.0;
        double height = (double) Window.getCurrent().getHeight() / 1.0;

        renderToTextTarget = new Texture((int) width, (int) height, null, GL_TEXTURE_2D, GL_NEAREST,
                GL30.GL_COLOR_ATTACHMENT0, GL30.GL_RGBA32F, GL_RGBA, false);
        renderToTextTargetTemp = new Texture((int) width, (int) height, null, GL_TEXTURE_2D, GL_NEAREST,
                GL30.GL_COLOR_ATTACHMENT0, GL30.GL_RGBA32F, GL_RGBA, false);
        planeMaterial = new Material();
        planeMaterial.setFloat("specularIntensity", 1);
        planeMaterial.setFloat("specularPower", 8);
        planeMaterial.setTexture("diffuse", renderToTextTarget);
        altTransform = new Transform();
        altCamera = new Camera(initMatrix = new Matrix4().initIdentity());
        altCamera.setName("alternative camera");
        renderToTextCameraObject = new DummySceneObject(altCamera);
        renderToTextCameraObject.getTransform().rotate(Vector3.get(0, 1, 0), (float) Maths.toRadians(180));

        altTransform.rotate(Vector3.get(1, 0, 0), (float) Maths.toRadians(90));
        altTransform.rotate(Vector3.get(0, 1, 0), (float) Maths.toRadians(180));
        planeMesh = new Mesh(JGEngine.getClasspathResourceLoader()
                .getResource(new ResourceLocation("models", "planePrimitive.obj")));

        setVector3("shadowColor", Vector3.get(0, 0, 0));
    } catch (Exception e) {
        e.printStackTrace();
    }
}