This patch has no influence if you don't have libcwd installed. Note that libcwd (http://libcwd.sourceforge.net/) is only available for linux. A default compile of libcwd does memory allocation tracking, which is too slow for everyday usage of the viewer (usable, but notably slower) and we don't need that. Configure your libcwd as follows: ./configure --prefix=/sl/usr --disable-alloc --enable-optimize Or whatever prefix you prefer (add --enable-maintainer-mode if you're compiling it from the SVN repository), add --disable-nonthreading to compile twice as fast. If you have it installed you can activate it's use by setting a few environment variables: CXXFLAGS="$(pkg-config --cflags libcwd_r)" LDFLAGS="$(pkg-config --libs libcwd_r) -lpthread" and then reconfiguring the viewer. The -lpthread is needed when using ld.gold, however, if you leave it out you might get an LDFLAGS that ends on trailing whitespaces, which doesn't work for some reason. Also, if you installed it in a non-standard place (/sl/usr above) then you need this to run the viewer (and tests): export LD_LIBRARY_PATH="/sl/usr/lib"
204 lines
6.1 KiB
C++
204 lines
6.1 KiB
C++
/**
|
|
* @file llassettype.h
|
|
* @brief Declaration of LLAssetType.
|
|
*
|
|
* $LicenseInfo:firstyear=2001&license=viewergpl$
|
|
*
|
|
* Copyright (c) 2001-2009, Linden Research, Inc.
|
|
*
|
|
* Second Life Viewer Source Code
|
|
* The source code in this file ("Source Code") is provided by Linden Lab
|
|
* to you under the terms of the GNU General Public License, version 2.0
|
|
* ("GPL"), unless you have obtained a separate licensing agreement
|
|
* ("Other License"), formally executed by you and Linden Lab. Terms of
|
|
* the GPL can be found in doc/GPL-license.txt in this distribution, or
|
|
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
|
|
*
|
|
* There are special exceptions to the terms and conditions of the GPL as
|
|
* it is applied to this Source Code. View the full text of the exception
|
|
* in the file doc/FLOSS-exception.txt in this software distribution, or
|
|
* online at
|
|
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
|
|
*
|
|
* By copying, modifying or distributing this software, you acknowledge
|
|
* that you have read and understood your obligations described above,
|
|
* and agree to abide by those obligations.
|
|
*
|
|
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
|
|
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
|
|
* COMPLETENESS OR PERFORMANCE.
|
|
* $/LicenseInfo$
|
|
*/
|
|
|
|
#ifndef LL_LLASSETTYPE_H
|
|
#define LL_LLASSETTYPE_H
|
|
|
|
#include <string>
|
|
|
|
#include "stdenums.h" // for EDragAndDropType
|
|
|
|
class LL_COMMON_API LLAssetType
|
|
{
|
|
public:
|
|
enum EType
|
|
{
|
|
// Used for painting the faces of geometry.
|
|
// Stored in typical j2c stream format
|
|
AT_TEXTURE = 0,
|
|
|
|
// Used to fill the aural spectrum.
|
|
AT_SOUND = 1,
|
|
|
|
// Links instant message access to the user on the card. eg, a
|
|
// card for yourself, a card for linden support, a card for
|
|
// the guy you were talking to in the coliseum.
|
|
AT_CALLINGCARD = 2,
|
|
|
|
// Links to places in the world with location and a screen
|
|
// shot or image saved. eg, home, linden headquarters, the
|
|
// coliseum, or destinations where we want to increase
|
|
// traffic.
|
|
AT_LANDMARK = 3,
|
|
|
|
// Valid scripts that can be attached to an object. eg. open a
|
|
// door, jump into the air.
|
|
AT_SCRIPT = 4,
|
|
|
|
// A collection of textures and parameters that can be worn
|
|
// by an avatar.
|
|
AT_CLOTHING = 5,
|
|
|
|
// Any combination of textures, sounds, and scripts that are
|
|
// associated with a fixed piece of geometry. eg, a hot tub, a
|
|
// house with working door.
|
|
AT_OBJECT = 6,
|
|
|
|
// Just text
|
|
AT_NOTECARD = 7,
|
|
|
|
// A category holds a collection of inventory items. It's
|
|
// treated as an item in the inventory, and therefore needs a
|
|
// type.
|
|
AT_CATEGORY = 8,
|
|
|
|
// A root category is a user's root inventory category. We
|
|
// decided to expose it visually, so it seems logical to fold
|
|
// it into the asset types.
|
|
AT_ROOT_CATEGORY = 9,
|
|
|
|
// The LSL is the brand spanking new scripting language. We've
|
|
// split it into a text and bytecode representation.
|
|
AT_LSL_TEXT = 10,
|
|
AT_LSL_BYTECODE = 11,
|
|
|
|
// uncompressed TGA texture
|
|
AT_TEXTURE_TGA = 12,
|
|
|
|
// A collection of textures and parameters that can be worn
|
|
// by an avatar.
|
|
AT_BODYPART = 13,
|
|
|
|
// This asset type is meant to only be used as a marker for a
|
|
// category preferred type. Using this, we can throw things in
|
|
// the trash before completely deleting.
|
|
AT_TRASH = 14,
|
|
|
|
// This is a marker for a folder meant for snapshots. No
|
|
// actual assets will be snapshots, though if there were, you
|
|
// could interpret them as textures.
|
|
AT_SNAPSHOT_CATEGORY = 15,
|
|
|
|
// This is used to stuff lost&found items into
|
|
AT_LOST_AND_FOUND = 16,
|
|
|
|
// uncompressed sound
|
|
AT_SOUND_WAV = 17,
|
|
|
|
// uncompressed image, non-square, and not appropriate for use
|
|
// as a texture.
|
|
AT_IMAGE_TGA = 18,
|
|
|
|
// compressed image, non-square, and not appropriate for use
|
|
// as a texture.
|
|
AT_IMAGE_JPEG = 19,
|
|
|
|
// animation
|
|
AT_ANIMATION = 20,
|
|
|
|
// gesture, sequence of animations, sounds, chat, wait steps
|
|
AT_GESTURE = 21,
|
|
|
|
// simstate file
|
|
AT_SIMSTATE = 22,
|
|
|
|
AT_FAVORITE = 23,
|
|
|
|
// Inventory symbolic link
|
|
AT_LINK = 24,
|
|
|
|
// Inventory folder link
|
|
AT_LINK_FOLDER = 25,
|
|
|
|
AT_CURRENT_OUTFIT = 46,
|
|
|
|
AT_OUTFIT = 47,
|
|
|
|
AT_MY_OUTFITS = 48,
|
|
|
|
// +*********************************************+
|
|
// | TO ADD AN ELEMENT TO THIS ENUM: |
|
|
// +*********************************************+
|
|
// | 1. INSERT BEFORE AT_COUNT |
|
|
// | 2. INCREMENT AT_COUNT BY 1 |
|
|
// | 3. ADD TO LLAssetType::mAssetTypeNames |
|
|
// | 4. ADD TO LLAssetType::mAssetTypeHumanNames |
|
|
// +*********************************************+
|
|
|
|
AT_COUNT = 49,
|
|
|
|
AT_NONE = -1
|
|
};
|
|
|
|
// machine transation between type and strings
|
|
static EType lookup(const char* name); // safe conversion to std::string, *TODO: deprecate
|
|
static EType lookup(const std::string& name);
|
|
static const char* lookup(EType type);
|
|
|
|
// translation from a type to a human readable form.
|
|
static EType lookupHumanReadable( const char* name ); // safe conversion to std::string, *TODO: deprecate
|
|
static EType lookupHumanReadable( const std::string& name );
|
|
static const char* lookupHumanReadable(EType type);
|
|
|
|
static EDragAndDropType lookupDragAndDropType( EType );
|
|
|
|
// Generate a good default description. You may want to add a verb
|
|
// or agent name after this depending on your application.
|
|
static void generateDescriptionFor(LLAssetType::EType type,
|
|
std::string& desc);
|
|
|
|
static EType getType(const std::string& sin);
|
|
static std::string getDesc(EType type);
|
|
|
|
static bool lookupCanLink(EType asset_type);
|
|
static bool lookupIsLinkType(EType asset_type);
|
|
|
|
static bool lookupIsAssetFetchByIDAllowed(EType asset_type); // the asset allows direct download
|
|
static bool lookupIsAssetIDKnowable(EType asset_type); // asset data can be known by the viewer
|
|
|
|
private:
|
|
// don't instantiate or derive one of these objects
|
|
LLAssetType( void ) {}
|
|
~LLAssetType( void ) {}
|
|
|
|
private:
|
|
static const char* mAssetTypeNames[];
|
|
static const char* mAssetTypeHumanNames[];
|
|
};
|
|
|
|
#ifdef CWDEBUG
|
|
#include <iosfwd>
|
|
inline std::ostream& operator<<(std::ostream& os, LLAssetType::EType type) { return os << LLAssetType::getDesc(type); }
|
|
#endif
|
|
|
|
#endif // LL_LLASSETTYPE
|