1 /*---------------------------------------------------------------------------*\
5 * Copyright (C) 2000-2002 by the OpenSG Forum *
9 * contact: dirk@opensg.org, gerrit.voss@vossg.org, jbehr@zghdv.de *
11 \*---------------------------------------------------------------------------*/
12 /*---------------------------------------------------------------------------*\
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. *
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. *
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. *
28 \*---------------------------------------------------------------------------*/
29 /*---------------------------------------------------------------------------*\
37 \*---------------------------------------------------------------------------*/
39 #ifndef _OSGTEXTURESELECTCHUNK_H_
40 #define _OSGTEXTURESELECTCHUNK_H_
45 #include "OSGTextureSelectChunkBase.h"
49 /*! \brief State chunk for textures. See \ref PageSystemTextureSelectChunk
51 \ingroup GrpStateAuxiliaryObj
52 \ingroup GrpLibOSGState
56 class OSG_STATE_DLLMAPPING TextureSelectChunk
: public TextureSelectChunkBase
58 /*========================== PUBLIC =================================*/
62 /*---------------------------------------------------------------------*/
63 /*! \name Chunk Class Access */
67 /*---------------------------------------------------------------------*/
68 /*! \name Static Chunk Class Access */
72 /*---------------------------------------------------------------------*/
77 /*---------------------------------------------------------------------*/
81 virtual void changed(ConstFieldMaskArg whichField
,
86 /*---------------------------------------------------------------------*/
90 virtual void dump( UInt32 uiIndent
= 0,
91 const BitVector bvFlags
= 0) const;
94 /*---------------------------------------------------------------------*/
98 virtual void activate (DrawEnv
*pEnv
,
101 virtual void changeFrom (DrawEnv
*pEnv
,
105 virtual void deactivate (DrawEnv
*pEnv
,
108 virtual bool isTransparent (void) const;
111 /*---------------------------------------------------------------------*/
115 //GLenum determineTextureTarget(Window *pWindow) const;
118 /*---------------------------------------------------------------------*/
119 /*! \name Comparison */
122 virtual Real32
switchCost(StateChunk
* chunk
);
124 virtual bool operator < (const StateChunk
&other
) const;
126 virtual bool operator == (const StateChunk
&other
) const;
127 virtual bool operator != (const StateChunk
&other
) const;
130 /*---------------------------------------------------------------------*/
131 /*! \name Texture specific */
134 virtual void validate (DrawEnv
*pEnv
);
135 virtual Int32
getOpenGLId (DrawEnv
*pEnv
);
136 virtual GLenum
determineInternalFormat(void );
139 /*---------------------------------------------------------------------*/
140 /*! \name Multitexture handling */
144 /*========================= PROTECTED ===============================*/
148 /*---------------------------------------------------------------------*/
152 void onCreate (const TextureSelectChunk
*source
= NULL
);
153 void onCreateAspect(const TextureSelectChunk
*createAspect
,
154 const TextureSelectChunk
*source
= NULL
);
157 /*---------------------------------------------------------------------*/
158 /*! \name Constructors */
161 TextureSelectChunk(void);
162 TextureSelectChunk(const TextureSelectChunk
&source
);
165 /*---------------------------------------------------------------------*/
166 /*! \name Destructors */
169 virtual ~TextureSelectChunk(void);
172 /*---------------------------------------------------------------------*/
176 static void initMethod(InitPhase ePhase
);
179 /*---------------------------------------------------------------------*/
184 /*---------------------------------------------------------------------*/
186 /*========================== PRIVATE ================================*/
190 typedef TextureSelectChunkBase Inherited
;
192 friend class FieldContainer
;
193 friend class TextureSelectChunkBase
;
195 // prohibit default functions (move to 'public' if you need one)
196 void operator =(const TextureSelectChunk
&source
);
199 typedef TextureSelectChunk
*TextureSelectChunkP
;
203 #include "OSGTextureSelectChunkBase.inl"
204 #include "OSGTextureSelectChunk.inl"
206 #endif /* _OSGTEXTURESELECTCHUNK_H_ */