summaryrefslogtreecommitdiffstats
path: root/Renderer.cpp
diff options
context:
space:
mode:
authorMatthias Schiffer <matthias@gamezock.de>2009-12-15 19:37:12 +0100
committerMatthias Schiffer <matthias@gamezock.de>2009-12-15 19:37:12 +0100
commitd9f44af7aee41a111a3d7427d8735bc821f1824f (patch)
tree4814f3dea17eefac6a06d0c6af0da31d87488ff6 /Renderer.cpp
parenta4fa46a4fda967348ea18961c177330491bdb953 (diff)
downloadzoom++-d9f44af7aee41a111a3d7427d8735bc821f1824f.tar
zoom++-d9f44af7aee41a111a3d7427d8735bc821f1824f.zip
Moved source files to src; sort triangles by texture.
Diffstat (limited to 'Renderer.cpp')
-rw-r--r--Renderer.cpp77
1 files changed, 0 insertions, 77 deletions
diff --git a/Renderer.cpp b/Renderer.cpp
deleted file mode 100644
index 558e415..0000000
--- a/Renderer.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Renderer.cpp
- *
- * Copyright (C) 2009 Matthias Schiffer <matthias@gamezock.de>
- *
- * This program is free software: you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by the
- * Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "Renderer.h"
-#include "BSPTree.h"
-#include "gl.h"
-
-namespace Zoom {
-
-void Renderer::render(const BSPTree &tree) {
- vmml::mat4f transform, inverseTransform;
- glGetFloatv(GL_MODELVIEW_MATRIX, transform.array);
-
- transform.inverse(inverseTransform);
-
- vmml::vec3f viewPoint = inverseTransform*vmml::vec3f::ZERO;
-
- glBegin(GL_TRIANGLES);
- tree.visit(renderVisitor, viewPoint);
- glEnd();
-
-}
-
-void Renderer::render(const std::list<BSPTree::TriangleRecord> &triangles) {
- glBegin(GL_TRIANGLES);
- for(std::list<BSPTree::TriangleRecord>::const_iterator t = triangles.begin(); t != triangles.end(); ++t) {
- renderTriangle(t->triangle);
- }
- glEnd();
-}
-
-void Renderer::renderTriangle(const Triangle &t) {
- glColor4fv(t.getColor().array);
-
- if(t.getTexture() != lastTexture) {
- glEnd();
-
- if(t.getTexture()) {
- glBindTexture(GL_TEXTURE_2D, t.getTexture());
-
- if(!lastTexture) {
- glEnable(GL_TEXTURE_2D);
- }
- }
- else {
- glDisable(GL_TEXTURE_2D);
- }
-
- lastTexture = t.getTexture();
-
- glBegin(GL_TRIANGLES);
- }
-
- for(int i = 0; i < 3; ++i) {
- glTexCoord2fv(t.getTexCoords(i).array);
- glNormal3fv(t.getNormal(i).array);
- glVertex3fv(t.getVertex(i).array);
- }
-}
-
-}