Flipped Y-axis in flat layers and cursor input. Now (0; 0) is lower left
This commit is contained in:
		| @@ -101,6 +101,7 @@ public class InputHandler { | |||||||
| 			double x, double y | 			double x, double y | ||||||
| 	) { | 	) { | ||||||
| 		if (GraphicsBackend.getWindowHandle() != window) return; | 		if (GraphicsBackend.getWindowHandle() != window) return; | ||||||
|  | 		y = GraphicsInterface.getFrameHeight() - y; // Flip y axis | ||||||
| 		 | 		 | ||||||
| 		InputTracker.initializeCursorPosition(x, y); | 		InputTracker.initializeCursorPosition(x, y); | ||||||
| 		 | 		 | ||||||
|   | |||||||
							
								
								
									
										6
									
								
								src/main/java/ru/windcorp/progressia/client/graphics/flat/FlatRenderHelper.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										6
									
								
								src/main/java/ru/windcorp/progressia/client/graphics/flat/FlatRenderHelper.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							| @@ -1,5 +1,5 @@ | |||||||
| /******************************************************************************* | /******************************************************************************* | ||||||
|  * Progressia |  * Optica | ||||||
|  * Copyright (C) 2020  Wind Corporation |  * Copyright (C) 2020  Wind Corporation | ||||||
|  * |  * | ||||||
|  * This program is free software: you can redistribute it and/or modify |  * This program is free software: you can redistribute it and/or modify | ||||||
| @@ -36,8 +36,8 @@ public abstract class FlatRenderHelper extends ShapeRenderHelper { | |||||||
| 		float width = GraphicsInterface.getFrameWidth(); | 		float width = GraphicsInterface.getFrameWidth(); | ||||||
| 		float height = GraphicsInterface.getFrameHeight(); | 		float height = GraphicsInterface.getFrameHeight(); | ||||||
| 		 | 		 | ||||||
| 		return finalTransform.identity().translate(-1, +1, 0) | 		return finalTransform.identity().translate(-1, -1, 0) | ||||||
| 	              .scale(2 / width, -2 / height, 1 / MAX_DEPTH) | 	              .scale(2 / width, 2 / height, 1 / MAX_DEPTH) | ||||||
| 	              .mul(getTransform()); | 	              .mul(getTransform()); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										10
									
								
								src/main/java/ru/windcorp/progressia/client/graphics/flat/FlatRenderProgram.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										10
									
								
								src/main/java/ru/windcorp/progressia/client/graphics/flat/FlatRenderProgram.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							| @@ -1,5 +1,5 @@ | |||||||
| /******************************************************************************* | /******************************************************************************* | ||||||
|  * Progressia |  * Optica | ||||||
|  * Copyright (C) 2020  Wind Corporation |  * Copyright (C) 2020  Wind Corporation | ||||||
|  * |  * | ||||||
|  * This program is free software: you can redistribute it and/or modify |  * This program is free software: you can redistribute it and/or modify | ||||||
| @@ -104,14 +104,6 @@ public class FlatRenderProgram extends ShapeRenderProgram { | |||||||
| 		masks.flip(); | 		masks.flip(); | ||||||
| 		masksUniform.set(masks); | 		masksUniform.set(masks); | ||||||
| 		 | 		 | ||||||
| //		for (int i = 0; i < pos; ++i) { |  | ||||||
| //			if (i % TransformedMask.SIZE_IN_FLOATS == 0) { |  | ||||||
| //				System.out.print(" | "); |  | ||||||
| //			} |  | ||||||
| //			System.out.print(masks.get(i) + "; "); |  | ||||||
| //		} |  | ||||||
| //		System.out.println(); |  | ||||||
| 		 |  | ||||||
| 		masks.limit(limit); | 		masks.limit(limit); | ||||||
| 		masks.position(pos); | 		masks.position(pos); | ||||||
| 	} | 	} | ||||||
|   | |||||||
							
								
								
									
										8
									
								
								src/main/java/ru/windcorp/progressia/client/graphics/flat/LayerTestUI.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										8
									
								
								src/main/java/ru/windcorp/progressia/client/graphics/flat/LayerTestUI.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							| @@ -1,5 +1,5 @@ | |||||||
| /******************************************************************************* | /******************************************************************************* | ||||||
|  * Progressia |  * Optica | ||||||
|  * Copyright (C) 2020  Wind Corporation |  * Copyright (C) 2020  Wind Corporation | ||||||
|  * |  * | ||||||
|  * This program is free software: you can redistribute it and/or modify |  * This program is free software: you can redistribute it and/or modify | ||||||
| @@ -52,9 +52,9 @@ public class LayerTestUI extends AssembledFlatLayer { | |||||||
| 		final int boxShadowColor = flag ? 0x440000 : 0x444400; | 		final int boxShadowColor = flag ? 0x440000 : 0x444400; | ||||||
| 		 | 		 | ||||||
| 		int x = (getWidth() - WIDTH) / 2; | 		int x = (getWidth() - WIDTH) / 2; | ||||||
| 		int y = getHeight() - HEIGHT - 2*BORDER; | 		int y = 2*BORDER; | ||||||
|  |  | ||||||
| 		target.fill(x + BORDER, y + BORDER, WIDTH, HEIGHT, boxShadowColor); | 		target.fill(x + BORDER, y - BORDER, WIDTH, HEIGHT, boxShadowColor); | ||||||
| 		target.fill(x - 1, y - 1, WIDTH + 2, HEIGHT + 2, boxShadowColor); | 		target.fill(x - 1, y - 1, WIDTH + 2, HEIGHT + 2, boxShadowColor); | ||||||
| 		target.fill(x, y, WIDTH, HEIGHT, borderColor); | 		target.fill(x, y, WIDTH, HEIGHT, borderColor); | ||||||
| 		target.fill(x + BORDER, y + BORDER, WIDTH - 2*BORDER, HEIGHT - 2*BORDER, boxColor); | 		target.fill(x + BORDER, y + BORDER, WIDTH - 2*BORDER, HEIGHT - 2*BORDER, boxColor); | ||||||
| @@ -67,7 +67,7 @@ public class LayerTestUI extends AssembledFlatLayer { | |||||||
| 		final Texture compassBg = SimpleTextures.get("compass_icon"); | 		final Texture compassBg = SimpleTextures.get("compass_icon"); | ||||||
| 		final Texture compassFg = SimpleTextures.get("compass_icon_arrow"); | 		final Texture compassFg = SimpleTextures.get("compass_icon_arrow"); | ||||||
| 		 | 		 | ||||||
| 		target.drawTexture(texShadow, texShadow, texSize, texSize, Colors.BLACK, compassBg); | 		target.drawTexture(texShadow, -texShadow, texSize, texSize, Colors.BLACK, compassBg); | ||||||
| 		target.drawTexture(0, 0, texSize, texSize, compassBg); | 		target.drawTexture(0, 0, texSize, texSize, compassBg); | ||||||
| 		 | 		 | ||||||
| 		target.addCustomRenderer(new LambdaModel(LambdaModel.lambdaBuilder() | 		target.addCustomRenderer(new LambdaModel(LambdaModel.lambdaBuilder() | ||||||
|   | |||||||
							
								
								
									
										6
									
								
								src/main/java/ru/windcorp/progressia/client/graphics/flat/RenderTarget.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										6
									
								
								src/main/java/ru/windcorp/progressia/client/graphics/flat/RenderTarget.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							| @@ -1,5 +1,5 @@ | |||||||
| /******************************************************************************* | /******************************************************************************* | ||||||
|  * Progressia |  * Optica | ||||||
|  * Copyright (C) 2020  Wind Corporation |  * Copyright (C) 2020  Wind Corporation | ||||||
|  * |  * | ||||||
|  * This program is free software: you can redistribute it and/or modify |  * This program is free software: you can redistribute it and/or modify | ||||||
| @@ -228,9 +228,9 @@ public class RenderTarget { | |||||||
| 				FlatRenderProgram.getDefault(), | 				FlatRenderProgram.getDefault(), | ||||||
| 				texture, | 				texture, | ||||||
| 				createVectorFromRGBInt(color), | 				createVectorFromRGBInt(color), | ||||||
| 				new Vec3(x, y + height, depth), // Flip | 				new Vec3(x, y, depth), | ||||||
| 				new Vec3(width, 0, 0), | 				new Vec3(width, 0, 0), | ||||||
| 				new Vec3(0, -height, 0) | 				new Vec3(0, height, 0) | ||||||
| 		); | 		); | ||||||
| 	} | 	} | ||||||
| 	 | 	 | ||||||
|   | |||||||
							
								
								
									
										14
									
								
								src/main/java/ru/windcorp/progressia/client/graphics/flat/TransformedMask.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										14
									
								
								src/main/java/ru/windcorp/progressia/client/graphics/flat/TransformedMask.java
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							| @@ -1,5 +1,5 @@ | |||||||
| /******************************************************************************* | /******************************************************************************* | ||||||
|  * Progressia |  * Optica | ||||||
|  * Copyright (C) 2020  Wind Corporation |  * Copyright (C) 2020  Wind Corporation | ||||||
|  * |  * | ||||||
|  * This program is free software: you can redistribute it and/or modify |  * This program is free software: you can redistribute it and/or modify | ||||||
| @@ -22,7 +22,6 @@ import java.nio.FloatBuffer; | |||||||
| import glm.mat._4.Mat4; | import glm.mat._4.Mat4; | ||||||
| import glm.vec._2.Vec2; | import glm.vec._2.Vec2; | ||||||
| import glm.vec._4.Vec4; | import glm.vec._4.Vec4; | ||||||
| import ru.windcorp.progressia.client.graphics.backend.GraphicsInterface; |  | ||||||
|  |  | ||||||
| public class TransformedMask { | public class TransformedMask { | ||||||
| 	 | 	 | ||||||
| @@ -92,8 +91,6 @@ public class TransformedMask { | |||||||
| 		transform.mul(startXendY); | 		transform.mul(startXendY); | ||||||
| 		transform.mul(endXstartY); | 		transform.mul(endXstartY); | ||||||
| 		transform.mul(endXendY); | 		transform.mul(endXendY); | ||||||
|  |  | ||||||
| 		flipY(); |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	private void ensureTemporaryVariablesExist() { | 	private void ensureTemporaryVariablesExist() { | ||||||
| @@ -105,15 +102,6 @@ public class TransformedMask { | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	private void flipY() { |  | ||||||
| 		float height = GraphicsInterface.getFrameHeight(); |  | ||||||
| 		 |  | ||||||
| 		startXstartY.y = height - startXstartY.y; |  | ||||||
| 		startXendY.y = height - startXendY.y; |  | ||||||
| 		endXstartY.y = height - endXstartY.y; |  | ||||||
| 		endXendY.y = height - endXendY.y; |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	private void setFields() { | 	private void setFields() { | ||||||
| 		origin.set( | 		origin.set( | ||||||
| 				startXstartY.x, | 				startXstartY.x, | ||||||
|   | |||||||
| @@ -190,7 +190,7 @@ public class LayerWorld extends Layer { | |||||||
| 		if (!flag) return; | 		if (!flag) return; | ||||||
| 		 | 		 | ||||||
| 		final float yawScale = 0.002f; | 		final float yawScale = 0.002f; | ||||||
| 		final float pitchScale = yawScale; | 		final float pitchScale = -yawScale; | ||||||
| 		 | 		 | ||||||
| 		camera.turn( | 		camera.turn( | ||||||
| 				(float) (event.getChangeY() * pitchScale), | 				(float) (event.getChangeY() * pitchScale), | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user