@@ -125,81 +125,55 @@ private boolean isUsingShader() {
125125 public void onDisable () {
126126 super .onDisable ();
127127 Minecraft .getMinecraft ().entityRenderer .stopUseShader ();
128- releaseBuffers ();
129128 }
130129
131130 public static void blur (float multiplier ) {
132131 if (OpenGlHelper .isFramebufferEnabled ()) {
133132 ScaledResolution sr = new ScaledResolution (Minecraft .getMinecraft ());
134133 int width = Minecraft .getMinecraft ().getFramebuffer ().framebufferWidth ;
135134 int height = Minecraft .getMinecraft ().getFramebuffer ().framebufferHeight ;
136- float scaledWidth = width / (float ) sr .getScaleFactor ();
137- float scaledHeight = height / (float ) sr .getScaleFactor ();
138135
139136 GlStateManager .matrixMode (GL11 .GL_PROJECTION );
140- GL11 .glPushMatrix ();
137+ GlStateManager .loadIdentity ();
138+ GlStateManager .ortho (0.0 , (double ) width / sr .getScaleFactor (), (double ) height / sr .getScaleFactor (), 0.0 , 2000.0 , 4000.0 );
141139 GlStateManager .matrixMode (GL11 .GL_MODELVIEW );
142- GL11 .glPushMatrix ();
143- try {
144- GlStateManager .matrixMode (GL11 .GL_PROJECTION );
145- GlStateManager .loadIdentity ();
146- GlStateManager .ortho (0.0 , scaledWidth , scaledHeight , 0.0 , 2000.0 , 4000.0 );
147- GlStateManager .matrixMode (GL11 .GL_MODELVIEW );
148- GlStateManager .loadIdentity ();
149- GlStateManager .translate (0f , 0f , -2000f );
150-
151- blurBufferMain = checkFramebufferSizes (blurBufferMain , width , height );
152- blurBufferInto = checkFramebufferSizes (blurBufferInto , width , height );
153-
154- blurBufferInto .framebufferClear ();
155- blurBufferInto .bindFramebuffer (true );
156-
157- OpenGlHelper .glBlendFunc (770 , 771 , 0 , 1 );
158- GlStateManager .disableLighting ();
159- GlStateManager .disableFog ();
160- GlStateManager .disableBlend ();
161-
162- Minecraft .getMinecraft ().getFramebuffer ().bindFramebufferTexture ();
163- GlStateManager .color (1f , 1f , 1f , 1f );
164- drawTexturedRectNoBlend (0f , 0f , scaledWidth , scaledHeight , 0f , 1f , 0f , 1f , 9728 );
165-
166- GlStateManager .enableBlend ();
167- blurBufferMain .bindFramebufferTexture ();
168- GlStateManager .color (1f , 1f , 1f , multiplier / 10 - 0.1f );
169- drawTexturedRectNoBlend (0f , 0f , scaledWidth , scaledHeight , 0f , 1f , 1f , 0f , 9728 );
170-
171- Minecraft .getMinecraft ().getFramebuffer ().bindFramebuffer (true );
172- blurBufferInto .bindFramebufferTexture ();
173- GlStateManager .color (1f , 1f , 1f , 1f );
174- GlStateManager .enableBlend ();
175- OpenGlHelper .glBlendFunc (770 , 771 , 1 , 771 );
176- drawTexturedRectNoBlend (0f , 0f , scaledWidth , scaledHeight , 0f , 1f , 0f , 1f , 9728 );
177-
178- Framebuffer tempBuff = blurBufferMain ;
179- blurBufferMain = blurBufferInto ;
180- blurBufferInto = tempBuff ;
181- } finally {
182- Minecraft .getMinecraft ().getFramebuffer ().bindFramebuffer (true );
183- GlStateManager .color (1f , 1f , 1f , 1f );
184- GlStateManager .enableTexture2D ();
185- GlStateManager .enableBlend ();
186- GlStateManager .matrixMode (GL11 .GL_MODELVIEW );
187- GL11 .glPopMatrix ();
188- GlStateManager .matrixMode (GL11 .GL_PROJECTION );
189- GL11 .glPopMatrix ();
190- GlStateManager .matrixMode (GL11 .GL_MODELVIEW );
191- }
192- }
193- }
194-
195- private static void releaseBuffers () {
196- if (blurBufferMain != null ) {
197- blurBufferMain .deleteFramebuffer ();
198- blurBufferMain = null ;
199- }
200- if (blurBufferInto != null ) {
201- blurBufferInto .deleteFramebuffer ();
202- blurBufferInto = null ;
140+ GlStateManager .loadIdentity ();
141+ GlStateManager .translate (0f , 0f , -2000f );
142+
143+ blurBufferMain = checkFramebufferSizes (blurBufferMain , width , height );
144+ blurBufferInto = checkFramebufferSizes (blurBufferInto , width , height );
145+
146+ blurBufferInto .framebufferClear ();
147+ blurBufferInto .bindFramebuffer (true );
148+
149+ OpenGlHelper .glBlendFunc (770 , 771 , 0 , 1 ); // GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA
150+ GlStateManager .disableLighting ();
151+ GlStateManager .disableFog ();
152+ GlStateManager .disableBlend ();
153+
154+ Minecraft .getMinecraft ().getFramebuffer ().bindFramebufferTexture ();
155+ GlStateManager .color (1f , 1f , 1f , 1f );
156+ drawTexturedRectNoBlend (0f , 0f , width / sr .getScaleFactor (), height / sr .getScaleFactor (),
157+ 0f , 1f , 0f , 1f , 9728 );
158+
159+ GlStateManager .enableBlend ();
160+ blurBufferMain .bindFramebufferTexture ();
161+ GlStateManager .color (1f , 1f , 1f , multiplier / 10 - 0.1f );
162+ drawTexturedRectNoBlend (0f , 0f , width / sr .getScaleFactor (), height / sr .getScaleFactor (),
163+ 0f , 1f , 1f , 0f , 9728 );
164+
165+ Minecraft .getMinecraft ().getFramebuffer ().bindFramebuffer (true );
166+ blurBufferInto .bindFramebufferTexture ();
167+ GlStateManager .color (1f , 1f , 1f , 1f );
168+ GlStateManager .enableBlend ();
169+ OpenGlHelper .glBlendFunc (770 , 771 , 1 , 771 );
170+
171+ drawTexturedRectNoBlend (0f , 0f , width / sr .getScaleFactor (), height / sr .getScaleFactor (),
172+ 0f , 1f , 0f , 1f , 9728 );
173+
174+ Framebuffer tempBuff = blurBufferMain ;
175+ blurBufferMain = blurBufferInto ;
176+ blurBufferInto = tempBuff ;
203177 }
204178 }
205179}
0 commit comments