1 /*---------------------------------------------------------------------------*\
5 * Copyright 2000-2002 by OpenSG Forum *
7 * contact: dirk@opensg.org, gerrit.voss@vossg.org, jbehr@zgdv.de *
9 \*---------------------------------------------------------------------------*/
10 /*---------------------------------------------------------------------------*\
13 * This library is free software; you can redistribute it and/or modify it *
14 * under the terms of the GNU Library General Public License as published *
15 * by the Free Software Foundation, version 2. *
17 * This library is distributed in the hope that it will be useful, but *
18 * WITHOUT ANY WARRANTY; without even the implied warranty of *
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
20 * Library General Public License for more details. *
22 * You should have received a copy of the GNU Library General Public *
23 * License along with this library; if not, write to the Free Software *
24 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *
26 \*---------------------------------------------------------------------------*/
27 /*---------------------------------------------------------------------------*\
35 \*---------------------------------------------------------------------------*/
41 const StateChunkClass *TextureBaseChunk::getStaticClass(void)
43 return &TextureBaseChunk::_class;
47 UInt32 TextureBaseChunk::getStaticClassId(void)
49 return getStaticClass()->getId();
53 UInt16 TextureBaseChunk::getChunkId(void)
59 bool TextureBaseChunk::hasMultiTexture(Window *win)
61 return win->hasExtOrVersion(_arbMultiTex, 0x0103, 0x0200);
64 //! call glActiveTexture via the extension mechanism
66 void TextureBaseChunk::activeTexture(Window *win, UInt16 texture)
68 OSGGETGLFUNCBYID_GL3_ES( glActiveTexture,
73 osgGlActiveTexture(GL_TEXTURE0 + texture);
76 //! call glActiveTexture via the extension mechanism, if MultiTextures
77 //! are supported. Return false if successful, true if not.
79 bool TextureBaseChunk::activateTexture(Window *win, UInt16 texture)
81 if(hasMultiTexture(win))
83 activeTexture(win, texture);
90 FWARNING(("TextureChunk::activateTexture: trying to activate "
91 "texture %d, but Window %p doesn't support "
94 static_cast<void *>(win)));