fix: change render coordinates
This commit is contained in:
@@ -12,6 +12,7 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <glbinding/Binding.h>
|
#include <glbinding/Binding.h>
|
||||||
#include "misc/Time.h"
|
#include "misc/Time.h"
|
||||||
|
#include "misc/Easing.h"
|
||||||
|
|
||||||
using namespace gl;
|
using namespace gl;
|
||||||
|
|
||||||
@@ -112,8 +113,8 @@ void setZoom(float zoom){
|
|||||||
}
|
}
|
||||||
|
|
||||||
void setCamMovement(const glm::vec2& mov){
|
void setCamMovement(const glm::vec2& mov){
|
||||||
camPos.x += mov.x * (1 - isometricView) + (0.5 * mov.x + mov.y) * isometricView;
|
camPos.x += mov.x * (1 - isometricView) + (0.5 * mov.x - mov.y) * isometricView;
|
||||||
camPos.y += -mov.y * (1 - isometricView) + (0.5 * mov.x - mov.y) * isometricView;
|
camPos.y += -mov.y * (1 - isometricView) + (-0.5 * mov.x - mov.y) * isometricView;
|
||||||
setCamPos(camPos);
|
setCamPos(camPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -136,8 +137,8 @@ glm::vec2 getCursorWorldPos(const glm::vec2& cursorPos, float aspectRatio, float
|
|||||||
float deltaX = relativeX * aspectRatio / zoom;
|
float deltaX = relativeX * aspectRatio / zoom;
|
||||||
float deltaY = relativeY / zoom;
|
float deltaY = relativeY / zoom;
|
||||||
|
|
||||||
float worldX = camPos.x + deltaX * (1 - isometricView) + (0.5 * deltaX - deltaY) * isometricView;
|
float worldX = camPos.x + deltaX * (1 - isometricView) + (0.5 * deltaX + deltaY) * isometricView;
|
||||||
float worldY = camPos.y + deltaY * (1 - isometricView) + (0.5 * deltaX + deltaY) * isometricView;
|
float worldY = camPos.y + deltaY * (1 - isometricView) + (-0.5 * deltaX + deltaY) * isometricView;
|
||||||
|
|
||||||
return {worldX, worldY};
|
return {worldX, worldY};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,8 +24,8 @@ flat out int pass_color;
|
|||||||
void main(void){
|
void main(void){
|
||||||
float modelX = position.x + translation.x;
|
float modelX = position.x + translation.x;
|
||||||
float modelY = position.y + translation.y;
|
float modelY = position.y + translation.y;
|
||||||
float x = (modelX - camPos.x + (modelY - camPos.y) * isometricView) / aspectRatio * zoom;
|
float x = (modelX - camPos.x - (modelY - camPos.y) * isometricView) / aspectRatio * zoom;
|
||||||
float y = ((-0.5 * (modelX - camPos.x) + 0.5 * (modelY - camPos.y)) * isometricView + (modelY - camPos.y) * (1 - isometricView)) * zoom;
|
float y = ((0.5 * (modelX - camPos.x) + 0.5 * (modelY - camPos.y)) * isometricView + (modelY - camPos.y) * (1 - isometricView)) * zoom;
|
||||||
pass_color = color;
|
pass_color = color;
|
||||||
gl_Position = vec4(x, -y, 0.0, 1.0);
|
gl_Position = vec4(x, -y, 0.0, 1.0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,8 +21,8 @@ uniform float isometricView;
|
|||||||
flat out int pass_color;
|
flat out int pass_color;
|
||||||
|
|
||||||
void main(void){
|
void main(void){
|
||||||
float x = (position.x - camPos.x + (position.y - camPos.y) * isometricView) / aspectRatio * zoom;
|
float x = (position.x - camPos.x - (position.y - camPos.y) * isometricView) / aspectRatio * zoom;
|
||||||
float y = ((-0.5 * (position.x - camPos.x) + 0.5 * (position.y - camPos.y)) * isometricView + (position.y - camPos.y) * (1 - isometricView)) * zoom;
|
float y = ((0.5 * (position.x - camPos.x) + 0.5 * (position.y - camPos.y)) * isometricView + (position.y - camPos.y) * (1 - isometricView)) * zoom;
|
||||||
pass_color = color;
|
pass_color = color;
|
||||||
gl_Position = vec4(x, -y, 0.0, 1.0);
|
gl_Position = vec4(x, -y, 0.0, 1.0);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user