Snowgobe 1.4.2 to 1.5.0 patch part 1 (no rejects)

This commit is contained in:
Siana Gearz
2010-10-18 10:25:32 +02:00
parent 8148416f42
commit babc0dc420
15 changed files with 410 additions and 227 deletions

View File

@@ -336,6 +336,8 @@ JB Kraft
VWR-7802
Joghert LeSabre
VWR-64
Jonathan Yap
VWR-8999
Kage Pixel
VWR-11
Ken March

View File

@@ -72,6 +72,21 @@ if (WINDOWS)
if (NOT VS_DISABLE_FATAL_WARNINGS)
add_definitions(/WX)
endif (NOT VS_DISABLE_FATAL_WARNINGS)
# Various libs are compiler specific, generate some variables here we can just use
# when we require them instead of reimplementing the test each time.
if (MSVC71)
set(MSVC_DIR 7.1)
set(MSVC_SUFFIX 71)
elseif (MSVC80)
set(MSVC_DIR 8.0)
set(MSVC_SUFFIX 80)
elseif (MSVC90)
set(MSVC_DIR 9.0)
set(MSVC_SUFFIX 90)
endif (MSVC71)
endif (WINDOWS)

View File

@@ -11,8 +11,8 @@ else (STANDALONE)
use_prebuilt_binary(jsoncpp)
if (WINDOWS)
set(JSONCPP_LIBRARIES
debug json_vc80d
optimized json_vc80)
debug json_vc${MSVC_SUFFIX}d
optimized json_vc${MSVC_SUFFIX})
elseif (DARWIN)
set(JSONCPP_LIBRARIES json_mac-universal-gcc_libmt)
elseif (LINUX)

View File

@@ -73,7 +73,7 @@ ENDMACRO(ADD_SIMULATOR_BUILD_TEST name parent)
MACRO(ADD_BUILD_TEST_INTERNAL name parent libraries source_files)
# Optional additional parameter: pathname of Python wrapper script
SET(wrapper "${ARGN}")
#MESSAGE(STATUS "ADD_BUILD_TEST_INTERNAL ${name} wrapper = ${wrapper}")
#MESSAGE(STATUS "ADD_BUILD_TEST_INTERNAL ${name} libraries = \"${libraries}\"; source_files = \"${source_files}\"; wrapper = \"${wrapper}\"")
SET(TEST_SOURCE_FILES ${source_files})
SET(HEADER "${name}.h")
@@ -96,11 +96,19 @@ MACRO(ADD_BUILD_TEST_INTERNAL name parent libraries source_files)
ENDIF ("${wrapper}" STREQUAL "")
#MESSAGE(STATUS "ADD_BUILD_TEST_INTERNAL ${name} test_cmd = ${TEST_CMD}")
#MESSAGE(STATUS "CMAKE_BINARY_DIR = \"${CMAKE_BINARY_DIR}\"")
SET(LD_LIBRARY_PATH "${CMAKE_BINARY_DIR}/llcommon:/usr/lib:/usr/local/lib")
IF (NOT "${ARCH_PREBUILT_DIRS}" STREQUAL "")
SET(LD_LIBRARY_PATH "${ARCH_PREBUILT_DIRS}:${LD_LIBRARY_PATH}")
ENDIF (NOT "${ARCH_PREBUILT_DIRS}" STREQUAL "")
IF (NOT "$ENV{LD_LIBRARY_PATH}" STREQUAL "")
SET(LD_LIBRARY_PATH "$ENV{LD_LIBRARY_PATH}:${LD_LIBRARY_PATH}")
ENDIF (NOT "$ENV{LD_LIBRARY_PATH}" STREQUAL "")
ADD_CUSTOM_COMMAND(
OUTPUT ${TEST_OUTPUT}
COMMAND
${CMAKE_COMMAND}
"-DLD_LIBRARY_PATH=${ARCH_PREBUILT_DIRS}:/usr/lib"
"-DLD_LIBRARY_PATH=${LD_LIBRARY_PATH}"
"-DTEST_CMD:STRING=${TEST_CMD}"
-P ${CMAKE_SOURCE_DIR}/cmake/RunBuildTest.cmake
DEPENDS ${name}_test

View File

@@ -30,6 +30,7 @@ set(LIBS_SERVER_DIR ${CMAKE_SOURCE_DIR}/${LIBS_SERVER_PREFIX})
set(SCRIPTS_DIR ${CMAKE_SOURCE_DIR}/${SCRIPTS_PREFIX})
set(SERVER_DIR ${CMAKE_SOURCE_DIR}/${SERVER_PREFIX})
set(VIEWER_DIR ${CMAKE_SOURCE_DIR}/${VIEWER_PREFIX})
set(LL_TESTS ON CACHE BOOL "Build and run unit and integration tests (disable for build timing runs to reduce variation)")
set(LIBS_PREBUILT_DIR ${CMAKE_SOURCE_DIR}/../libraries CACHE PATH
"Location of prebuilt libraries.")

View File

@@ -46,7 +46,7 @@ void LLCurl::Responder::completed(U32 status, std::basic_string<char, std::char_
}
else
{
error(status, reason, mContent);
errorWithContent(status, reason, mContent);
}
}
@@ -63,7 +63,7 @@ void LLCurl::Responder::completedRaw(unsigned,
{
}
void LLCurl::Responder::error(unsigned,
void LLCurl::Responder::errorWithContent(unsigned,
std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&,
LLSD const&)
{

View File

@@ -3003,6 +3003,17 @@
<key>Value</key>
<integer>1</integer>
</map>
<key>ChatSpacing</key>
<map>
<key>Comment</key>
<string>Add extra vertical spacing between local chat lines</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>S32</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>ChatVisible</key>
<map>
<key>Comment</key>

View File

@@ -206,11 +206,26 @@ void LLConsole::draw()
F32 line_height = mFont->getLineHeight();
S32 message_spacing=4;
S32 message_spacing = 0;
//080813 Spatters: This section makes a single huge black box behind all the text.
S32 bkg_height=4;
S32 bkg_height=8;
S32 bkg_width=0;
// VWR-8999
// ChatSpacing: 0 -- chat lines are close together, as they were in the 1.20 viewer.
// 4 -- chat lines are farther apart as they are in SnowGlobe 1.4.
static LLCachedControl<S32> chat_spacing("ChatSpacing", 0);
// Perform clamping.
S32 const clamped_chat_spacing = llclamp((S32)chat_spacing, -16, 128);
if (chat_spacing != clamped_chat_spacing)
{
gSavedSettings.setS32("ChatSpacing", clamped_chat_spacing);
}
// Adjust spacing.
message_spacing += chat_spacing;
bkg_height -= chat_spacing;
for(paragraph_it = mParagraphs.rbegin(); paragraph_it != mParagraphs.rend(); paragraph_it++)
{
S32 target_height = llfloor( (*paragraph_it)->mLines.size() * line_height + message_spacing);

View File

@@ -868,7 +868,7 @@ bool LLTextureCache::updateTextureEntryList(const LLUUID& id, S32 bodysize)
//static
const S32 MAX_REASONABLE_FILE_SIZE = 512*1024*1024; // 512 MB
F32 LLTextureCache::sHeaderCacheVersion = 1.2f;
F32 LLTextureCache::sHeaderCacheVersion = 1.4f;
U32 LLTextureCache::sCacheMaxEntries = MAX_REASONABLE_FILE_SIZE / TEXTURE_CACHE_ENTRY_SIZE;
S64 LLTextureCache::sCacheMaxTexturesSize = 0; // no limit
const char* entries_filename = "texture.entries";

View File

@@ -168,6 +168,9 @@ public:
mGetReason = reason;
}
void setCanUseHTTP(bool can_use_http) {mCanUseHTTP = can_use_http;}
bool getCanUseHTTP()const {return mCanUseHTTP ;}
protected:
LLTextureFetchWorker(LLTextureFetch* fetcher, const LLUUID& id, const LLHost& host,
F32 priority, S32 discard, S32 size);
@@ -217,8 +220,15 @@ private:
QUEUED = 1,
SENT_SIM = 2
};
enum e_write_to_cache_state //mWriteToCacheState
{
NOT_WRITE = 0,
CAN_WRITE = 1,
SHOULD_WRITE = 2
};
static const char* sStateDescs[];
e_state mState;
e_write_to_cache_state mWriteToCacheState;
LLTextureFetch* mFetcher;
LLPointer<LLImageFormatted> mFormattedImage;
LLPointer<LLImageRaw> mRawImage;
@@ -253,6 +263,8 @@ private:
BOOL mNeedsAux;
BOOL mHaveAllData;
BOOL mInLocalCache;
bool mCanUseHTTP ;
bool mCanUseNET ; //can get from asset server.
S32 mHTTPFailCount;
S32 mRetryAttempt;
S32 mActiveCount;
@@ -378,6 +390,7 @@ LLTextureFetchWorker::LLTextureFetchWorker(LLTextureFetch* fetcher,
S32 size) // Desired size
: LLWorkerClass(fetcher, "TextureFetch"),
mState(INIT),
mWriteToCacheState(NOT_WRITE),
mFetcher(fetcher),
mID(id),
mHost(host),
@@ -406,6 +419,7 @@ LLTextureFetchWorker::LLTextureFetchWorker(LLTextureFetch* fetcher,
mNeedsAux(FALSE),
mHaveAllData(FALSE),
mInLocalCache(FALSE),
mCanUseHTTP(true),
mHTTPFailCount(0),
mRetryAttempt(0),
mActiveCount(0),
@@ -416,6 +430,8 @@ LLTextureFetchWorker::LLTextureFetchWorker(LLTextureFetch* fetcher,
mTotalPackets(0),
mImageCodec(IMG_CODEC_INVALID)
{
mCanUseNET = mUrl.empty() ;
calcWorkPriority();
mType = host.isOk() ? LLImageBase::TYPE_AVATAR_BAKE : LLImageBase::TYPE_NORMAL;
// llinfos << "Create: " << mID << " mHost:" << host << " Discard=" << discard << llendl;
@@ -572,13 +588,25 @@ bool LLTextureFetchWorker::doWork(S32 param)
{
LLMutexLock lock(&mWorkMutex);
if ((mFetcher->isQuitting() || (mImagePriority <= 0.0f) || getFlags(LLWorkerClass::WCF_DELETE_REQUESTED)))
if ((mFetcher->isQuitting() || getFlags(LLWorkerClass::WCF_DELETE_REQUESTED)))
{
if (mState < WRITE_TO_CACHE)
if (mState < DECODE_IMAGE)
{
return true; // abort
}
}
if(mImagePriority < 1.0f)
{
if (mState == INIT || mState == LOAD_FROM_NETWORK || mState == LOAD_FROM_SIMULATOR)
{
return true; // abort
}
}
if(mState > CACHE_POST && !mCanUseNET && !mCanUseHTTP)
{
//nowhere to get data, abort.
return true ;
}
if (mFetcher->mDebugPause)
{
@@ -656,7 +684,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
mCacheReadHandle = mFetcher->mTextureCache->readFromCache(mID, cache_priority,
offset, size, responder);
}
else
else if(mCanUseHTTP)
{
if (!(mUrl.compare(0, 7, "http://") == 0))
{
@@ -666,6 +694,11 @@ bool LLTextureFetchWorker::doWork(S32 param)
setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority);
mState = SEND_HTTP_REQ;
}
else
{
setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority);
mState = LOAD_FROM_NETWORK;
}
}
if (mLoaded)
@@ -698,6 +731,10 @@ bool LLTextureFetchWorker::doWork(S32 param)
// we have enough data, decode it
llassert_always(mFormattedImage->getDataSize() > 0);
mState = DECODE_IMAGE;
mWriteToCacheState = NOT_WRITE ;
LL_DEBUGS("Texture") << mID << ": Cached. Bytes: " << mFormattedImage->getDataSize()
<< " Size: " << llformat("%dx%d",mFormattedImage->getWidth(),mFormattedImage->getHeight())
<< " Desired Discard: " << mDesiredDiscard << " Desired Size: " << mDesiredSize << LL_ENDL;
// fall through
}
else
@@ -726,7 +763,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
bool get_url = image_pipeline_use_http;
if (!mUrl.empty()) get_url = false;
// if (mHost != LLHost::invalid) get_url = false;
if ( get_url )
if ( get_url && mCanUseHTTP && mUrl.empty())//get http url.
{
LLViewerRegion* region = NULL;
if (mHost == LLHost::invalid)
@@ -740,23 +777,35 @@ bool LLTextureFetchWorker::doWork(S32 param)
if (!http_url.empty())
{
mUrl = http_url + "/?texture_id=" + mID.asString().c_str();
mWriteToCacheState = CAN_WRITE ; //because this texture has a fixed texture id.
}
else
{
mCanUseHTTP = false ;
}
}
else
{
llwarns << "Region not found for host: " << mHost << llendl;
// This will happen if not logged in or if a region deoes not have HTTP Texture enabled
//llwarns << "Region not found for host: " << mHost << llendl;
mCanUseHTTP = false;
}
}
if (!mUrl.empty())
if (mCanUseHTTP && !mUrl.empty())
{
mState = LLTextureFetchWorker::SEND_HTTP_REQ;
setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority);
if(mWriteToCacheState != NOT_WRITE)
{
mWriteToCacheState = CAN_WRITE ;
}
// don't return, fall through to next state
}
else if (mSentRequest == UNSENT)
{
// Add this to the network queue and sit here.
// LLTextureFetch::update() will send off a request which will change our state
mWriteToCacheState = CAN_WRITE ;
mRequestedSize = mDesiredSize;
mRequestedDiscard = mDesiredDiscard;
mSentRequest = QUEUED;
@@ -788,6 +837,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
}
setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority);
mState = DECODE_IMAGE;
mWriteToCacheState = SHOULD_WRITE ;
}
else
{
@@ -798,6 +848,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
if (mState == SEND_HTTP_REQ)
{
if(mCanUseHTTP)
{
const S32 HTTP_QUEUE_MAX_SIZE = 32;
// *TODO: Integrate this with llviewerthrottle
@@ -864,28 +915,82 @@ bool LLTextureFetchWorker::doWork(S32 param)
S32 cur_size = mFormattedImage.notNull() ? mFormattedImage->getDataSize() : 0;
if (mRequestedSize < 0)
{
const S32 HTTP_MAX_RETRY_COUNT = 4;
llinfos << "HTTP GET failed for: " << mUrl
<< " Status: " << mGetStatus << " Reason: " << mGetReason
<< " Try:" << mHTTPFailCount+1 << "/" << HTTP_MAX_RETRY_COUNT << llendl;
if (cur_size == 0)
S32 max_attempts;
if (mGetStatus == HTTP_NOT_FOUND)
{
++mHTTPFailCount;
if (mGetStatus == HTTP_NOT_FOUND || mHTTPFailCount >= HTTP_MAX_RETRY_COUNT)
mHTTPFailCount = max_attempts = 1; // Don't retry
llwarns << "Texture missing from server (404): " << mUrl << llendl;
//roll back to try UDP
if(mCanUseNET)
{
resetFormattedData();
return true; // failed
llinfos << "Falling back to UDP fetch for texture " << mID << llendl;
mState = INIT ;
mCanUseHTTP = false ;
setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority);
return false ;
}
else
{
mState = SEND_HTTP_REQ;
return false; // retry
// UDP is not an option, we are dead
llwarns << "No UDP fallback available for texture " << mID << llendl;
resetFormattedData();
return true; // failed
}
}
else if (mGetStatus == HTTP_SERVICE_UNAVAILABLE)
{
// *TODO: Should probably introduce a timer here to delay future HTTP requsts
// for a short time (~1s) to ease server load? Ideally the server would queue
// requests instead of returning 503... we already limit the number pending.
++mHTTPFailCount;
max_attempts = mHTTPFailCount+1; // Keep retrying
LL_INFOS_ONCE("Texture") << "Texture server busy (503): " << mUrl << LL_ENDL;
}
else
{
const S32 HTTP_MAX_RETRY_COUNT = 3;
max_attempts = HTTP_MAX_RETRY_COUNT + 1;
++mHTTPFailCount;
llinfos << "HTTP GET failed for: " << mUrl
<< " Status: " << mGetStatus << " Reason: '" << mGetReason << "'"
<< " Attempt:" << mHTTPFailCount+1 << "/" << max_attempts << llendl;
}
if (mHTTPFailCount >= max_attempts)
{
// Make max_attempts attempt at decoding what data we have, then bail forever on this image
if (cur_size > 0 && (mHTTPFailCount < (max_attempts+1)) )
{
// Use available data
mLoadedDiscard = mFormattedImage->getDiscardLevel();
mState = DECODE_IMAGE;
return false;
}
else
{
//roll back to try UDP
if(mCanUseNET)
{
llinfos << "Falling back to UDP fetch for texture " << mID << llendl;
mState = INIT ;
mCanUseHTTP = false ;
setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority);
return false ;
}
else
{
// UDP is not an option, we are dead
llwarns << "No UDP fallback available for texture " << mID << llendl;
resetFormattedData();
return true; // failed
}
}
}
else
{
mState = DECODE_IMAGE;
return false; // use what we have
mState = SEND_HTTP_REQ;
return false; // retry
}
}
@@ -901,10 +1006,15 @@ bool LLTextureFetchWorker::doWork(S32 param)
}
llassert_always(mBufferSize == cur_size + mRequestedSize);
if (mHaveAllData)
if (mHaveAllData && mRequestedDiscard == 0) //the image file is fully loaded.
{
mFileSize = mBufferSize;
}
else //the file size is unknown.
{
mFileSize = mBufferSize + 1 ; //flag the file is not fully loaded.
}
U8* buffer = new U8[mBufferSize];
if (cur_size > 0)
{
@@ -919,6 +1029,10 @@ bool LLTextureFetchWorker::doWork(S32 param)
mBufferSize = 0;
mLoadedDiscard = mRequestedDiscard;
mState = DECODE_IMAGE;
if(mWriteToCacheState != NOT_WRITE)
{
mWriteToCacheState = SHOULD_WRITE ;
}
setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority);
return false;
}
@@ -983,7 +1097,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
if (mState == WRITE_TO_CACHE)
{
if (mInLocalCache || mSentRequest == UNSENT || mFormattedImage.isNull())
if (mWriteToCacheState != SHOULD_WRITE || mFormattedImage.isNull())
{
// If we're in a local cache or we didn't actually receive any new data,
// or we failed to load anything, skip
@@ -1035,8 +1149,16 @@ bool LLTextureFetchWorker::doWork(S32 param)
else
{
setPriority(LLWorkerThread::PRIORITY_LOW | mWorkPriority);
if(mDecodedDiscard<=0)
{
return true;
}
else
{
return false;
}
}
}
return false;
@@ -1379,7 +1501,7 @@ LLTextureFetch::~LLTextureFetch()
}
bool LLTextureFetch::createRequest(const std::string& url, const LLUUID& id, const LLHost& host, F32 priority,
S32 w, S32 h, S32 c, S32 desired_discard, bool needs_aux)
S32 w, S32 h, S32 c, S32 desired_discard, bool needs_aux, bool can_use_http)
{
if (mDebugPause)
{
@@ -1441,6 +1563,7 @@ bool LLTextureFetch::createRequest(const std::string& url, const LLUUID& id, con
worker->lockWorkMutex();
worker->setImagePriority(priority);
worker->setDesiredDiscard(desired_discard, desired_size);
worker->setCanUseHTTP(can_use_http) ;
worker->unlockWorkMutex();
if (!worker->haveWork())
{

View File

@@ -60,7 +60,7 @@ public:
/*virtual*/ S32 update(U32 max_time_ms);
bool createRequest(const std::string& url, const LLUUID& id, const LLHost& host, F32 priority,
S32 w, S32 h, S32 c, S32 discard, bool needs_aux);
S32 w, S32 h, S32 c, S32 discard, bool needs_aux, bool can_use_http);
void deleteRequest(const LLUUID& id, bool cancel);
bool getRequestFinished(const LLUUID& id, S32& discard_level,
LLPointer<LLImageRaw>& raw, LLPointer<LLImageRaw>& aux);

View File

@@ -412,6 +412,8 @@ void LLViewerImage::init(bool firstinit)
mForceToSaveRawImage = FALSE ;
mSavedRawDiscardLevel = -1 ;
mDesiredSavedRawDiscardLevel = -1 ;
mCanUseHTTP = true; //default on if cap/settings allows us
}
// virtual
@@ -1251,7 +1253,7 @@ bool LLViewerImage::updateFetch()
// bypass texturefetch directly by pulling from LLTextureCache
bool fetch_request_created = false;
fetch_request_created = LLAppViewer::getTextureFetch()->createRequest(mUrl, getID(),getTargetHost(), decode_priority,
w, h, c, desired_discard, needsAux());
w, h, c, desired_discard, needsAux(), mCanUseHTTP);
if (fetch_request_created)
{
@@ -1330,7 +1332,7 @@ BOOL LLViewerImage::forceFetch()
c = getComponents();
}
fetch_request_created = LLAppViewer::getTextureFetch()->createRequest(mUrl, getID(),getTargetHost(), maxDecodePriority(),
w, h, c, desired_discard, needsAux());
w, h, c, desired_discard, needsAux(), mCanUseHTTP);
if (fetch_request_created)
{

View File

@@ -319,6 +319,9 @@ public:
void addFace(LLFace* facep) ;
void removeFace(LLFace* facep) ;
void setCanUseHTTP(bool can_use_http) {mCanUseHTTP = can_use_http;};
private:
/*virtual*/ void cleanup(); // Cleanup the LLViewerImage (so we can reinitialize it)
@@ -424,6 +427,8 @@ private:
typedef std::list<LLFace*> ll_face_list_t ;
ll_face_list_t mFaceList ; //reverse pointer pointing to the faces using this image as texture
bool mCanUseHTTP; // can this image be fetched by http
public:
static const U32 sCurrentFileVersion;
// Default textures

View File

@@ -5517,6 +5517,7 @@ void LLVOAvatar::addLocalTextureStats( ETextureIndex idx, LLViewerImage* imagep,
void LLVOAvatar::addBakedTextureStats( LLViewerImage* imagep, F32 pixel_area, F32 texel_area_ratio, S32 boost_level)
{
imagep->setCanUseHTTP(false) ; //turn off http fetching for baked textures.
mMaxPixelArea = llmax(pixel_area, mMaxPixelArea);
mMinPixelArea = llmin(pixel_area, mMinPixelArea);
imagep->addTextureStats(pixel_area / texel_area_ratio);

View File

@@ -1,193 +1,193 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#ifdef IDC_STATIC
#undef IDC_STATIC
#endif
#define IDC_STATIC (-1)
#include "winresrc.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
// Commented out because it only compiles if you have MFC installed.
//#include "winres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""winres.h""\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_LL_ICON ICON "snowglobe_icon.ico"
IDI_LCD_LL_ICON ICON "icon1.ico"
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
SPLASHSCREEN DIALOG 32, 32, 144, 34
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE
FONT 8, "MS Sans Serif"
BEGIN
ICON IDI_LL_ICON,IDC_STATIC,7,7,20,20
LTEXT "Loading Second Life...",666,36,13,91,8
END
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO
BEGIN
"SPLASHSCREEN", DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 137
VERTGUIDE, 36
TOPMARGIN, 7
BOTTOMMARGIN, 27
END
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Cursor
//
TOOLGRAB CURSOR "lltoolgrab.cur"
TOOLLAND CURSOR "lltoolland.cur"
TOOLZOOMIN CURSOR "lltoolzoomin.cur"
TOOLCREATE CURSOR "lltoolcreate.cur"
ARROWDRAG CURSOR "llarrowdrag.cur"
ARROW CURSOR "llarrow.cur"
NOLOCKED CURSOR "llnolocked.cur"
ARROWLOCKED CURSOR "llarrowlocked.cur"
GRABLOCKED CURSOR "llgrablocked.cur"
TOOLROTATE CURSOR "lltoolrotate.cur"
TOOLTRANSLATE CURSOR "lltooltranslate.cur"
TOOLSCALE CURSOR "lltoolscale.cur"
TOOLCAMERA CURSOR "lltoolcamera.cur"
TOOLPAN CURSOR "lltoolpan.cur"
TOOLFOCUS CURSOR "lltoolfocus.cur"
TOOLPICKOBJECT3 CURSOR "toolpickobject3.cur"
ARROWCOPY CURSOR "arrowcop.cur"
ARROWDRAGMULTI CURSOR "llarrowdragmulti.cur"
ARROWCOPYMULTI CURSOR "arrowcopmulti.cur"
TOOLSIT CURSOR "toolsit.cur"
TOOLBUY CURSOR "toolbuy.cur"
TOOLPAY CURSOR "toolpay.cur"
TOOLOPEN CURSOR "toolopen.cur"
TOOLPIPETTE CURSOR "toolpipette.cur"
TOOLPLAY CURSOR "toolplay.cur"
TOOLPAUSE CURSOR "toolpause.cur"
TOOLMEDIAOPEN CURSOR "toolmediaopen.cur"
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,4,0,0
PRODUCTVERSION 1,4,0,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", "Linden Lab"
VALUE "FileDescription", "Ascent"
VALUE "FileVersion", "1.4.0.0"
VALUE "InternalName", "Second Life"
VALUE "LegalCopyright", "Copyright <20> 2001-2010, Linden Research, Inc."
VALUE "OriginalFilename", "Ascent.exe"
VALUE "ProductName", "Ascent"
VALUE "ProductVersion", "1.4.0.0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
/////////////////////////////////////////////////////////////////////////////
//
// Bitmap
//
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#ifdef IDC_STATIC
#undef IDC_STATIC
#endif
#define IDC_STATIC (-1)
#include "winresrc.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
// Commented out because it only compiles if you have MFC installed.
//#include "winres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""winres.h""\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_LL_ICON ICON "snowglobe_icon.ico"
IDI_LCD_LL_ICON ICON "icon1.ico"
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
SPLASHSCREEN DIALOG 32, 32, 144, 34
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE
FONT 8, "MS Sans Serif"
BEGIN
ICON IDI_LL_ICON,IDC_STATIC,7,7,20,20
LTEXT "Loading Second Life...",666,36,13,91,8
END
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO
BEGIN
"SPLASHSCREEN", DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 137
VERTGUIDE, 36
TOPMARGIN, 7
BOTTOMMARGIN, 27
END
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Cursor
//
TOOLGRAB CURSOR "lltoolgrab.cur"
TOOLLAND CURSOR "lltoolland.cur"
TOOLZOOMIN CURSOR "lltoolzoomin.cur"
TOOLCREATE CURSOR "lltoolcreate.cur"
ARROWDRAG CURSOR "llarrowdrag.cur"
ARROW CURSOR "llarrow.cur"
NOLOCKED CURSOR "llnolocked.cur"
ARROWLOCKED CURSOR "llarrowlocked.cur"
GRABLOCKED CURSOR "llgrablocked.cur"
TOOLROTATE CURSOR "lltoolrotate.cur"
TOOLTRANSLATE CURSOR "lltooltranslate.cur"
TOOLSCALE CURSOR "lltoolscale.cur"
TOOLCAMERA CURSOR "lltoolcamera.cur"
TOOLPAN CURSOR "lltoolpan.cur"
TOOLFOCUS CURSOR "lltoolfocus.cur"
TOOLPICKOBJECT3 CURSOR "toolpickobject3.cur"
ARROWCOPY CURSOR "arrowcop.cur"
ARROWDRAGMULTI CURSOR "llarrowdragmulti.cur"
ARROWCOPYMULTI CURSOR "arrowcopmulti.cur"
TOOLSIT CURSOR "toolsit.cur"
TOOLBUY CURSOR "toolbuy.cur"
TOOLPAY CURSOR "toolpay.cur"
TOOLOPEN CURSOR "toolopen.cur"
TOOLPIPETTE CURSOR "toolpipette.cur"
TOOLPLAY CURSOR "toolplay.cur"
TOOLPAUSE CURSOR "toolpause.cur"
TOOLMEDIAOPEN CURSOR "toolmediaopen.cur"
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,4,0,0
PRODUCTVERSION 1,4,0,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", "Linden Lab"
VALUE "FileDescription", "Ascent"
VALUE "FileVersion", "1.4.0.0"
VALUE "InternalName", "Second Life"
VALUE "LegalCopyright", "Copyright <20> 2001-2010, Linden Research, Inc."
VALUE "OriginalFilename", "Ascent.exe"
VALUE "ProductName", "Ascent"
VALUE "ProductVersion", "1.4.0.0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
/////////////////////////////////////////////////////////////////////////////
//
// Bitmap
//
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED