master
Ansariel 2020-04-10 18:37:27 +02:00
commit bc91debfd7
13 changed files with 110 additions and 11 deletions

1
.gitignore vendored
View File

@ -3,6 +3,7 @@
*.bak
*.diff
*.orig
*.patch
*.pyc
*.rej
*.swp

View File

@ -1002,11 +1002,11 @@
<key>fmodstudio</key>
<map>
<key>copyright</key>
<string>FMOD Studio, copyright (c) Firelight Technologies Pty, Ltd., 2012-2017.</string>
<string>FMOD Studio by Firelight Technologies Pty Ltd.</string>
<key>description</key>
<string>FMOD Studio audio system library</string>
<string>FMOD Studio API</string>
<key>license</key>
<string>fmodstudio</string>
<string>fmod</string>
<key>license_file</key>
<string>LICENSES/fmodstudio.txt</string>
<key>name</key>

View File

@ -84,3 +84,5 @@ const LLUUID IMG_USE_BAKED_AUX1 ("9742065b-19b5-297c-858a-29711d539043");
const LLUUID IMG_USE_BAKED_AUX2 ("03642e83-2bd1-4eb9-34b4-4c47ed586d2d");
const LLUUID IMG_USE_BAKED_AUX3 ("edd51b77-fc10-ce7a-4b3d-011dfc349e4f");
const LLUUID IMG_LOGO_FMOD("876982f5-f5fd-4a68-b5e7-727f3ae3487b");

View File

@ -222,6 +222,8 @@ LL_COMMON_API extern const LLUUID IMG_USE_BAKED_AUX1;
LL_COMMON_API extern const LLUUID IMG_USE_BAKED_AUX2;
LL_COMMON_API extern const LLUUID IMG_USE_BAKED_AUX3;
LL_COMMON_API extern const LLUUID IMG_LOGO_FMOD;
LL_COMMON_API extern const LLUUID DEFAULT_WATER_NORMAL;

View File

@ -2111,6 +2111,8 @@ endif (OPENAL)
if (FMODSTUDIO)
set(LLSTARTUP_COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS} -DLL_FMODSTUDIO")
# texture list needs to load fmod icon
set_source_files_properties(llviewertexturelist.cpp PROPERTIES COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS}")
set(FMODWRAPPER_LIBRARY ${FMODSTUDIO_LIBRARY})
endif (FMODSTUDIO)
@ -2239,10 +2241,10 @@ if (WINDOWS)
if (FMODSTUDIO)
list(APPEND COPY_INPUT_DEPENDENCIES
${SHARED_LIB_STAGING_DIR}/Release/fmod.dll
${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/fmod.dll
${SHARED_LIB_STAGING_DIR}/Debug/fmodL.dll
)
${SHARED_LIB_STAGING_DIR}/Release/fmod.dll
${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/fmod.dll
${SHARED_LIB_STAGING_DIR}/Debug/fmodL.dll
)
endif (FMODSTUDIO)
if (OPENAL)

View File

@ -42,6 +42,7 @@
#include "llbutton.h"
#include "llcallbacklist.h"
#include "llfocusmgr.h"
#include "lliconctrl.h"
#include "llnotifications.h"
#include "llprogressbar.h"
#include "llstartup.h"
@ -245,6 +246,7 @@ void LLProgressView::setVisible(BOOL visible)
if (getVisible() && !visible)
{
LLPanel::setVisible(FALSE);
setShowLogos(FALSE);
}
// showing progress view
else if (visible && (!getVisible() || mFadeToWorldTimer.getStarted()))
@ -388,6 +390,18 @@ void LLProgressView::setMessage(const std::string& msg)
mMessageText->setValue(mMessage);
}
void LLProgressView::setShowLogos(const BOOL logos_visible)
{
LLIconCtrl* logo = getChild<LLIconCtrl>("fmod_logo");
if (logos_visible)
{
logo->setValue(IMG_LOGO_FMOD);
}
logo->setVisible(logos_visible);
getChild<LLUICtrl>("fmod_text")->setVisible(logos_visible);
getChild<LLUICtrl>("message_text")->setVisible(!logos_visible);
}
void LLProgressView::setCancelButtonVisible(BOOL b, const std::string& label)
{
mCancelBtn->setVisible( b );

View File

@ -73,6 +73,9 @@ public:
void setStartupComplete();
// turns on logos, hides message of the day
void setShowLogos(const BOOL logos_visible);
void setCancelButtonVisible(BOOL b, const std::string& label);
static void onCancelButtonClicked( void* );

View File

@ -985,11 +985,11 @@ bool idle_startup()
#ifdef LL_FMODSTUDIO
#if !LL_WINDOWS
if (NULL == getenv("LL_BAD_FMODSTUDIO_DRIVER"))
if (NULL == getenv("LL_BAD_FMODSTUDIO_DRIVER"))
#endif // !LL_WINDOWS
{
gAudiop = (LLAudioEngine *) new LLAudioEngine_FMODSTUDIO(gSavedSettings.getBOOL("FMODProfilerEnable"), gSavedSettings.getU32("FMODResampleMethod"));
}
{
gAudiop = (LLAudioEngine *) new LLAudioEngine_FMODSTUDIO(gSavedSettings.getBOOL("FMODProfilerEnable"), gSavedSettings.getU32("FMODResampleMethod"));
}
#endif
#ifdef LL_OPENAL
@ -1155,6 +1155,7 @@ bool idle_startup()
display_startup();
// LLViewerMedia::initBrowser();
LLStartUp::setStartupState( STATE_LOGIN_SHOW );
gViewerWindow->setShowLogos(TRUE);
return FALSE;
}

View File

@ -193,6 +193,37 @@ void LLViewerTextureList::doPreloadImages()
mImagePreloads.insert(image);
}
// Normally images are located in 'skins' folder in working directory,
// but 3p images were added from packages and had to stay in separate folder
// with path relative to exe.
#ifdef LL_FMODSTUDIO
#ifdef LL_WINDOWS
std::string full_path = gDirUtilp->getExpandedFilename(LL_PATH_EXECUTABLE, "3p_icons", "fmod.png");
#elif LL_DARWIN
// On MAC use resource directory
std::string full_path = gDirUtilp->add(gDirUtilp->getAppRODataDir(), "3p_icons", "fmod.png");
#else
std::string full_path = gDirUtilp->getExpandedFilename(LL_PATH_EXECUTABLE, "3p_icons", "fmod.png");
#endif
image = LLViewerTextureManager::getFetchedTextureFromUrl("file://" + full_path, FTT_LOCAL_FILE, MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI, LLViewerTexture::FETCHED_TEXTURE,
0, 0, IMG_LOGO_FMOD);
if (image)
{
image->setAddressMode(LLTexUnit::TAM_WRAP);
mImagePreloads.insert(image);
// Speed up load (this texture will be used early)
image->setKnownDrawSize(364, 98);
image->processTextureStats();
image->setDecodePriority(LLViewerFetchedTexture::maxDecodePriority());
image->updateFetch();
// Fmod logo is only needed at startup, if we will get more logos
// for startup, might be good idea to save resources and do loading
// in scope of llprogressview and then unload everything once no
// longer needed
}
#endif
LLPointer<LLImageRaw> img_blak_square_tex(new LLImageRaw(2, 2, 3));
memset(img_blak_square_tex->getData(), 0, img_blak_square_tex->getDataSize());
LLPointer<LLViewerFetchedTexture> img_blak_square(new LLViewerFetchedTexture(img_blak_square_tex, FTT_DEFAULT, FALSE));

View File

@ -6394,6 +6394,10 @@ void LLViewerWindow::setProgressCancelButtonVisible( BOOL b, const std::string&
}
}
void LLViewerWindow::setShowLogos(const BOOL show_3p_logos)
{
mProgressView->setShowLogos(show_3p_logos);
}
LLProgressView *LLViewerWindow::getProgressView() const
{

View File

@ -310,6 +310,7 @@ public:
void setProgressPercent(const F32 percent);
void setProgressMessage(const std::string& msg);
void setProgressCancelButtonVisible( BOOL b, const std::string& label = LLStringUtil::null );
void setShowLogos(const BOOL show_3p_logos);
LLProgressView *getProgressView() const;
void revealIntroPanel();
void setStartupComplete();

View File

@ -106,6 +106,28 @@
top="145"
right="-90"
word_wrap="true"/>
<icon
height="24"
width="91"
left="48"
top="190"
name="fmod_logo"
visible ="false"
/>
<text
follows="left|right|top|bottom"
layout="topleft"
font_shadow="none"
halign="left"
height="16"
width="400"
top_delta="10"
left_pad="4"
line_spacing.pixels="2"
name="fmod_text"
text_color="LoginProgressBoxTextColor">
Made with FMOD Studio by Firelight Technologies Pty Ltd.
</text>
</layout_panel>
<layout_panel
height="200"

View File

@ -564,6 +564,12 @@ class WindowsManifest(ViewerManifest):
# self.path("*.gif")
# </FS:Ansariel> Remove VMP
# Copy 3p icons
with self.prefix(src=os.path.join(pkgdir, "icons"), dst="3p_icons"):
if self.args['fmodstudio'] == 'ON':
self.path("fmod.png")
# Plugin host application
self.path2basename(os.path.join(os.pardir,
'llplugin', 'slplugin', self.args['configuration']),
@ -1324,6 +1330,11 @@ class DarwinManifest(ViewerManifest):
with self.prefix(src=pkgdir,dst=""):
self.path("ca-bundle.crt")
# Copy 3p icons
with self.prefix(src=os.path.join(pkgdir, "icons"), dst="3p_icons"):
if self.args['fmodstudio'] == 'ON':
self.path("fmod.png")
icon_path = self.icon_path()
with self.prefix(src=icon_path) :
self.path("firestorm_icon.icns")
@ -2083,6 +2094,11 @@ class Linux_i686_Manifest(LinuxManifest):
relpkgdir = os.path.join(pkgdir, "lib", "release")
debpkgdir = os.path.join(pkgdir, "lib", "debug")
# Copy 3p icons
with self.prefix(src=os.path.join(pkgdir, "icons"), dst="3p_icons"):
if self.args['fmodstudio'] == 'ON':
self.path("fmod.png")
with self.prefix(src=relpkgdir, dst="lib"):
self.path("libapr-1.so")
self.path("libapr-1.so.0")