List of usage examples for org.lwjgl.opengl ARBShaderObjects glGetUniformLocationARB
@NativeType("GLint") public static int glGetUniformLocationARB(@NativeType("GLhandleARB") int programObj, @NativeType("GLcharARB const *") CharSequence name)
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); } }