From 2ade7fa34909ea197ecd1ca461aaffccf41044d1 Mon Sep 17 00:00:00 2001 From: Matteo Signer Date: Wed, 14 Dec 2016 15:31:41 +0100 Subject: [PATCH] Fix falling sliders with new slider style. --- src/itdelatrisu/opsu/render/CurveRenderState.java | 9 +-------- src/itdelatrisu/opsu/states/Game.java | 2 +- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/src/itdelatrisu/opsu/render/CurveRenderState.java b/src/itdelatrisu/opsu/render/CurveRenderState.java index 96eb71b1..077987da 100644 --- a/src/itdelatrisu/opsu/render/CurveRenderState.java +++ b/src/itdelatrisu/opsu/render/CurveRenderState.java @@ -475,7 +475,6 @@ public class CurveRenderState { GL20.glUseProgram(staticState.program); GL20.glEnableVertexAttribArray(staticState.attribLoc); GL20.glEnableVertexAttribArray(staticState.texCoordLoc); - GL20.glUniform2f(staticState.invSSLoc, 2.f/containerWidth, -2.f/containerHeight); GL20.glUniform1i(staticState.texLoc, 0); GL20.glUniform4f(staticState.colLoc, color.r, color.g, color.b, color.a); GL20.glUniform4f(staticState.colBorderLoc, borderColor.r, borderColor.g, borderColor.b, borderColor.a); @@ -522,9 +521,6 @@ public class CurveRenderState { /** OpenGL shader attribute location of the texture coordinate attribute. */ protected int texCoordLoc = 0; - /** OpenGL shader uniform location of the inverse screen size attribute. */ - protected int invSSLoc = 0; - /** OpenGL shader uniform location of the color attribute. */ protected int colLoc = 0; @@ -577,7 +573,6 @@ public class CurveRenderState { int vtxShdr = GL20.glCreateShader(GL20.GL_VERTEX_SHADER); int frgShdr = GL20.glCreateShader(GL20.GL_FRAGMENT_SHADER); GL20.glShaderSource(vtxShdr, "#version 110\n" - + "uniform vec2 inv_screensize;\n" + "\n" + "attribute vec4 in_position;\n" + "attribute vec2 in_tex_coord;\n" @@ -585,7 +580,7 @@ public class CurveRenderState { + "varying vec2 tex_coord;\n" + "void main()\n" + "{\n" - + " gl_Position = vec4(vec2(-1.0,1.0)+inv_screensize*in_position.xy,in_position.zw);\n" + + " gl_Position = gl_ModelViewProjectionMatrix * in_position;\n" + " tex_coord = in_tex_coord;\n" + "}"); GL20.glCompileShader(vtxShdr); @@ -628,7 +623,6 @@ public class CurveRenderState { GL20.glDeleteShader(frgShdr); attribLoc = GL20.glGetAttribLocation(program, "in_position"); texCoordLoc = GL20.glGetAttribLocation(program, "in_tex_coord"); - invSSLoc = GL20.glGetUniformLocation(program, "inv_screensize"); texLoc = GL20.glGetUniformLocation(program, "tex"); colLoc = GL20.glGetUniformLocation(program, "col_tint"); colBorderLoc = GL20.glGetUniformLocation(program, "col_border"); @@ -649,7 +643,6 @@ public class CurveRenderState { program = 0; attribLoc = 0; texCoordLoc = 0; - invSSLoc = 0; colLoc = 0; colBorderLoc = 0; texLoc = 0; diff --git a/src/itdelatrisu/opsu/states/Game.java b/src/itdelatrisu/opsu/states/Game.java index 1eba4156..aa27eaef 100644 --- a/src/itdelatrisu/opsu/states/Game.java +++ b/src/itdelatrisu/opsu/states/Game.java @@ -1498,7 +1498,7 @@ public class Game extends BasicGameState { // translate and rotate the object g.translate(0, dt * dt * container.getHeight()); - Vec2f rotationCenter = gameObj.getPointAt(beatmap.objects[idx].getTime()); + Vec2f rotationCenter = gameObj.getPointAt((beatmap.objects[idx].getTime() + beatmap.objects[idx].getEndTime()) / 2); g.rotate(rotationCenter.x, rotationCenter.y, rotSpeed * dt); gameObj.draw(g, trackPosition);