Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2010-12-06 21:33:34 +0000
committerStijn Buys <ingar@osirion.org>2010-12-06 21:33:34 +0000
commitc50095cab023e91ba2a4fec8dcb290e6d817124b (patch)
treee9511df876d45faffb428ee7ae342a8aabab4194 /src/render/sky.cc
parent8c7fa7dd3258e8d3e112fb9780249dd0d0ef008a (diff)
Re-enabled environment mapping with the skybox as cubemap.
Diffstat (limited to 'src/render/sky.cc')
-rw-r--r--src/render/sky.cc158
1 files changed, 0 insertions, 158 deletions
diff --git a/src/render/sky.cc b/src/render/sky.cc
deleted file mode 100644
index 1b914a6..0000000
--- a/src/render/sky.cc
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- render/sky.cc
- This file is part of the Osirion project and is distributed under
- the terms of the GNU General Public License version 2
-*/
-
-#include "render/render.h"
-#include "render/camera.h"
-#include "render/sky.h"
-#include "render/textures.h"
-
-namespace render
-{
-
-size_t Sky::sky_texture_up = 0;
-size_t Sky::sky_texture_down = 0;
-size_t Sky::sky_texture_left = 0;
-size_t Sky::sky_texture_right = 0;
-size_t Sky::sky_texture_front = 0;
-size_t Sky::sky_texture_back = 0;
-
-std::string Sky::sky_name;
-
-void Sky::draw(const std::string & name, const float wireframe)
-{
- if (sky_name.compare(name) != 0) {
- unload();
- }
-
- if (!sky_name.size()) {
-
- if (name.size()) {
- const std::string basename("textures/sky/" + name);
-
- sky_texture_up = Textures::load(basename + "_up", false);
- sky_texture_down = Textures::load(basename + "_down", false);
- sky_texture_left = Textures::load(basename + "_left", false);
- sky_texture_right = Textures::load(basename + "_right", false);
- sky_texture_front = Textures::load(basename + "_front", false);
- sky_texture_back = Textures::load(basename + "_back", false);
- }
- sky_name.assign(name);
- }
-
- /*
- * NOTE:
- * to use quake3 skyboxes:
- * switch left and right images
- * rotate top image 90 degrees clockwise
- * rotate bottom image 90 degrees counter-clockwise
- *
- */
-
- const gl::Primitive primitive = (wireframe ? gl::LineLoop : gl::Quads);
-
- gl::push();
- gl::translate(Camera::eye());
-
- gl::enable(GL_TEXTURE_2D);
- gl::color(1.0f, 1.0f, 1.0f, 1.0f);
-
- // front
- Textures::bind(sky_texture_front);
- gl::begin(primitive);
- gl::texcoord(0, 0); gl::vertex(1, 1, 1);
- gl::texcoord(1, 0); gl::vertex(1, -1, 1);
- gl::texcoord(1, 1); gl::vertex(1, -1, -1);
- gl::texcoord(0, 1); gl::vertex(1, 1, -1);
- gl::end();
-
- // right
- Textures::bind(sky_texture_right);
- gl::begin(primitive);
- gl::texcoord(0, 0); gl::vertex(1, -1, 1);
- gl::texcoord(1, 0); gl::vertex(-1, -1, 1);
- gl::texcoord(1, 1); gl::vertex(-1, -1, -1);
- gl::texcoord(0, 1); gl::vertex(1, -1, -1);
- gl::end();
-
- // back
- Textures::bind(sky_texture_back);
- gl::begin(primitive);
- gl::texcoord(0, 0); gl::vertex(-1, -1, 1);
- gl::texcoord(1, 0); gl::vertex(-1, 1, 1);
- gl::texcoord(1, 1); gl::vertex(-1, 1, -1);
- gl::texcoord(0, 1); gl::vertex(-1, -1, -1);
- gl::end();
-
- // left
- Textures::bind(sky_texture_left);
- gl::begin(primitive);
- gl::texcoord(0, 0); gl::vertex(-1, 1, 1);
- gl::texcoord(1, 0); gl::vertex(1, 1, 1);
- gl::texcoord(1, 1); gl::vertex(1, 1, -1);
- gl::texcoord(0, 1); gl::vertex(-1, 1, -1);
- gl::end();
-
- // up
- Textures::bind(sky_texture_up);
- gl::begin(primitive);
- gl::texcoord(0, 0); gl::vertex(-1, 1, 1);
- gl::texcoord(1, 0); gl::vertex(-1, -1, 1);
- gl::texcoord(1, 1); gl::vertex(1, -1, 1);
- gl::texcoord(0, 1); gl::vertex(1, 1, 1);
- gl::end();
-
- // down
- Textures::bind(sky_texture_down);
- gl::begin(primitive);
- gl::texcoord(0, 0); gl::vertex(1, 1, -1);
- gl::texcoord(1, 0); gl::vertex(1, -1, -1);
- gl::texcoord(1, 1); gl::vertex(-1, -1, -1);
- gl::texcoord(0, 1); gl::vertex(-1, 1, -1);
- gl::end();
-
- gl::pop();
-
- gl::disable(GL_TEXTURE_2D);
-
- Stats::quads += 6;
-}
-
-void Sky::unload()
-{
- if (sky_texture_up) {
- Textures::unload(sky_texture_up);
- sky_texture_up = 0;
- }
-
- if (sky_texture_down) {
- Textures::unload(sky_texture_down);
- sky_texture_down = 0;
- }
-
- if (sky_texture_left) {
- Textures::unload(sky_texture_left);
- sky_texture_left = 0;
- }
-
- if (sky_texture_right) {
- Textures::unload(sky_texture_right);
- sky_texture_right = 0;
- }
-
- if (sky_texture_front) {
- Textures::unload(sky_texture_front);
- sky_texture_front = 0;
- }
-
- if (sky_texture_back) {
- Textures::unload(sky_texture_back);
- sky_texture_back = 0;
- }
-
- sky_name.clear();
-}
-
-} // namespace render