From 0f1c018d65658ae564881649443fde3f7d2182a8 Mon Sep 17 00:00:00 2001 From: Mikko Rasa Date: Sat, 20 Oct 2007 10:50:51 +0000 Subject: [PATCH] Add scissor, stencil, alpha and depth test functions and constants --- source/predicate.h | 31 +++++++++++++++++++++++++++++++ source/stencil.cpp | 24 ++++++++++++++++++++++++ source/stencil.h | 41 +++++++++++++++++++++++++++++++++++++++++ source/tests.cpp | 29 +++++++++++++++++++++++++++++ source/tests.h | 34 ++++++++++++++++++++++++++++++++++ 5 files changed, 159 insertions(+) create mode 100644 source/predicate.h create mode 100644 source/stencil.cpp create mode 100644 source/stencil.h create mode 100644 source/tests.cpp create mode 100644 source/tests.h diff --git a/source/predicate.h b/source/predicate.h new file mode 100644 index 00000000..f5ff3b3c --- /dev/null +++ b/source/predicate.h @@ -0,0 +1,31 @@ +/* $Id$ + +This file is part of libmspgl +Copyright © 2007 Mikko Rasa, Mikkosoft Productions +Distributed under the LGPL +*/ + +#ifndef MSP_GL_PREDICATE_H_ +#define MSP_GL_PREDICATE_H_ + +#include + +namespace Msp { +namespace GL { + +enum Predicate +{ + NEVER = GL_NEVER, + ALWAYS = GL_ALWAYS, + LESS = GL_LESS, + LEQUAL = GL_LEQUAL, + EQUAL = GL_EQUAL, + GREATER = GL_GREATER, + GEQUAL = GL_GEQUAL, + NOTEQUAL = GL_NOTEQUAL +}; + +} // namespace GL +} // namespace Msp + +#endif diff --git a/source/stencil.cpp b/source/stencil.cpp new file mode 100644 index 00000000..a0506310 --- /dev/null +++ b/source/stencil.cpp @@ -0,0 +1,24 @@ +/* $Id$ + +This file is part of libmspgl +Copyright © 2007 Mikko Rasa, Mikkosoft Productions +Distributed under the LGPL +*/ + +#include "stencil.h" + +namespace Msp { +namespace GL { + +void stencil_func(Predicate func, int ref, uint mask) +{ + glStencilFunc(func, ref, mask); +} + +void stencil_op(StencilOp sfail, StencilOp dfail, StencilOp dpass) +{ + glStencilOp(sfail, dfail, dpass); +} + +} // namespace GL +} // namespace Msp diff --git a/source/stencil.h b/source/stencil.h new file mode 100644 index 00000000..6efb0577 --- /dev/null +++ b/source/stencil.h @@ -0,0 +1,41 @@ +/* $Id$ + +This file is part of libmspgl +Copyright © 2007 Mikko Rasa, Mikkosoft Productions +Distributed under the LGPL +*/ + +#ifndef MSP_GL_STENCIL_H_ +#define MSP_GL_STENCIL_H_ + +#include +#include "predicate.h" +#include "types.h" + +namespace Msp { +namespace GL { + +enum +{ + STENCIL_TEST = GL_STENCIL_TEST +}; + +enum StencilOp +{ + KEEP = GL_KEEP, + SET_ZERO = GL_ZERO, + REPLACE = GL_REPLACE, + INCR = GL_INCR, + DECR = GL_DECR, + INVERT = GL_INVERT, + INCR_WRAP = GL_INCR_WRAP, + DECR_WRAP = GL_DECR_WRAP +}; + +void stencil_func(Predicate func, int ref, uint mask); +void stencil_op(StencilOp sfail, StencilOp dfail, StencilOp dpass); + +} // namespace GL +} // namespace Msp + +#endif diff --git a/source/tests.cpp b/source/tests.cpp new file mode 100644 index 00000000..a7440063 --- /dev/null +++ b/source/tests.cpp @@ -0,0 +1,29 @@ +/* $Id$ + +This file is part of libmspgl +Copyright © 2007 Mikko Rasa, Mikkosoft Productions +Distributed under the LGPL +*/ + +#include "tests.h" + +namespace Msp { +namespace GL { + +void scissor(int left, int bottom, sizei width, sizei height) +{ + glScissor(left, bottom, width, height); +} + +void alpha_func(Predicate func, float ref) +{ + glAlphaFunc(func, ref); +} + +void depth_func(Predicate func) +{ + glDepthFunc(func); +} + +} // namespace GL +} // namespace Msp diff --git a/source/tests.h b/source/tests.h new file mode 100644 index 00000000..0fa05b46 --- /dev/null +++ b/source/tests.h @@ -0,0 +1,34 @@ +/* $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 +#include "predicate.h" +#include "types.h" + +namespace Msp { +namespace GL { + +enum +{ + SCISSOR_TEST = GL_SCISSOR_TEST, + ALPHA_TEST = GL_ALPHA_TEST, + DEPTH_TEST = GL_DEPTH_TEST +}; + +void scissor(int left, int bottom, sizei width, sizei height); + +void alpha_func(Predicate func, float ref); + +void depth_func(Predicate func); + +} // namespace GL +} // namespace Msp + +#endif -- 2.43.0