TINYGL: Fixed a few mistakes during the refactoring.
This commit is contained in:
parent
c1040a9cdf
commit
b7853b48f8
7 changed files with 135 additions and 87 deletions
|
@ -69,7 +69,7 @@ void glopMultMatrix(GLContext *c, GLParam *p) {
|
|||
q += 4;
|
||||
}
|
||||
|
||||
*c->matrix_stack_ptr[c->matrix_mode] = (*c->matrix_stack_ptr[c->matrix_mode]) * m; // NOTE: verify this, I'm not 100% sure.
|
||||
*c->matrix_stack_ptr[c->matrix_mode] = (*c->matrix_stack_ptr[c->matrix_mode]) * m;
|
||||
|
||||
gl_matrix_update(c);
|
||||
}
|
||||
|
@ -171,29 +171,28 @@ void glopRotate(GLContext *c, GLParam *p) {
|
|||
}
|
||||
|
||||
void glopScale(GLContext *c, GLParam *p) {
|
||||
Matrix4 *m;
|
||||
float x = p[1].f, y = p[2].f, z = p[3].f;
|
||||
|
||||
m = c->matrix_stack_ptr[c->matrix_mode];
|
||||
Matrix4 m = Matrix4::identity();
|
||||
|
||||
m.set(0,0,x);
|
||||
m.set(1,1,y);
|
||||
m.set(2,2,z);
|
||||
|
||||
*c->matrix_stack_ptr[c->matrix_mode] = (*c->matrix_stack_ptr[c->matrix_mode]) * m;
|
||||
|
||||
for(int i = 0; i < 4; i++) {
|
||||
m->set(0,i, m->get(0,i) * x);
|
||||
m->set(1,i, m->get(1,i) * y);
|
||||
m->set(2,i, m->get(2,i) * z);
|
||||
}
|
||||
gl_matrix_update(c);
|
||||
}
|
||||
|
||||
void glopTranslate(GLContext *c, GLParam *p) {
|
||||
Matrix4 *m;
|
||||
Matrix4 m = Matrix4::identity();
|
||||
float x = p[1].f, y = p[2].f, z = p[3].f;
|
||||
|
||||
m = c->matrix_stack_ptr[c->matrix_mode];
|
||||
m.set(3,0,x);
|
||||
m.set(3,1,y);
|
||||
m.set(3,2,z);
|
||||
|
||||
m->set(3,0, m->get(0,0) * x + m->get(1,0) * y + m->get(2,0) * z + m->get(3,0));
|
||||
m->set(3,1, m->get(0,1) * x + m->get(1,1) * y + m->get(2,1) * z + m->get(3,1));
|
||||
m->set(3,2, m->get(0,2) * x + m->get(1,2) * y + m->get(2,2) * z + m->get(3,2));
|
||||
m->set(3,3, m->get(0,3) * x + m->get(1,3) * y + m->get(2,3) * z + m->get(3,3));
|
||||
*c->matrix_stack_ptr[c->matrix_mode] = (*c->matrix_stack_ptr[c->matrix_mode]) * m;
|
||||
|
||||
gl_matrix_update(c);
|
||||
}
|
||||
|
@ -216,9 +215,9 @@ void glopFrustum(GLContext *c, GLParam *p) {
|
|||
D = (float)(-(2.0 * farp * nearp) / (farp - nearp));
|
||||
|
||||
m.set(0,0, x); m.set(1,0, 0); m.set(2,0, A); m.set(3,0, 0);
|
||||
m.set(0,1, x); m.set(1,1, y); m.set(2,1, B); m.set(3,1, 0);
|
||||
m.set(0,2, x); m.set(1,2, 0); m.set(2,2, C); m.set(3,2, D);
|
||||
m.set(0,3, x); m.set(1,3, 0); m.set(2,3, -1); m.set(3,3, 0);
|
||||
m.set(0,1, 0); m.set(1,1, y); m.set(2,1, B); m.set(3,1, 0);
|
||||
m.set(0,2, 0); m.set(1,2, 0); m.set(2,2, C); m.set(3,2, D);
|
||||
m.set(0,3, 0); m.set(1,3, 0); m.set(2,3, -1); m.set(3,3, 0);
|
||||
|
||||
*c->matrix_stack_ptr[c->matrix_mode] = (*c->matrix_stack_ptr[c->matrix_mode]) * m;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue