changed: gcc8 base update
[opensg.git] / Source / System / Window / Background / OSGDepthClearBackground.cpp
blob35488e71d72bf3f97edc6360a2a7fb63588d7f72
1 /*---------------------------------------------------------------------------*\
2 * OpenSG *
3 * *
4 * *
5 * Copyright (C) 2000-2002 by the OpenSG Forum *
6 * *
7 * www.opensg.org *
8 * *
9 * contact: dirk@opensg.org, gerrit.voss@vossg.org, jbehr@zgdv.de *
10 * *
11 \*---------------------------------------------------------------------------*/
12 /*---------------------------------------------------------------------------*\
13 * License *
14 * *
15 * This library is free software; you can redistribute it and/or modify it *
16 * under the terms of the GNU Library General Public License as published *
17 * by the Free Software Foundation, version 2. *
18 * *
19 * This library is distributed in the hope that it will be useful, but *
20 * WITHOUT ANY WARRANTY; without even the implied warranty of *
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
22 * Library General Public License for more details. *
23 * *
24 * You should have received a copy of the GNU Library General Public *
25 * License along with this library; if not, write to the Free Software *
26 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *
27 * *
28 \*---------------------------------------------------------------------------*/
29 /*---------------------------------------------------------------------------*\
30 * Changes *
31 * *
32 * *
33 * *
34 * *
35 * *
36 * *
37 \*---------------------------------------------------------------------------*/
39 //---------------------------------------------------------------------------
40 // Includes
41 //---------------------------------------------------------------------------
43 #include <cstdlib>
44 #include <cstdio>
46 #include "OSGConfig.h"
48 #include "OSGGL.h"
50 #include "OSGFieldContainer.h"
51 #include "OSGNode.h"
52 #include "OSGAction.h"
53 #include "OSGViewport.h"
54 #include "OSGCamera.h"
55 #include "OSGWindow.h"
56 #include "OSGBackground.h"
57 #include "OSGDepthClearBackground.h"
59 OSG_USING_NAMESPACE
61 // Documentation for this class is emited in the
62 // OSGDepthClearBackgroundBase.cpp file.
63 // To modify it, please change the .fcd file (OSGDepthClearBackground.fcd) and
64 // regenerate the base file.
66 /***************************************************************************\
67 * Class methods *
68 \***************************************************************************/
70 /*-------------------------------------------------------------------------*\
71 - private -
72 \*-------------------------------------------------------------------------*/
74 void DepthClearBackground::initMethod(InitPhase ePhase)
76 Inherited::initMethod(ePhase);
79 /***************************************************************************\
80 * Instance methods *
81 \***************************************************************************/
83 DepthClearBackground::DepthClearBackground(void) :
84 Inherited()
88 DepthClearBackground::DepthClearBackground(
89 const DepthClearBackground &source) :
91 Inherited(source)
95 DepthClearBackground::~DepthClearBackground(void)
99 void DepthClearBackground::changed(ConstFieldMaskArg whichField,
100 UInt32 origin,
101 BitVector details)
103 Inherited::changed(whichField, origin, details);
106 /*-------------------------- your_category---------------------------------*/
108 void DepthClearBackground::clear(DrawEnv *)
110 Int32 bit = getClearStencilBit();
112 #ifndef OSG_OGL_ES2
113 glClearDepth(getDepth());
114 #else
115 glClearDepthf(getDepth());
116 #endif
118 if(bit >= 0)
120 glClearStencil(bit);
122 if (getClearDepth())
124 glClear(GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
126 else
128 glClear(GL_STENCIL_BUFFER_BIT);
131 else
133 if (getClearDepth())
135 glClear(GL_DEPTH_BUFFER_BIT);
140 /*------------------------------- dump ----------------------------------*/
142 void DepthClearBackground::dump( UInt32 OSG_CHECK_ARG(uiIndent),
143 const BitVector OSG_CHECK_ARG(bvFlags )) const
145 SLOG << "Dump DepthClearBackground NI" << std::endl;