View difference between Paste ID: nQ5Pw23Z and xBdAAHEy
SHOW: | | - or go back to the newest paste.
1
    private void renderLightRuneFx(Vec3Int coord) {
2
        glPushMatrix();
3
4
        EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer;
5
6
7
        double offsetX = coord.x - (player.lastTickPosX + (player.posX - player.lastTickPosX) * partialTicks) + 0.5;
8
        double offsetY = coord.y - (player.lastTickPosY + (player.posY - player.lastTickPosY) * partialTicks) + 5.5;
9
        double offsetZ = coord.z - (player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * partialTicks) + 0.5;
10
11
        int renderDistBlocks = FMLClientHandler.instance().getClient().gameSettings.renderDistanceChunks * 16;
12
        if ((offsetX*offsetX + offsetZ*offsetZ) > (renderDistBlocks*renderDistBlocks)) return;
13
14
        glTranslated(offsetX, offsetY, offsetZ);
15
        glColor4f(0.8f, 0.8f, 1f, 0.9f);
16
        glRotatef(renderTick, 0, 1, 0);
17
        glDisable(GL_TEXTURE_2D);
18
19
        glEnable(GL_BLEND);
20
        glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
21
22
23
        blurredXTexBuffer.bindFramebuffer(true); // true = adjust viewport
24
        ShaderHelper.useShader(ShaderHelper.GAUSSIAN);
25
        ShaderHelper.setUniform(ShaderHelper.GAUSSIAN, "direction", DIRECTION_X);
26
27
        sphere.draw(2, 24, 24);
28
29
        glEnable(GL_TEXTURE_2D);
30
        blurredYTexBuffer.bindFramebuffer(true);
31
        ShaderHelper.useShader(ShaderHelper.GAUSSIAN);
32
        ShaderHelper.setUniform(ShaderHelper.GAUSSIAN, "direction", DIRECTION_Y);
33
        glBindTexture(GL_TEXTURE_2D, blurredXTexBuffer.framebufferTexture);
34
        glDrawArrays(GL_TRIANGLES, 0, 6);
35
36
        blurredYTexBuffer.unbindFramebuffer();
37
        ShaderHelper.useShader(ShaderHelper.GAUSSIAN);
38
        ShaderHelper.setUniform(ShaderHelper.GAUSSIAN, "direction", DIRECTION_Z);
39
        glBindTexture(GL_TEXTURE_2D, blurredYTexBuffer.framebufferTexture);
40
        glDrawArrays(GL_TRIANGLES, 0, 6);
41
42
        glEnable(GL_TEXTURE_2D);
43
        glDisable(GL_BLEND);
44
        glPopMatrix();
45
    }
46
47
    public static void setUniform(int shader, String name, IntBuffer values) {
48
        int location = ARBShaderObjects.glGetUniformLocationARB(shader, name);
49
        ARBShaderObjects.glUniform1ARB(location, values);
50
    }
51
52
    public static void useShader(int shader, IntConsumer callback) {
53
        if(!useShaders())
54
            return;
55
56
        ARBShaderObjects.glUseProgramObjectARB(shader);
57
58
        if(shader != 0) {
59
            // We'll see if we need this
60
            //int time = ARBShaderObjects.glGetUniformLocationARB(shader, "time");
61
            //ARBShaderObjects.glUniform1iARB(time, ClientTickHandler.ticksInGame);
62
63
            if(callback != null)
64
                callback.accept(shader);
65
        }
66
    }