From c50095cab023e91ba2a4fec8dcb290e6d817124b Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Mon, 6 Dec 2010 21:33:34 +0000 Subject: Re-enabled environment mapping with the skybox as cubemap. --- src/render/sky.cc | 158 ------------------------------------------------------ 1 file changed, 158 deletions(-) delete mode 100644 src/render/sky.cc (limited to 'src/render/sky.cc') 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 -- cgit v1.2.3