X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Ftests.h;h=f7d729504a37f34b477a635675197f4166c29791;hp=b906c0cec2afada2ba5ebb36adcf7ef53ede89a8;hb=8bc776f177c7cf9d0c6fd9590273f086d38c23ca;hpb=ceae2a27dfc58310c5bab7e3aa3fedf0fa9a1f49 diff --git a/source/tests.h b/source/tests.h index b906c0ce..f7d72950 100644 --- a/source/tests.h +++ b/source/tests.h @@ -1,31 +1,54 @@ -/* $Id$ - -This file is part of libmspgl -Copyright © 2007 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - #ifndef MSP_GL_TESTS_H_ #define MSP_GL_TESTS_H_ +#include "bindable.h" #include "gl.h" #include "predicate.h" namespace Msp { namespace GL { -enum +/** +Tests incoming fragment depth values against the depth buffer. If the test +fails, the fragment is discarded. +*/ +class DepthTest: public Bindable { - SCISSOR_TEST = GL_SCISSOR_TEST, - ALPHA_TEST = GL_ALPHA_TEST, - DEPTH_TEST = GL_DEPTH_TEST +private: + bool write; + Predicate pred; + +public: + DepthTest(); + DepthTest(Predicate, bool = true); + + void bind() const; + + static const DepthTest &lequal(); + static void unbind(); }; -void scissor(int left, int bottom, unsigned width, unsigned height); -void alpha_func(Predicate func, float ref); +/** +Tests fragment coordinates against a rectangle. Any fragments outside the +rectangle are discarded. +*/ +class ScissorTest: public Bindable +{ +private: + int left; + int bottom; + unsigned width; + unsigned height; + +public: + ScissorTest(); + ScissorTest(int, int, unsigned, unsigned); + + void bind() const; -void depth_func(Predicate func); + static void unbind(); +}; } // namespace GL } // namespace Msp