/indra/llprimitive/llprimtexturelist.h
C++ Header | 121 lines | 53 code | 19 blank | 49 comment | 0 complexity | 263db7739272da39a9a1a711957db52e MD5 | raw file
Possible License(s): LGPL-2.1
- /**
- * @file llprimtexturelist.h
- * @brief LLPrimTextureList (virtual) base class
- *
- * $LicenseInfo:firstyear=2008&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
- #ifndef LL_LLPRIMTEXTURELIST_H
- #define LL_LLPRIMTEXTURELIST_H
- #include <vector>
- #include "lluuid.h"
- #include "v3color.h"
- #include "v4color.h"
- class LLTextureEntry;
- // this is a list of LLTextureEntry*'s because in practice the list's elements
- // are of some derived class: LLFooTextureEntry
- typedef std::vector<LLTextureEntry*> texture_list_t;
- class LLPrimTextureList
- {
- public:
- // the LLPrimTextureList needs to know what type of LLTextureEntry
- // to generate when it needs a new one, so we may need to set a
- // callback for generating it, (or else use the base class default:
- // static LLPrimTextureEntry::newTextureEntry() )
- //typedef LLTextureEntry* (__stdcall *NewTextureEntryFunction)();
- //static NewTextureEntryFunction sNewTextureEntryCallback;
- static LLTextureEntry* newTextureEntry();
- static void setNewTextureEntryCallback( LLTextureEntry* (*callback)() );
- static LLTextureEntry* (*sNewTextureEntryCallback)();
- LLPrimTextureList();
- virtual ~LLPrimTextureList();
- void clear();
- // clears current entries
- // copies contents of other_list
- // this is somewhat expensive, so it must be called explicitly
- void copy(const LLPrimTextureList& other_list);
- // clears current copies
- // takes contents of other_list
- // clears other_list
- void take(LLPrimTextureList& other_list);
- // copies LLTextureEntry 'te'
- // returns TEM_CHANGE_TEXTURE if successful, otherwise TEM_CHANGE_NONE
- S32 copyTexture(const U8 index, const LLTextureEntry& te);
- // takes ownership of LLTextureEntry* 'te'
- // returns TEM_CHANGE_TEXTURE if successful, otherwise TEM_CHANGE_NONE
- // IMPORTANT! -- if you use this function you must check the return value
- S32 takeTexture(const U8 index, LLTextureEntry* te);
- // // copies contents of 'entry' and stores it in 'index' slot
- // void copyTexture(const U8 index, const LLTextureEntry* entry);
- // returns pointer to texture at 'index' slot
- LLTextureEntry* getTexture(const U8 index) const;
- S32 setID(const U8 index, const LLUUID& id);
- S32 setColor(const U8 index, const LLColor3& color);
- S32 setColor(const U8 index, const LLColor4& color);
- S32 setAlpha(const U8 index, const F32 alpha);
- S32 setScale(const U8 index, const F32 s, const F32 t);
- S32 setScaleS(const U8 index, const F32 s);
- S32 setScaleT(const U8 index, const F32 t);
- S32 setOffset(const U8 index, const F32 s, const F32 t);
- S32 setOffsetS(const U8 index, const F32 s);
- S32 setOffsetT(const U8 index, const F32 t);
- S32 setRotation(const U8 index, const F32 r);
- S32 setBumpShinyFullbright(const U8 index, const U8 bump);
- S32 setMediaTexGen(const U8 index, const U8 media);
- S32 setBumpMap(const U8 index, const U8 bump);
- S32 setBumpShiny(const U8 index, const U8 bump_shiny);
- S32 setTexGen(const U8 index, const U8 texgen);
- S32 setShiny(const U8 index, const U8 shiny);
- S32 setFullbright(const U8 index, const U8 t);
- S32 setMediaFlags(const U8 index, const U8 media_flags);
- S32 setGlow(const U8 index, const F32 glow);
- S32 size() const;
- // void forceResize(S32 new_size);
- void setSize(S32 new_size);
- void setAllIDs(const LLUUID& id);
- protected:
- texture_list_t mEntryList;
- private:
- LLPrimTextureList(const LLPrimTextureList& other_list)
- {
- // private so that it can't be used
- }
- };
- #endif