+z as front
This commit is contained in:
parent
e6fd011636
commit
dd2ef93643
6 changed files with 62 additions and 36 deletions
|
|
@ -39,12 +39,24 @@ static void tick(void){
|
|||
}
|
||||
|
||||
static GSVector3 rot = {0, 0, 0};
|
||||
static GSVector3 pos = {0, 0, 0};
|
||||
static GSModel model = NULL;
|
||||
|
||||
static void render(GSEngine self){
|
||||
GSGL gl = GSClientGetGL(GSEngineGetClient(self));
|
||||
|
||||
pos[1] = 0;
|
||||
|
||||
GSGLPushMatrix(gl);
|
||||
GSGLSetPosition(gl, pos);
|
||||
GSGLSetRotation(gl, rot);
|
||||
if(model != NULL) GSModelDraw(model);
|
||||
GSGLPopMatrix(gl);
|
||||
|
||||
pos[1] = 1;
|
||||
|
||||
GSGLPushMatrix(gl);
|
||||
GSGLSetPosition(gl, pos);
|
||||
GSGLSetRotation(gl, rot);
|
||||
if(model != NULL) GSModelDraw(model);
|
||||
GSGLPopMatrix(gl);
|
||||
|
|
@ -52,6 +64,9 @@ static void render(GSEngine self){
|
|||
|
||||
static void after_render(GSEngine self){
|
||||
rot[0] = rot[1] = rot[2] += (1.0 / GSEngineGetTPS(self)) * 90;
|
||||
|
||||
pos[0] = cos(rot[0] / 180 * GSMathPi);
|
||||
pos[2] = sin(rot[0] / 180 * GSMathPi);
|
||||
}
|
||||
|
||||
#ifndef _WIN32
|
||||
|
|
@ -86,7 +101,7 @@ int main(int argc, char** argv){
|
|||
|
||||
GSClientSetSkybox(GSEngineGetClient(engine), GSTrue);
|
||||
|
||||
if((sound = GSSoundOpen(GSClientGetSoundEngine(GSEngineGetClient(engine)), "game:/shanghai.mp3")) != NULL){
|
||||
if((sound = GSSoundOpen(GSClientGetSoundEngine(GSEngineGetClient(engine)), "game:/df97.xm")) != NULL){
|
||||
GSSoundSetLoop(sound, 1);
|
||||
GSSoundStart(sound);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -98,6 +98,17 @@ void GSClientDestroy(GSClient client) {
|
|||
|
||||
static void scene(GSClient client) {
|
||||
if(client->engine->param->render != NULL) client->engine->param->render(client->engine);
|
||||
|
||||
GSVector3 n = {0, 1, 0};
|
||||
GSVector3 q[] = {
|
||||
{-3, -1, 3},
|
||||
{-3, -1, -3},
|
||||
{3, -1, -3},
|
||||
{3, -1, 3}};
|
||||
|
||||
GSGLTextureSet(client->gl, 2);
|
||||
GSGLPolygon(client->gl, 4, q, NULL, n);
|
||||
GSGLTextureSet(client->gl, 0);
|
||||
}
|
||||
|
||||
void GSClientStep(GSClient client) {
|
||||
|
|
|
|||
|
|
@ -52,17 +52,17 @@ void GSGLCameraLookAt(GSGL gl, GSVector3 camera, GSVector3 look_at) {
|
|||
for(i = 0; i < 16; i++) matrix[i] = 0;
|
||||
matrix[4 * 0 + 0] = s[0];
|
||||
matrix[4 * 1 + 0] = s[1];
|
||||
matrix[4 * 2 + 0] = s[2];
|
||||
matrix[4 * 2 + 0] = -s[2];
|
||||
matrix[4 * 0 + 1] = u[0];
|
||||
matrix[4 * 1 + 1] = u[1];
|
||||
matrix[4 * 2 + 1] = u[2];
|
||||
matrix[4 * 2 + 1] = -u[2];
|
||||
matrix[4 * 0 + 2] = -f[0];
|
||||
matrix[4 * 1 + 2] = -f[1];
|
||||
matrix[4 * 2 + 2] = -f[2];
|
||||
matrix[4 * 2 + 2] = f[2];
|
||||
matrix[4 * 3 + 3] = 1;
|
||||
|
||||
glMultMatrixd(matrix);
|
||||
glTranslated(-camera[0], -camera[1], -camera[2]);
|
||||
glTranslated(-camera[0], -camera[1], camera[2]);
|
||||
}
|
||||
|
||||
void GSGLCameraSetup(GSGL gl) {
|
||||
|
|
|
|||
|
|
@ -137,7 +137,7 @@ static void parse_obj(GSModel model, char* txt) {
|
|||
if(arrlen(model->vertex) > varr[i] * 3) {
|
||||
face.vertex[i][0] = (model->vertex[varr[i] * 3 + 0] - lm - lr / 2) / sc;
|
||||
face.vertex[i][1] = (model->vertex[varr[i] * 3 + 1] - dm - ud / 2) / sc;
|
||||
face.vertex[i][2] = (model->vertex[varr[i] * 3 + 2] - bm - bf / 2) / sc;
|
||||
face.vertex[i][2] = -(model->vertex[varr[i] * 3 + 2] - bm - bf / 2) / sc;
|
||||
}
|
||||
|
||||
if(arrlen(model->texcoord) > tarr[i] * 2) {
|
||||
|
|
@ -147,8 +147,8 @@ static void parse_obj(GSModel model, char* txt) {
|
|||
}
|
||||
}
|
||||
|
||||
if(c == 3) GSMathNormal3x3(face.normal, face.vertex[0], face.vertex[1], face.vertex[2]);
|
||||
if(c == 4) GSMathNormal3x4(face.normal, face.vertex[0], face.vertex[1], face.vertex[2], face.vertex[3]);
|
||||
if(c == 3) GSMathNormal3x3(face.normal, face.vertex[2], face.vertex[1], face.vertex[0]);
|
||||
if(c == 4) GSMathNormal3x4(face.normal, face.vertex[3], face.vertex[2], face.vertex[1], face.vertex[0]);
|
||||
|
||||
arrput(model->face, face);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -100,45 +100,45 @@ void GSSkyBoxDraw(GSSkyBox skybox) {
|
|||
if(i == 0) {
|
||||
tex = skybox->left;
|
||||
|
||||
v[0][0] = -1, v[0][1] = 1 + s, v[0][2] = 1 + s;
|
||||
v[1][0] = -1, v[1][1] = -1 - s, v[1][2] = 1 + s;
|
||||
v[2][0] = -1, v[2][1] = -1 - s, v[2][2] = -1 - s;
|
||||
v[3][0] = -1, v[3][1] = 1 + s, v[3][2] = -1 - s;
|
||||
v[0][0] = -1, v[0][1] = 1 + s, v[0][2] = -1 - s;
|
||||
v[1][0] = -1, v[1][1] = -1 - s, v[1][2] = -1 - s;
|
||||
v[2][0] = -1, v[2][1] = -1 - s, v[2][2] = 1 + s;
|
||||
v[3][0] = -1, v[3][1] = 1 + s, v[3][2] = 1 + s;
|
||||
} else if(i == 1) {
|
||||
tex = skybox->right;
|
||||
|
||||
v[0][0] = 1, v[0][1] = 1 + s, v[0][2] = -1 - s;
|
||||
v[1][0] = 1, v[1][1] = -1 - s, v[1][2] = -1 - s;
|
||||
v[2][0] = 1, v[2][1] = -1 - s, v[2][2] = 1 + s;
|
||||
v[3][0] = 1, v[3][1] = 1 + s, v[3][2] = 1 + s;
|
||||
v[0][0] = 1, v[0][1] = 1 + s, v[0][2] = 1 + s;
|
||||
v[1][0] = 1, v[1][1] = -1 - s, v[1][2] = 1 + s;
|
||||
v[2][0] = 1, v[2][1] = -1 - s, v[2][2] = -1 - s;
|
||||
v[3][0] = 1, v[3][1] = 1 + s, v[3][2] = -1 - s;
|
||||
} else if(i == 2) {
|
||||
tex = skybox->front;
|
||||
|
||||
v[0][0] = -1 - s, v[0][1] = 1 + s, v[0][2] = -1;
|
||||
v[1][0] = -1 - s, v[1][1] = -1 - s, v[1][2] = -1;
|
||||
v[2][0] = 1 + s, v[2][1] = -1 - s, v[2][2] = -1;
|
||||
v[3][0] = 1 + s, v[3][1] = 1 + s, v[3][2] = -1;
|
||||
v[0][0] = -1 - s, v[0][1] = 1 + s, v[0][2] = 1;
|
||||
v[1][0] = -1 - s, v[1][1] = -1 - s, v[1][2] = 1;
|
||||
v[2][0] = 1 + s, v[2][1] = -1 - s, v[2][2] = 1;
|
||||
v[3][0] = 1 + s, v[3][1] = 1 + s, v[3][2] = 1;
|
||||
} else if(i == 3) {
|
||||
tex = skybox->back;
|
||||
|
||||
v[0][0] = 1 + s, v[0][1] = 1 + s, v[0][2] = 1;
|
||||
v[1][0] = 1 + s, v[1][1] = -1 - s, v[1][2] = 1;
|
||||
v[2][0] = -1 - s, v[2][1] = -1 - s, v[2][2] = 1;
|
||||
v[3][0] = -1 - s, v[3][1] = 1 + s, v[3][2] = 1;
|
||||
v[0][0] = 1 + s, v[0][1] = 1 + s, v[0][2] = -1;
|
||||
v[1][0] = 1 + s, v[1][1] = -1 - s, v[1][2] = -1;
|
||||
v[2][0] = -1 - s, v[2][1] = -1 - s, v[2][2] = -1;
|
||||
v[3][0] = -1 - s, v[3][1] = 1 + s, v[3][2] = -1;
|
||||
} else if(i == 4) {
|
||||
tex = skybox->up;
|
||||
|
||||
v[0][0] = -1 - s, v[0][1] = 1, v[0][2] = 1 + s;
|
||||
v[1][0] = -1 - s, v[1][1] = 1, v[1][2] = -1 - s;
|
||||
v[2][0] = 1 + s, v[2][1] = 1, v[2][2] = -1 - s;
|
||||
v[3][0] = 1 + s, v[3][1] = 1, v[3][2] = 1 + s;
|
||||
v[0][0] = -1 - s, v[0][1] = 1, v[0][2] = -1 - s;
|
||||
v[1][0] = -1 - s, v[1][1] = 1, v[1][2] = 1 + s;
|
||||
v[2][0] = 1 + s, v[2][1] = 1, v[2][2] = 1 + s;
|
||||
v[3][0] = 1 + s, v[3][1] = 1, v[3][2] = -1 - s;
|
||||
} else if(i == 5) {
|
||||
tex = skybox->down;
|
||||
|
||||
v[0][0] = -1 - s, v[0][1] = -1, v[0][2] = -1 - s;
|
||||
v[1][0] = -1 - s, v[1][1] = -1, v[1][2] = 1 + s;
|
||||
v[2][0] = 1 + s, v[2][1] = -1, v[2][2] = 1 + s;
|
||||
v[3][0] = 1 + s, v[3][1] = -1, v[3][2] = -1 - s;
|
||||
v[0][0] = -1 - s, v[0][1] = -1, v[0][2] = 1 + s;
|
||||
v[1][0] = -1 - s, v[1][1] = -1, v[1][2] = -1 - s;
|
||||
v[2][0] = 1 + s, v[2][1] = -1, v[2][2] = -1 - s;
|
||||
v[3][0] = 1 + s, v[3][1] = -1, v[3][2] = 1 + s;
|
||||
}
|
||||
|
||||
GSGLTextureSet(gl, tex);
|
||||
|
|
@ -159,10 +159,10 @@ void GSSkyBoxDraw(GSSkyBox skybox) {
|
|||
n[1] = -1;
|
||||
n[2] = 0;
|
||||
|
||||
vc[0][0] = -1 - s, vc[0][1] = 1, vc[0][2] = 1 - s;
|
||||
vc[1][0] = -1 - s, vc[1][1] = 1, vc[1][2] = -1 + s;
|
||||
vc[2][0] = 1 - s, vc[2][1] = 1, vc[2][2] = -1 + s;
|
||||
vc[3][0] = 1 - s, vc[3][1] = 1, vc[3][2] = 1 - s;
|
||||
vc[0][0] = -1 - s, vc[0][1] = 1, vc[0][2] = -1 - s;
|
||||
vc[1][0] = -1 - s, vc[1][1] = 1, vc[1][2] = 1 + s;
|
||||
vc[2][0] = 1 - s, vc[2][1] = 1, vc[2][2] = 1 + s;
|
||||
vc[3][0] = 1 - s, vc[3][1] = 1, vc[3][2] = -1 - s;
|
||||
|
||||
tc[0][0] = -1, tc[0][1] = -1;
|
||||
tc[1][0] = -1, tc[1][1] = 1;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue