Search in sources :

Example 1 with Shader

use of net.minecraft.client.render.Shader in project BleachHack by BleachDrinker420.

the class ShaderEffectWrapper method drawFramebufferToMain.

public void drawFramebufferToMain(String framebuffer) {
    Framebuffer buffer = getFramebuffer(framebuffer);
    Shader blitshader = mc.gameRenderer.blitScreenShader;
    blitshader.addSampler("DiffuseSampler", buffer.getColorAttachment());
    double w = mc.getWindow().getFramebufferWidth();
    double h = mc.getWindow().getFramebufferHeight();
    float ws = (float) buffer.viewportWidth / (float) buffer.textureWidth;
    float hs = (float) buffer.viewportHeight / (float) buffer.textureHeight;
    RenderSystem.enableBlend();
    RenderSystem.blendFuncSeparate(GlStateManager.SrcFactor.SRC_ALPHA, GlStateManager.DstFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SrcFactor.ZERO, GlStateManager.DstFactor.ONE);
    GlStateManager._colorMask(true, true, true, false);
    GlStateManager._disableDepthTest();
    GlStateManager._depthMask(false);
    GlStateManager._viewport(0, 0, (int) w, (int) h);
    blitshader.bind();
    Tessellator tessellator = RenderSystem.renderThreadTesselator();
    BufferBuilder bufferBuilder = tessellator.getBuffer();
    bufferBuilder.begin(VertexFormat.DrawMode.QUADS, VertexFormats.POSITION_TEXTURE_COLOR);
    bufferBuilder.vertex(0, h, 0).texture(0f, 0f).color(255, 255, 255, 255).next();
    bufferBuilder.vertex(w, h, 0).texture(ws, 0f).color(255, 255, 255, 255).next();
    bufferBuilder.vertex(w, 0, 0).texture(ws, hs).color(255, 255, 255, 255).next();
    bufferBuilder.vertex(0, 0, 0).texture(0f, hs).color(255, 255, 255, 255).next();
    bufferBuilder.end();
    BufferRenderer.postDraw(bufferBuilder);
    blitshader.unbind();
    GlStateManager._depthMask(true);
    GlStateManager._colorMask(true, true, true, true);
    RenderSystem.disableBlend();
}
Also used : Framebuffer(net.minecraft.client.gl.Framebuffer) Tessellator(net.minecraft.client.render.Tessellator) BufferBuilder(net.minecraft.client.render.BufferBuilder) Shader(net.minecraft.client.render.Shader)

Example 2 with Shader

use of net.minecraft.client.render.Shader in project KiwiClient by TangyKiwi.

the class ShaderEffectWrapper method drawFramebufferToMain.

public void drawFramebufferToMain(String framebuffer) {
    Framebuffer buffer = getFramebuffer(framebuffer);
    Shader blitshader = mc.gameRenderer.blitScreenShader;
    blitshader.addSampler("DiffuseSampler", buffer.getColorAttachment());
    double w = mc.getWindow().getFramebufferWidth();
    double h = mc.getWindow().getFramebufferHeight();
    float ws = (float) buffer.viewportWidth / (float) buffer.textureWidth;
    float hs = (float) buffer.viewportHeight / (float) buffer.textureHeight;
    RenderSystem.enableBlend();
    RenderSystem.blendFuncSeparate(GlStateManager.SrcFactor.SRC_ALPHA, GlStateManager.DstFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SrcFactor.ZERO, GlStateManager.DstFactor.ONE);
    GlStateManager._colorMask(true, true, true, false);
    GlStateManager._disableDepthTest();
    GlStateManager._depthMask(false);
    GlStateManager._viewport(0, 0, (int) w, (int) h);
    blitshader.bind();
    Tessellator tessellator = RenderSystem.renderThreadTesselator();
    BufferBuilder bufferBuilder = tessellator.getBuffer();
    bufferBuilder.begin(VertexFormat.DrawMode.QUADS, VertexFormats.POSITION_TEXTURE_COLOR);
    bufferBuilder.vertex(0, h, 0).texture(0f, 0f).color(255, 255, 255, 255).next();
    bufferBuilder.vertex(w, h, 0).texture(ws, 0f).color(255, 255, 255, 255).next();
    bufferBuilder.vertex(w, 0, 0).texture(ws, hs).color(255, 255, 255, 255).next();
    bufferBuilder.vertex(0, 0, 0).texture(0f, hs).color(255, 255, 255, 255).next();
    bufferBuilder.end();
    BufferRenderer.postDraw(bufferBuilder);
    blitshader.unbind();
    GlStateManager._depthMask(true);
    GlStateManager._colorMask(true, true, true, true);
    RenderSystem.disableBlend();
}
Also used : Framebuffer(net.minecraft.client.gl.Framebuffer) Tessellator(net.minecraft.client.render.Tessellator) BufferBuilder(net.minecraft.client.render.BufferBuilder) Shader(net.minecraft.client.render.Shader)

Aggregations

Framebuffer (net.minecraft.client.gl.Framebuffer)2 BufferBuilder (net.minecraft.client.render.BufferBuilder)2 Shader (net.minecraft.client.render.Shader)2 Tessellator (net.minecraft.client.render.Tessellator)2