2 Copyright (C) 2003, 2010 - Wolfire Games
4 This file is part of Lugaru.
6 Lugaru is free software; you can redistribute it and/or
7 modify it under the terms of the GNU General Public License
8 as published by the Free Software Foundation; either version 2
9 of the License, or (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15 See the GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
25 extern float viewdistance;
26 extern float blurness;
27 extern int environment;
28 extern bool skyboxtexture;
34 SkyBox::load (const char *ffront, const char *fleft, const char *fback,
35 const char *fright, const char *fup, const char *fdown)
37 front.load(ffront, true, false);
38 left.load(fleft, true, false);
39 back.load(fback, true, false);
40 right.load(fright, true, false);
41 up.load(fup, true, false);
42 down.load(fdown, true, false);
47 static float size = viewdistance / 4;
50 glGetFloatv(GL_MODELVIEW_MATRIX, M);
55 if (environment == 2)glScalef(1 + blurness / 1000, 1, 1 + blurness / 1000);
56 if (environment != 2)glColor3f(.85 * skyboxr, .85 * skyboxg, .95 * skyboxb);
57 else glColor3f(1 * skyboxr, .95 * skyboxg, .95 * skyboxb);
60 glDisable(GL_TEXTURE_2D);
61 glColor3f(skyboxr * .8, skyboxg * .8, skyboxb * .8);
64 glDisable(GL_CULL_FACE);
66 glDisable(GL_LIGHTING);
67 if (skyboxtexture)glEnable(GL_TEXTURE_2D);
68 glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE );
70 glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE );
71 glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE );
73 glNormal3f( 0.0f, 0.0f, -1);
75 glVertex3f(-size, -size, size);
77 glVertex3f( size, -size, size);
79 glVertex3f( size, size, size);
81 glVertex3f(-size, size, size);
84 glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE );
85 glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE );
87 glNormal3f( 0.0f, 0.0f, 1);
89 glVertex3f(-size, -size, -size);
91 glVertex3f(-size, size, -size);
93 glVertex3f( size, size, -size);
95 glVertex3f( size, -size, -size);
98 glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE );
99 glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE );
101 glNormal3f( 0.0f, -1.0f, 0);
103 glVertex3f(-size, size, -size);
105 glVertex3f(-size, size, size);
107 glVertex3f( size, size, size);
109 glVertex3f( size, size, -size);
112 glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE );
113 glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE );
115 glNormal3f( 0.0f, 1.0f, 0);
118 glVertex3f(-size, -size, -size);
120 glVertex3f( size, -size, -size);
122 glVertex3f( size, -size, size);
124 glVertex3f(-size, -size, size);
127 glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE );
128 glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE );
130 glNormal3f( -1.0f, 0.0f, 0);
132 glVertex3f( size, -size, -size);
134 glVertex3f( size, size, -size);
136 glVertex3f( size, size, size);
138 glVertex3f( size, -size, size);
141 glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE );
142 glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE );
144 glNormal3f( 1.0f, 0.0f, 0);
146 glVertex3f(-size, -size, -size);
148 glVertex3f(-size, -size, size);
150 glVertex3f(-size, size, size);
152 glVertex3f(-size, size, -size);
154 glEnable(GL_CULL_FACE);