X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fprojection.cpp;h=dd573da443eb7bcf5a305690cd456a450886eff7;hb=29f2d9da4ef0a0134c56bd2f8c7e6acac7773a61;hp=3a8baf84af3f492925366702b434a46a75e6a478;hpb=3f285d3f4fd0a6790bf1efa780284dc7ba2287a2;p=libs%2Fgl.git diff --git a/source/projection.cpp b/source/projection.cpp index 3a8baf84..dd573da4 100644 --- a/source/projection.cpp +++ b/source/projection.cpp @@ -1,20 +1,15 @@ -/* $Id$ - -This file is part of libmspgl -Copyright © 2007 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - #include -#include +#include "matrix.h" #include "projection.h" namespace Msp { namespace GL { -void ortho(double left, double right, double bottom, double top, double near, double far) +extern MatrixStack *active_stack; + +void ortho(double left, double right, double bottom, double top, double nearr, double farr) { - glOrtho(left, right, bottom, top, near, far); + *active_stack *= Matrix::ortho(left, right, bottom, top, nearr, farr); } void ortho_centered(double width, double height) @@ -32,20 +27,20 @@ void ortho_topleft(double width, double height) ortho(0, width, height, 0, 0, 1); } -void frustum(double left, double right, double bottom, double top, double near, double far) +void frustum(double left, double right, double bottom, double top, double nearr, double farr) { - glFrustum(left, right, bottom, top, near, far); + *active_stack *= Matrix::frustum(left, right, bottom, top, nearr, farr); } -void frustum_centered(double width, double height, double near, double far) +void frustum_centered(double width, double height, double nearr, double farr) { - glFrustum(-width/2, width/2, -height/2, height/2, near, far); + frustum(-width/2, width/2, -height/2, height/2, nearr, farr); } -void perspective(double fov_y, double aspect, double near, double far) +void perspective(double fov_y, double aspect, double nearr, double farr) { - double hh=tan(fov_y*M_PI/360)*near; - frustum(-hh*aspect, hh*aspect, -hh, hh, near, far); + double hh = tan(fov_y*M_PI/360)*nearr; + frustum(-hh*aspect, hh*aspect, -hh, hh, nearr, farr); } } // namespace GL