summaryrefslogtreecommitdiff
path: root/indra/newview/llprogressview.h
diff options
context:
space:
mode:
authorErik Kundiman <erik@megapahit.org>2025-06-19 20:54:17 +0800
committerErik Kundiman <erik@megapahit.org>2025-06-19 20:54:17 +0800
commit55d9c2f3973882477f04d052fd027e5af621ddff (patch)
treed7ce8a674da93ad01b417cf91ba5fb9fb6f6b5e7 /indra/newview/llprogressview.h
parent0c303fa9d33405435b67435146045a8edcc5f51e (diff)
Bring back 3p logos to the viewer, mainly for FMOD
I checked out the related files from 45249de1ca418324c4077312eefc7edc7e22c401, before the merge with upstream logo removal, but then I had to reapply c2d491905b668702d5640c7c5472629f7acc27e0, the MotD dynamic resizing, and remove the unused commented out vivox-related part since we're not redistributing it.
Diffstat (limited to 'indra/newview/llprogressview.h')
-rw-r--r--indra/newview/llprogressview.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/indra/newview/llprogressview.h b/indra/newview/llprogressview.h
index 250ee511d7..f529c16c1d 100644
--- a/indra/newview/llprogressview.h
+++ b/indra/newview/llprogressview.h
@@ -53,6 +53,7 @@ public:
/*virtual*/ void draw();
void drawStartTexture(F32 alpha);
+ void drawLogos(F32 alpha);
/*virtual*/ bool handleHover(S32 x, S32 y, MASK mask);
/*virtual*/ bool handleKeyHere(KEY key, MASK mask);
@@ -85,6 +86,7 @@ public:
protected:
LLProgressBar* mProgressBar;
LLMediaCtrl* mMediaCtrl;
+ LLTextBox* mLogosLabel = nullptr;
LLTextBox* mProgressText = nullptr;
LLTextBox* mMessageText = nullptr;
F32 mPercentDone;
@@ -110,8 +112,25 @@ protected:
bool handleUpdate(const LLSD& event_data);
static void onIdle(void* user_data);
+ void loadLogo(const std::string &path, const U8 image_codec, const LLRect &pos_rect, const LLRectf &clip_rect, const LLRectf &offset_rect);
+ // logos have unusual location and need to be preloaded to not appear grey, then deleted
+ void initLogos();
// Loads a bitmap to display during load
void initStartTexture(S32 location_id, bool is_in_production);
+
+private:
+ // We need to draw textures on login, but only once.
+ // So this vector gets filled up for textures to render and gets cleaned later
+ // Some textures have unusual requirements, so we are rendering directly
+ class TextureData
+ {
+ public:
+ LLPointer<LLViewerTexture> mTexturep;
+ LLRect mDrawRect;
+ LLRectf mClipRect;
+ LLRectf mOffsetRect;
+ };
+ std::vector<TextureData> mLogosList;
};
#endif // LL_LLPROGRESSVIEW_H