Example usage for org.lwjgl.opengl ARBShaderObjects glGetUniformLocationARB

List of usage examples for org.lwjgl.opengl ARBShaderObjects glGetUniformLocationARB

Introduction

In this page you can find the example usage for org.lwjgl.opengl ARBShaderObjects glGetUniformLocationARB.

Prototype

@NativeType("GLint")
public static int glGetUniformLocationARB(@NativeType("GLhandleARB") int programObj,
        @NativeType("GLcharARB const *") CharSequence name) 

Source Link

Document

Returns the location of uniform variable name .

Usage

From source file:com.a2client.corex.ShaderUniform.java

License:Open Source License

public void init(int ShaderID, String name, Const.SHADER_UNIFORM_TYPE uniform_type) {
    ID = ARBShaderObjects.glGetUniformLocationARB(ShaderID, name);
    this.Name = name;
    this.Type = uniform_type;
    for (int i = 0; i < Value.length; i++)
        Value[i] = Const.NAN;//from   w ww  .  j a va  2 s  .  com
}

From source file:com.ardor3d.scene.state.lwjgl.shader.LwjglShaderUtil.java

License:Open Source License

/**
 * Update variableID for uniform shadervariable if needed.
 * //from  w ww .ja  va2s .  co m
 * @param variable
 *            shadervaribale to update ID on
 * @param programID
 *            shader program context ID
 */
public static void updateUniformLocation(final ShaderVariable variable, final int programID) {
    if (variable.variableID == -1) {
        final ByteBuffer nameBuf = BufferUtils.createByteBuffer(variable.name.getBytes().length + 1);
        nameBuf.clear();
        nameBuf.put(variable.name.getBytes());
        nameBuf.rewind();

        variable.variableID = ARBShaderObjects.glGetUniformLocationARB(programID, nameBuf);

        if (variable.variableID == -1 && !variable.errorLogged) {
            logger.severe("Shader uniform [" + variable.name + "] could not be located in shader");
            variable.errorLogged = true;
        }
    }
}

From source file:com.github.atomicblom.nullplayerexception.client.render.ShaderHelper.java

License:Open Source License

public static void useShader(int shader, ShaderCallback callback) {
    if (!useShaders())
        return;//from   www .  j  ava  2s  .co m

    ARBShaderObjects.glUseProgramObjectARB(shader);

    if (shader != 0) {
        int time = ARBShaderObjects.glGetUniformLocationARB(shader, "time");
        ARBShaderObjects.glUniform1iARB(time, ClientTickHandler.ticksInGame);

        if (callback != null)
            callback.call(shader);
    }
}

From source file:com.mtbs3d.minecrift.VRRenderer.java

License:LGPL

private boolean setupFBOs() {
    try {/*from   w  w  w.j  ava2s . c  o  m*/
        if (this.mc.displayFBWidth != _previousDisplayWidth || this.mc.displayFBHeight != _previousDisplayHeight
                || !_FBOInitialised) {
            _FBOInitialised = false;

            _previousDisplayWidth = this.mc.displayFBWidth;
            _previousDisplayHeight = this.mc.displayFBHeight;

            _DistortionShader_DistortionMapUniform = -1;
            _DistortionShader_RenderTextureUniform = -1;
            _DistortionShader_half_screenWidthUniform = -1;
            _DistortionShader_LeftLensCenterUniform = -1;
            _DistortionShader_RightLensCenterUniform = -1;
            _DistortionShader_LeftScreenCenterUniform = -1;
            _DistortionShader_RightScreenCenterUniform = -1;
            _DistortionShader_ScaleUniform = -1;
            _DistortionShader_ScaleInUniform = -1;
            _DistortionShader_HmdWarpParamUniform = -1;
            _DistortionShader_ChromAbParamUniform = -1;

            if (preDistortionFBO != null)
                preDistortionFBO.delete();
            preDistortionFBO = null;

            if (guiFBO != null)
                guiFBO.delete();
            guiFBO = null;

            if (fxaaFBO != null)
                fxaaFBO.delete();
            fxaaFBO = null;

            if (postDistortionFBO != null)
                postDistortionFBO.delete();
            postDistortionFBO = null;

            if (postSuperSampleFBO != null)
                postSuperSampleFBO.delete();
            postSuperSampleFBO = null;

            _LanczosShader_texelWidthOffsetUniform = -1;
            _LanczosShader_texelHeightOffsetUniform = -1;
            _LanczosShader_inputImageTextureUniform = -1;

            if (distortParams != null)
                distortParams.delete();
        }

        if (!_FBOInitialised) {
            float distance = this.farPlaneDistance * 2.0F;
            if (distance < 128.0F) {
                distance = 128.0F;
            }

            //Setup eye render params
            if (this.mc.vrSettings.useSupersample) {
                eyeRenderParams = mc.hmdInfo.getEyeRenderParams(0, 0,
                        (int) ceil(this.mc.displayFBWidth * this.mc.vrSettings.superSampleScaleFactor),
                        (int) ceil(this.mc.displayFBHeight * this.mc.vrSettings.superSampleScaleFactor), 0.05F,
                        distance, this.mc.vrSettings.fovScaleFactor,
                        this.mc.vrSettings.lensSeparationScaleFactor, getDistortionFitX(), getDistortionFitY(),
                        this.mc.vrSettings.getAspectRatioCorrectionMode());
            } else {
                eyeRenderParams = mc.hmdInfo.getEyeRenderParams(0, 0, this.mc.displayFBWidth,
                        this.mc.displayFBHeight, 0.05F, distance, this.mc.vrSettings.fovScaleFactor,
                        this.mc.vrSettings.lensSeparationScaleFactor, getDistortionFitX(), getDistortionFitY(),
                        this.mc.vrSettings.getAspectRatioCorrectionMode());
            }

            System.out.println("[Minecrift] INITIALISE Display");
            System.out.println("[Minecrift] Distortion: " + (this.mc.vrSettings.useDistortion ? "ON" : "OFF"));
            System.out.println(
                    "[Minecrift] Display w: " + this.mc.displayFBWidth + ", h: " + this.mc.displayFBHeight);
            System.out.println("[Minecrift] Renderscale: " + eyeRenderParams._renderScale);
            if (this.mc.vrSettings.useSupersample)
                System.out.println("[Minecrift] FSAA Scale: " + this.mc.vrSettings.superSampleScaleFactor);
            else
                System.out.println("[Minecrift] FSAA OFF");

            if (this.mc.vrSettings.useSupersample) {
                preDistortionFBO = new FBOParams("preDistortionFBO (SS)", GL11.GL_TEXTURE_2D, GL11.GL_RGBA8,
                        GL11.GL_RGBA, GL11.GL_INT,
                        (int) ceil(this.mc.displayFBWidth * eyeRenderParams._renderScale
                                * this.mc.vrSettings.superSampleScaleFactor),
                        (int) ceil(this.mc.displayFBHeight * eyeRenderParams._renderScale
                                * this.mc.vrSettings.superSampleScaleFactor));
            } else {
                preDistortionFBO = new FBOParams("preDistortionFBO", GL11.GL_TEXTURE_2D, GL11.GL_RGBA8,
                        GL11.GL_RGBA, GL11.GL_INT,
                        (int) ceil(this.mc.displayFBWidth * eyeRenderParams._renderScale),
                        (int) ceil(this.mc.displayFBHeight * eyeRenderParams._renderScale));
            }
            mc.checkGLError("FBO create");

            if (this.mc.vrSettings.useDistortionTextureLookupOptimisation) {
                if (this.mc.vrSettings.useChromaticAbCorrection) {
                    _Distortion_shaderProgramId = ShaderHelper.initShaders(BASIC_VERTEX_SHADER,
                            OCULUS_DISTORTION_FRAGMENT_SHADER_WITH_CHROMATIC_ABERRATION_CORRECTION_DIST_MAP,
                            false);
                } else {
                    _Distortion_shaderProgramId = ShaderHelper.initShaders(BASIC_VERTEX_SHADER,
                            OCULUS_DISTORTION_FRAGMENT_SHADER_NO_CHROMATIC_ABERRATION_CORRECTION_DIST_MAP,
                            false);
                }
            } else {
                if (this.mc.vrSettings.useChromaticAbCorrection) {
                    _Distortion_shaderProgramId = ShaderHelper.initShaders(BASIC_VERTEX_SHADER,
                            OCULUS_DISTORTION_FRAGMENT_SHADER_WITH_CHROMATIC_ABERRATION_CORRECTION, false);
                } else {
                    _Distortion_shaderProgramId = ShaderHelper.initShaders(BASIC_VERTEX_SHADER,
                            OCULUS_DISTORTION_FRAGMENT_SHADER_NO_CHROMATIC_ABERRATION_CORRECTION, false);
                }
            }

            // Setup uniform IDs
            _DistortionShader_DistortionMapUniform = ARBShaderObjects
                    .glGetUniformLocationARB(_Distortion_shaderProgramId, "distortionMap");
            _DistortionShader_RenderTextureUniform = ARBShaderObjects
                    .glGetUniformLocationARB(_Distortion_shaderProgramId, "bgl_RenderTexture");
            _DistortionShader_half_screenWidthUniform = ARBShaderObjects
                    .glGetUniformLocationARB(_Distortion_shaderProgramId, "half_screenWidth");
            _DistortionShader_LeftLensCenterUniform = ARBShaderObjects
                    .glGetUniformLocationARB(_Distortion_shaderProgramId, "LeftLensCenter");
            _DistortionShader_RightLensCenterUniform = ARBShaderObjects
                    .glGetUniformLocationARB(_Distortion_shaderProgramId, "RightLensCenter");
            _DistortionShader_LeftScreenCenterUniform = ARBShaderObjects
                    .glGetUniformLocationARB(_Distortion_shaderProgramId, "LeftScreenCenter");
            _DistortionShader_RightScreenCenterUniform = ARBShaderObjects
                    .glGetUniformLocationARB(_Distortion_shaderProgramId, "RightScreenCenter");
            _DistortionShader_ScaleUniform = ARBShaderObjects
                    .glGetUniformLocationARB(_Distortion_shaderProgramId, "Scale");
            _DistortionShader_ScaleInUniform = ARBShaderObjects
                    .glGetUniformLocationARB(_Distortion_shaderProgramId, "ScaleIn");
            _DistortionShader_HmdWarpParamUniform = ARBShaderObjects
                    .glGetUniformLocationARB(_Distortion_shaderProgramId, "HmdWarpParam");
            _DistortionShader_ChromAbParamUniform = ARBShaderObjects
                    .glGetUniformLocationARB(_Distortion_shaderProgramId, "ChromAbParam");

            ShaderHelper.checkGLError("FBO init shader");

            // GUI FBO
            guiFBO = new FBOParams("guiFBO", GL11.GL_TEXTURE_2D, GL11.GL_RGBA8, GL11.GL_RGBA, GL11.GL_INT,
                    this.mc.displayWidth, this.mc.displayHeight);

            // FXAA FBO
            if (this.mc.vrSettings.useFXAA) {
                // Shader init
                _FXAA_shaderProgramId = ShaderHelper.initShaders(BASIC_VERTEX_SHADER, FXAA_FRAGMENT_SHADER,
                        false);

                _FXAA_RenderTextureUniform = ARBShaderObjects.glGetUniformLocationARB(_FXAA_shaderProgramId,
                        "sampler0");
                _FXAA_RenderedTextureSizeUniform = ARBShaderObjects
                        .glGetUniformLocationARB(_FXAA_shaderProgramId, "resolution");

                if (this.mc.vrSettings.useSupersample) {
                    fxaaFBO = new FBOParams("fxaaFBO", GL11.GL_TEXTURE_2D, GL11.GL_RGBA8, GL11.GL_RGBA,
                            GL11.GL_INT,
                            (int) ceil(this.mc.displayFBWidth * this.mc.vrSettings.superSampleScaleFactor),
                            (int) ceil(this.mc.displayFBHeight * this.mc.vrSettings.superSampleScaleFactor));
                } else {
                    fxaaFBO = new FBOParams("fxaaFBO", GL11.GL_TEXTURE_2D, GL11.GL_RGBA8, GL11.GL_RGBA,
                            GL11.GL_INT, this.mc.displayFBWidth, this.mc.displayFBHeight);
                }

                ShaderHelper.checkGLError("Init FXAA");
            }

            if (this.mc.vrSettings.useSupersample) {
                // Lanczos downsample FBOs
                postDistortionFBO = new FBOParams("postDistortionFBO (SS)", GL11.GL_TEXTURE_2D, GL11.GL_RGBA8,
                        GL11.GL_RGBA, GL11.GL_INT,
                        (int) ceil(this.mc.displayFBWidth * this.mc.vrSettings.superSampleScaleFactor),
                        (int) ceil(this.mc.displayFBHeight * this.mc.vrSettings.superSampleScaleFactor));
                postSuperSampleFBO = new FBOParams("postSuperSampleFBO (SS)", GL11.GL_TEXTURE_2D, GL11.GL_RGBA8,
                        GL11.GL_RGBA, GL11.GL_INT, (int) ceil(this.mc.displayFBWidth),
                        (int) ceil(this.mc.displayFBHeight * this.mc.vrSettings.superSampleScaleFactor));

                mc.checkGLError("Lanczos FBO create");

                _Lanczos_shaderProgramId = ShaderHelper.initShaders(LANCZOS_SAMPLER_VERTEX_SHADER,
                        LANCZOS_SAMPLER_FRAGMENT_SHADER, true);

                ShaderHelper.checkGLError("@1");
                GL20.glValidateProgram(_Lanczos_shaderProgramId);

                // Setup uniform IDs
                _LanczosShader_texelWidthOffsetUniform = ARBShaderObjects
                        .glGetUniformLocationARB(_Lanczos_shaderProgramId, "texelWidthOffset");
                _LanczosShader_texelHeightOffsetUniform = ARBShaderObjects
                        .glGetUniformLocationARB(_Lanczos_shaderProgramId, "texelHeightOffset");
                _LanczosShader_inputImageTextureUniform = ARBShaderObjects
                        .glGetUniformLocationARB(_Lanczos_shaderProgramId, "inputImageTexture");

                ShaderHelper.checkGLError("FBO init Lanczos shader");
            } else {
                _Lanczos_shaderProgramId = -1;
                _LanczosShader_texelWidthOffsetUniform = -1;
                _LanczosShader_texelHeightOffsetUniform = -1;
                _LanczosShader_inputImageTextureUniform = -1;
            }

            // Pre-calculate distortion map
            distortParams = new DistortionParams(this.mc.hmdInfo.getHMDInfo(), this.eyeRenderParams,
                    this.mc.displayFBWidth, this.mc.displayFBHeight,
                    this.mc.vrSettings.useChromaticAbCorrection, this.mc.vrSettings.useSupersample,
                    this.mc.vrSettings.superSampleScaleFactor);

            // Get our refresh period
            int Hz = Display.getDisplayMode().getFrequency();
            if (Hz != 0)
                vsyncPeriodNanos = 1000000000L / Hz;
            else
                vsyncPeriodNanos = 0;

            _FBOInitialised = true;
        }
    } catch (Exception ex) {
        // We had an issue. Set the usual suspects to defaults...
        this.mc.vrSettings.useSupersample = false;
        this.mc.vrSettings.superSampleScaleFactor = 2.0f;
        this.mc.vrSettings.saveOptions();
        return false;
    }

    return true;
}

From source file:com.wuest.prefab.Structures.Render.ShaderHelper.java

License:Open Source License

public static void useShader(int shader) {
    if (!OpenGlHelper.shadersSupported) {
        return;/*from ww  w.  ja  va 2 s .c  om*/
    }

    ARBShaderObjects.glUseProgramObjectARB(shader);

    if (shader != 0) {
        int time = ARBShaderObjects.glGetUniformLocationARB(shader, "time");
        ARBShaderObjects.glUniform1iARB(time, ClientEventHandler.ticksInGame);

        int alpha = ARBShaderObjects.glGetUniformLocationARB(shader, "alpha");
        ARBShaderObjects.glUniform1fARB(alpha, 0.4F);
    }
}

From source file:de.sanandrew.mods.turretmod.client.gui.tinfo.GuiButtonCategory.java

License:Creative Commons License

private void doBtnShader(int shader) {
    TextureManager texMgr = Minecraft.getMinecraft().renderEngine;
    int heightMatchUniform = ARBShaderObjects.glGetUniformLocationARB(shader, "heightMatch");
    int imageUniform = ARBShaderObjects.glGetUniformLocationARB(shader, "image");
    int maskUniform = ARBShaderObjects.glGetUniformLocationARB(shader, "mask");

    float heightMatch = this.ticksHovered / TIME;
    OpenGlHelper.setActiveTexture(ARBMultitexture.GL_TEXTURE0_ARB);
    GlStateManager.bindTexture(texMgr.getTexture(this.texture).getGlTextureId());
    ARBShaderObjects.glUniform1iARB(imageUniform, 0);

    OpenGlHelper.setActiveTexture(ARBMultitexture.GL_TEXTURE0_ARB + TmrConfiguration.glSecondaryTextureUnit);
    GlStateManager.enableTexture2D();/*from w  w  w.j a  va  2 s  . c o  m*/
    GlStateManager.glGetInteger(GL11.GL_TEXTURE_BINDING_2D);
    ResourceLocation stencil = Resources.TINFO_GRP_STENCIL.getResource();
    texMgr.getTexture(stencil);
    ITextureObject stencilTex;
    texMgr.bindTexture(stencil);
    stencilTex = texMgr.getTexture(stencil);
    GlStateManager.bindTexture(stencilTex.getGlTextureId());
    ARBShaderObjects.glUniform1iARB(maskUniform, 7);

    ARBShaderObjects.glUniform1fARB(heightMatchUniform, heightMatch);
}

From source file:de.sanandrew.mods.turretmod.client.shader.ShaderGrayscale.java

License:Creative Commons License

private void drawGrayscale(int shader, float brightness) {
    TextureManager texMgr = Minecraft.getMinecraft().renderEngine;
    int imageUniform = ARBShaderObjects.glGetUniformLocationARB(shader, "image");
    int brightnessUniform = ARBShaderObjects.glGetUniformLocationARB(shader, "brightness");

    OpenGlHelper.setActiveTexture(ARBMultitexture.GL_TEXTURE0_ARB);
    GlStateManager.bindTexture(texMgr.getTexture(this.texture).getGlTextureId());
    ARBShaderObjects.glUniform1iARB(imageUniform, 0);
    ARBShaderObjects.glUniform1fARB(brightnessUniform, brightness);
}

From source file:de.sanandrew.mods.turretmod.client.shader.ShaderItemAlphaOverride.java

License:Creative Commons License

public void call(int shader) {
    TextureManager texMgr = Minecraft.getMinecraft().renderEngine;
    int alphaUniform = ARBShaderObjects.glGetUniformLocationARB(shader, "alpha");
    int imageUniform = ARBShaderObjects.glGetUniformLocationARB(shader, "image");

    OpenGlHelper.setActiveTexture(ARBMultitexture.GL_TEXTURE0_ARB);
    GL11.glBindTexture(GL11.GL_TEXTURE_2D,
            texMgr.getTexture(TextureMap.LOCATION_BLOCKS_TEXTURE).getGlTextureId());
    ARBShaderObjects.glUniform1iARB(imageUniform, 0);
    ARBShaderObjects.glUniform1fARB(alphaUniform, this.alphaMulti);
}

From source file:de.sanandrew.mods.turretmod.client.util.ShaderHelper.java

License:Open Source License

public static void useShader(int shader, Consumer<Integer> callback) {
    if (!areShadersEnabled()) {
        return;//from  w  w w. j a  v a2  s .  com
    }

    ARBShaderObjects.glUseProgramObjectARB(shader);

    if (shader != 0) {
        int time = ARBShaderObjects.glGetUniformLocationARB(shader, "time");
        ARBShaderObjects.glUniform1iARB(time, ClientTickHandler.ticksInGame);

        if (callback != null) {
            callback.accept(shader);
        }
    }
}

From source file:elucent.roots.render.ShaderHandler.java

License:Open Source License

public static void useShader(int shader, Consumer<Integer> callback) {
    if (!useShaders())
        return;//w  w w .  j  a va  2 s. c  o  m

    ARBShaderObjects.glUseProgramObjectARB(shader);

    if (shader != 0) {
        int time = ARBShaderObjects.glGetUniformLocationARB(shader, "time");
        ARBShaderObjects.glUniform1iARB(time, ClientTickHandler.ticksInGame);

        if (callback != null)
            callback.accept(shader);
    }
}