Fixed GL math
I did almost every matrix operation backwards...
This commit is contained in:
parent
25e266d430
commit
9633b155bd
1 changed files with 8 additions and 8 deletions
|
@ -50,10 +50,10 @@ void Render::fill_rectangle_sz(Vector2<int> size, Color color) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Render::draw_lines(std::vector<Vector2<float>> points, Color color) {
|
void Render::draw_lines(std::vector<Vector2<float>> points, Color color) {
|
||||||
auto prev_cache = m_matrix * m_view_matrix * Vector3<float>(points[0], 1);
|
auto prev_cache = m_view_matrix * m_matrix * Vector3<float>(points[0], 1);
|
||||||
for(size_t i = 1; i < points.size(); i++) {
|
for(size_t i = 1; i < points.size(); i++) {
|
||||||
auto start = prev_cache;
|
auto start = prev_cache;
|
||||||
auto end = m_matrix * m_view_matrix * Vector3<float>(points[i], 1);
|
auto end = m_view_matrix * m_matrix * Vector3<float>(points[i], 1);
|
||||||
|
|
||||||
m_pge->DrawLine(
|
m_pge->DrawLine(
|
||||||
start.x(),
|
start.x(),
|
||||||
|
@ -118,10 +118,10 @@ void Render::pop_matrix() {
|
||||||
void Render::translate(Vector2<float> trans) {
|
void Render::translate(Vector2<float> trans) {
|
||||||
switch(m_matrix_mode) {
|
switch(m_matrix_mode) {
|
||||||
case MODEL:
|
case MODEL:
|
||||||
m_matrix = translation_matrix(trans) * m_matrix;
|
m_matrix *= translation_matrix(trans);
|
||||||
break;
|
break;
|
||||||
case PROJECTION:
|
case PROJECTION:
|
||||||
m_view_matrix = translation_matrix(trans) * m_view_matrix;
|
m_view_matrix *= translation_matrix(trans);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -129,10 +129,10 @@ void Render::translate(Vector2<float> trans) {
|
||||||
void Render::rotate(float theta) {
|
void Render::rotate(float theta) {
|
||||||
switch(m_matrix_mode) {
|
switch(m_matrix_mode) {
|
||||||
case MODEL:
|
case MODEL:
|
||||||
m_matrix = rotation_matrix(theta) * m_matrix;
|
m_matrix *= rotation_matrix(theta);
|
||||||
break;
|
break;
|
||||||
case PROJECTION:
|
case PROJECTION:
|
||||||
m_view_matrix = rotation_matrix(theta) * m_view_matrix;
|
m_view_matrix *= rotation_matrix(theta);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -140,10 +140,10 @@ void Render::rotate(float theta) {
|
||||||
void Render::scale(Vector2<float> scale) {
|
void Render::scale(Vector2<float> scale) {
|
||||||
switch(m_matrix_mode) {
|
switch(m_matrix_mode) {
|
||||||
case MODEL:
|
case MODEL:
|
||||||
m_matrix = scale_matrix(scale) * m_matrix;
|
m_matrix *= scale_matrix(scale);
|
||||||
break;
|
break;
|
||||||
case PROJECTION:
|
case PROJECTION:
|
||||||
m_view_matrix = scale_matrix(scale) * m_view_matrix;
|
m_view_matrix *= scale_matrix(scale);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue