summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorcallum <none@none>2011-10-25 19:34:05 -0700
committercallum <none@none>2011-10-25 19:34:05 -0700
commit343562889e2b9332942f1c190e0dd6b7ddcb9540 (patch)
tree7daa6347a8c309559c4f7ecacf90fbd3948534f7 /indra/newview
parent0ecc5c0878adf93e96b99e3db4c65cdb757b99fb (diff)
EXP-1471 WIP Add support for zooming web pages by a scale facxtor
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llmediactrl.cpp14
-rw-r--r--indra/newview/llviewermedia.cpp10
-rw-r--r--indra/newview/llviewermedia.h1
3 files changed, 24 insertions, 1 deletions
diff --git a/indra/newview/llmediactrl.cpp b/indra/newview/llmediactrl.cpp
index 0bdeb114f5..dd12546bc6 100644
--- a/indra/newview/llmediactrl.cpp
+++ b/indra/newview/llmediactrl.cpp
@@ -113,7 +113,7 @@ LLMediaCtrl::LLMediaCtrl( const Params& p) :
}
setIgnoreUIScale(p.ignore_ui_scale);
-
+
setHomePageUrl(p.start_url, p.initial_mime_type);
setBorderVisible(p.border_visible);
@@ -779,6 +779,18 @@ void LLMediaCtrl::draw()
floorf(LLFontGL::sCurOrigin.mY * LLUI::sGLScaleFactor.mV[VY]),
LLFontGL::sCurOrigin.mZ);
}
+ else
+ {
+ // zoom is an expensive operation - only do it if value changes
+ // TODO: move this logic out to mMediaSource->setPageZoomFactor() ??
+ static double prev_ui_scale = 0.0f;
+ double ui_scale = LLUI::sGLScaleFactor.mV[ VX ];
+ if ( ui_scale != prev_ui_scale )
+ {
+ mMediaSource->setPageZoomFactor( ui_scale );
+ prev_ui_scale = ui_scale;
+ }
+ }
// scale texture to fit the space using texture coords
gGL.getTexUnit(0)->bind(media_texture);
diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp
index 13dbc5e386..fdb281b7f1 100644
--- a/indra/newview/llviewermedia.cpp
+++ b/indra/newview/llviewermedia.cpp
@@ -2301,6 +2301,16 @@ void LLViewerMediaImpl::clearCache()
}
}
+
+//////////////////////////////////////////////////////////////////////////////////////////
+void LLViewerMediaImpl::setPageZoomFactor( double factor )
+{
+ if(mMediaSource)
+ {
+ mMediaSource->set_page_zoom_factor( factor );
+ }
+}
+
//////////////////////////////////////////////////////////////////////////////////////////
void LLViewerMediaImpl::mouseDown(S32 x, S32 y, MASK mask, S32 button)
{
diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h
index 0b69b8f0c1..a475d03542 100644
--- a/indra/newview/llviewermedia.h
+++ b/indra/newview/llviewermedia.h
@@ -250,6 +250,7 @@ public:
std::string getMediaEntryURL() { return mMediaEntryURL; }
void setHomeURL(const std::string& home_url, const std::string& mime_type = LLStringUtil::null) { mHomeURL = home_url; mHomeMimeType = mime_type;};
void clearCache();
+ void setPageZoomFactor( double factor );
std::string getMimeType() { return mMimeType; }
void scaleMouse(S32 *mouse_x, S32 *mouse_y);
void scaleTextureCoords(const LLVector2& texture_coords, S32 *x, S32 *y);