Flipped Y-axis in flat layers and cursor input. Now (0; 0) is lower left
This commit is contained in:
parent
eb6945b017
commit
4370c523e6
@ -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