00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef VRS_BUFFERCLEARANCE_H
00026 #define VRS_BUFFERCLEARANCE_H
00027
00028 #include <vrs/sharedobj.h>
00029 #include <vrs/color.h>
00030 #include <vrs/opengl/openglconfig.h>
00031
00032 namespace VRS {
00033
00034
00035 class VRS_CORE_API BufferClearance : public SharedObj {
00038 public:
00039 enum ClearPolicy {
00040 NoClear=1,
00041 WhenPushed=2,
00042 WhenPopped=3,
00043 WhenTriggered=4
00044 };
00046 VRS_SERIALIZABLE_CLASS_ENUM(ClearPolicy);
00047
00048 BufferClearance(ClearPolicy policy=WhenPushed,
00049 const Color& clearColor=Color(1.0,1.0,1.0,1.0),
00050 GLclampd clearDepth=1.0,
00051 int clearStencil=0) : policy_(policy), clearColor_(clearColor),
00052 clearDepth_(clearDepth), clearStencil_(clearStencil) {
00053 }
00058 ClearPolicy getClearPolicy() const { return policy_; }
00065 const Color& getClearColor() const { return clearColor_; }
00068 void setClearColor(const Color &color);
00071 GLclampd getClearDepth() const { return clearDepth_; }
00074 int getClearStencil() const { return clearStencil_; }
00077 VRS_TYPEINFO(BufferClearance, SharedObj);
00078 VRS_SERIALIZABLE(BufferClearance);
00079
00080 private:
00081 ClearPolicy policy_;
00082 Color clearColor_;
00083 GLclampd clearDepth_;
00084 int clearStencil_;
00085 };
00086
00087 }
00088
00089 #endif // VRS_BUFFERCLEARANCE_H