better skybox
This commit is contained in:
parent
e7918c50f5
commit
c0cb0062c1
7 changed files with 29 additions and 11 deletions
|
|
@ -18,6 +18,7 @@ GSDECL GSClient GSEngineGetClient(GSEngine engine);
|
|||
GSDECL GSServer GSEngineGetServer(GSEngine engine);
|
||||
GSDECL GSBool GSEngineRegisterResource(GSEngine engine, const char* name, const char* path);
|
||||
GSDECL void GSEngineUnregisterResource(GSEngine engine, const char* name);
|
||||
GSDECL GSNumber GSEngineGetTPS(GSEngine engine);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
|||
|
|
@ -62,6 +62,7 @@ GSDECL void GSGLEndList(GSGL gl);
|
|||
GSDECL void GSGLCallList(GSGL gl, GLuint list);
|
||||
GSDECL void GSGLSetColor(GSGL gl, GSVector4 color);
|
||||
GSDECL void GSGLClearDepth(GSGL gl);
|
||||
GSDECL void GSGLInitialTranslation(GSGL gl);
|
||||
|
||||
/* gl_camera.c */
|
||||
GSDECL void GSGLCameraPerspective(GSGL gl, GSNumber width, GSNumber height);
|
||||
|
|
|
|||
|
|
@ -33,12 +33,12 @@ GSClient GSClientCreate(GSEngine engine) {
|
|||
client->engine = engine;
|
||||
|
||||
client->camera[0] = 0;
|
||||
client->camera[1] = 0;
|
||||
client->camera[1] = 1.5;
|
||||
client->camera[2] = 5;
|
||||
|
||||
client->look_at[0] = 0;
|
||||
client->look_at[1] = 1;
|
||||
client->look_at[2] = 0;
|
||||
client->look_at[2] = 5 - 1;
|
||||
|
||||
client->light0[0] = 2.5;
|
||||
client->light0[1] = 5;
|
||||
|
|
@ -118,9 +118,10 @@ void GSClientStep(GSClient client) {
|
|||
GSGLShadowEnd(client->gl);
|
||||
|
||||
sprintf(buf, "%.1f FPS", client->engine->tps_sampled);
|
||||
sprintf(buf2, "%s%s", client->engine->tps_sampled < 10 ? " " : "", buf);
|
||||
|
||||
tw = GSGLTextWidth(client->gl, buf);
|
||||
th = GSGLTextHeight(client->gl, buf);
|
||||
tw = GSGLTextWidth(client->gl, buf2);
|
||||
th = GSGLTextHeight(client->gl, buf2);
|
||||
|
||||
sq[0][0] = client->engine->width - tw, sq[0][1] = 0;
|
||||
sq[1][0] = client->engine->width - tw, sq[1][1] = th;
|
||||
|
|
@ -134,7 +135,7 @@ void GSClientStep(GSClient client) {
|
|||
|
||||
GSGLSetColor(client->gl, yellow);
|
||||
GSGLTextBold(client->gl, 1);
|
||||
GSGLText(client->gl, client->engine->width - tw, 0, buf);
|
||||
GSGLText(client->gl, client->engine->width - tw, 0, buf2);
|
||||
GSGLTextBold(client->gl, 0);
|
||||
|
||||
GSVersionGet(&ver);
|
||||
|
|
|
|||
|
|
@ -174,3 +174,7 @@ GSClient GSEngineGetClient(GSEngine engine) {
|
|||
GSServer GSEngineGetServer(GSEngine engine) {
|
||||
return engine->server;
|
||||
}
|
||||
|
||||
GSNumber GSEngineGetTPS(GSEngine engine) {
|
||||
return engine->tps;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -153,3 +153,15 @@ void GSGLCallList(GSGL gl, GLuint list) {
|
|||
void GSGLSetColor(GSGL gl, GSVector4 color) {
|
||||
glColor4f(color[0], color[1], color[2], color[3]);
|
||||
}
|
||||
|
||||
void GSGLInitialTranslation(GSGL gl) {
|
||||
GLdouble matrix[16];
|
||||
|
||||
glGetDoublev(GL_MODELVIEW_MATRIX, matrix);
|
||||
|
||||
matrix[4 * 3 + 0] = 0;
|
||||
matrix[4 * 3 + 1] = 0;
|
||||
matrix[4 * 3 + 2] = 0;
|
||||
|
||||
glLoadMatrixd(matrix);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -88,8 +88,11 @@ void GSSkyBoxDraw(GSSkyBox skybox) {
|
|||
t[2][0] = 1, t[2][1] = 1;
|
||||
t[3][0] = 1, t[3][1] = 0;
|
||||
|
||||
GSGLPushMatrix(gl);
|
||||
GSGLShadowDisable(gl);
|
||||
|
||||
GSGLInitialTranslation(gl);
|
||||
|
||||
for(i = 0; i < 6; i++) {
|
||||
GLuint tex;
|
||||
int j, k;
|
||||
|
|
@ -141,7 +144,6 @@ void GSSkyBoxDraw(GSSkyBox skybox) {
|
|||
for(j = 0; j < 4; j++) {
|
||||
for(k = 0; k < 3; k++) {
|
||||
v[j][k] *= GSGLMaxDistance / 2;
|
||||
v[j][k] += gl->engine->client->camera[k];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -188,10 +190,6 @@ void GSSkyBoxDraw(GSSkyBox skybox) {
|
|||
}
|
||||
|
||||
vc[j][1] = 0.05;
|
||||
|
||||
for(k = 0; k < 3; k++) {
|
||||
vc[j][k] += gl->engine->client->camera[k];
|
||||
}
|
||||
}
|
||||
|
||||
GSGLTextureSet(gl, t);
|
||||
|
|
@ -204,6 +202,7 @@ void GSSkyBoxDraw(GSSkyBox skybox) {
|
|||
|
||||
GSGLClearDepth(gl);
|
||||
GSGLShadowEnable(gl);
|
||||
GSGLPopMatrix(gl);
|
||||
|
||||
/* this overflows in:
|
||||
* 3.402823466e+38/60/60/24/365 = 1.0790282426433283e+31
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue