SL-11898 Hi-res snapshots do not support UI and HUDs and should not show them
parent
0bcb065623
commit
3675c90b2e
|
|
@ -4526,6 +4526,7 @@ void LLAppViewer::saveFinalSnapshot()
|
|||
gViewerWindow->getWindowWidthRaw(),
|
||||
gViewerWindow->getWindowHeightRaw(),
|
||||
FALSE,
|
||||
gSavedSettings.getBOOL("RenderHUDInSnapshot"),
|
||||
TRUE,
|
||||
LLSnapshotModel::SNAPSHOT_TYPE_COLOR,
|
||||
LLSnapshotModel::SNAPSHOT_FORMAT_PNG);
|
||||
|
|
|
|||
|
|
@ -182,8 +182,11 @@ void LLFloaterAuction::onClickSnapshot(void* data)
|
|||
BOOL success = gViewerWindow->rawSnapshot(raw,
|
||||
gViewerWindow->getWindowWidthScaled(),
|
||||
gViewerWindow->getWindowHeightScaled(),
|
||||
TRUE, FALSE,
|
||||
FALSE, FALSE);
|
||||
TRUE,
|
||||
FALSE,
|
||||
FALSE, //UI
|
||||
FALSE, //HUD
|
||||
FALSE);
|
||||
gForceRenderLandFence = FALSE;
|
||||
|
||||
if (success)
|
||||
|
|
|
|||
|
|
@ -936,7 +936,7 @@ void LLFloaterReporter::takeNewSnapshot()
|
|||
|
||||
// Take a screenshot, but don't draw this floater.
|
||||
setVisible(FALSE);
|
||||
if( !gViewerWindow->rawSnapshot(mImageRaw, IMAGE_WIDTH, IMAGE_HEIGHT, TRUE, FALSE, TRUE, FALSE))
|
||||
if (!gViewerWindow->rawSnapshot(mImageRaw, IMAGE_WIDTH, IMAGE_HEIGHT, TRUE, FALSE, gSavedSettings.getBOOL("RenderHUDInSnapshot"), TRUE, FALSE))
|
||||
{
|
||||
LL_WARNS() << "Unable to take screenshot" << LL_ENDL;
|
||||
setVisible(TRUE);
|
||||
|
|
|
|||
|
|
@ -560,6 +560,7 @@ void LLSnapshotLivePreview::generateThumbnailImage(BOOL force_update)
|
|||
if(!gViewerWindow->thumbnailSnapshot(raw,
|
||||
mThumbnailWidth, mThumbnailHeight,
|
||||
mAllowRenderUI && gSavedSettings.getBOOL("RenderUIInSnapshot"),
|
||||
gSavedSettings.getBOOL("RenderHUDInSnapshot"),
|
||||
FALSE,
|
||||
mSnapshotBufferType) )
|
||||
{
|
||||
|
|
@ -718,6 +719,7 @@ BOOL LLSnapshotLivePreview::onIdle( void* snapshot_preview )
|
|||
previewp->mKeepAspectRatio,//gSavedSettings.getBOOL("KeepAspectForSnapshot"),
|
||||
previewp->getSnapshotType() == LLSnapshotModel::SNAPSHOT_TEXTURE,
|
||||
previewp->mAllowRenderUI && gSavedSettings.getBOOL("RenderUIInSnapshot"),
|
||||
gSavedSettings.getBOOL("RenderHUDInSnapshot"),
|
||||
FALSE,
|
||||
previewp->mSnapshotBufferType,
|
||||
previewp->getMaxImageSize()))
|
||||
|
|
|
|||
|
|
@ -595,10 +595,16 @@ class LLFileTakeSnapshotToDisk : public view_listener_t
|
|||
S32 width = gViewerWindow->getWindowWidthRaw();
|
||||
S32 height = gViewerWindow->getWindowHeightRaw();
|
||||
|
||||
bool render_ui = gSavedSettings.getBOOL("RenderUIInSnapshot");
|
||||
bool render_hud = gSavedSettings.getBOOL("RenderHUDInSnapshot");
|
||||
|
||||
if (gSavedSettings.getBOOL("HighResSnapshot"))
|
||||
{
|
||||
width *= 2;
|
||||
height *= 2;
|
||||
// not compatible wirh UI/HUD
|
||||
render_ui = false;
|
||||
render_hud = false;
|
||||
}
|
||||
|
||||
if (gViewerWindow->rawSnapshot(raw,
|
||||
|
|
@ -606,7 +612,8 @@ class LLFileTakeSnapshotToDisk : public view_listener_t
|
|||
height,
|
||||
TRUE,
|
||||
FALSE,
|
||||
gSavedSettings.getBOOL("RenderUIInSnapshot"),
|
||||
render_ui,
|
||||
render_hud,
|
||||
FALSE))
|
||||
{
|
||||
LLPointer<LLImageFormatted> formatted;
|
||||
|
|
|
|||
|
|
@ -5103,7 +5103,14 @@ bool attempt_standard_notification(LLMessageSystem* msgsystem)
|
|||
std::string snap_filename = gDirUtilp->getLindenUserDir();
|
||||
snap_filename += gDirUtilp->getDirDelimiter();
|
||||
snap_filename += LLStartUp::getScreenHomeFilename();
|
||||
gViewerWindow->saveSnapshot(snap_filename, gViewerWindow->getWindowWidthRaw(), gViewerWindow->getWindowHeightRaw(), FALSE, FALSE, LLSnapshotModel::SNAPSHOT_TYPE_COLOR, LLSnapshotModel::SNAPSHOT_FORMAT_PNG);
|
||||
gViewerWindow->saveSnapshot(snap_filename,
|
||||
gViewerWindow->getWindowWidthRaw(),
|
||||
gViewerWindow->getWindowHeightRaw(),
|
||||
FALSE, //UI
|
||||
gSavedSettings.getBOOL("RenderHUDInSnapshot"),
|
||||
FALSE,
|
||||
LLSnapshotModel::SNAPSHOT_TYPE_COLOR,
|
||||
LLSnapshotModel::SNAPSHOT_FORMAT_PNG);
|
||||
}
|
||||
|
||||
if (notificationID == "RegionRestartMinutes" ||
|
||||
|
|
@ -5201,7 +5208,14 @@ static void process_special_alert_messages(const std::string & message)
|
|||
std::string snap_filename = gDirUtilp->getLindenUserDir();
|
||||
snap_filename += gDirUtilp->getDirDelimiter();
|
||||
snap_filename += LLStartUp::getScreenHomeFilename();
|
||||
gViewerWindow->saveSnapshot(snap_filename, gViewerWindow->getWindowWidthRaw(), gViewerWindow->getWindowHeightRaw(), FALSE, FALSE, LLSnapshotModel::SNAPSHOT_TYPE_COLOR, LLSnapshotModel::SNAPSHOT_FORMAT_PNG);
|
||||
gViewerWindow->saveSnapshot(snap_filename,
|
||||
gViewerWindow->getWindowWidthRaw(),
|
||||
gViewerWindow->getWindowHeightRaw(),
|
||||
FALSE,
|
||||
gSavedSettings.getBOOL("RenderHUDInSnapshot"),
|
||||
FALSE,
|
||||
LLSnapshotModel::SNAPSHOT_TYPE_COLOR,
|
||||
LLSnapshotModel::SNAPSHOT_FORMAT_PNG);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4580,12 +4580,12 @@ void LLViewerWindow::movieSize(S32 new_width, S32 new_height)
|
|||
}
|
||||
}
|
||||
|
||||
BOOL LLViewerWindow::saveSnapshot(const std::string& filepath, S32 image_width, S32 image_height, BOOL show_ui, BOOL do_rebuild, LLSnapshotModel::ESnapshotLayerType type, LLSnapshotModel::ESnapshotFormat format)
|
||||
BOOL LLViewerWindow::saveSnapshot(const std::string& filepath, S32 image_width, S32 image_height, BOOL show_ui, BOOL show_hud, BOOL do_rebuild, LLSnapshotModel::ESnapshotLayerType type, LLSnapshotModel::ESnapshotFormat format)
|
||||
{
|
||||
LL_INFOS() << "Saving snapshot to: " << filepath << LL_ENDL;
|
||||
|
||||
LLPointer<LLImageRaw> raw = new LLImageRaw;
|
||||
BOOL success = rawSnapshot(raw, image_width, image_height, TRUE, FALSE, show_ui, do_rebuild);
|
||||
BOOL success = rawSnapshot(raw, image_width, image_height, TRUE, FALSE, show_ui, show_hud, do_rebuild);
|
||||
|
||||
if (success)
|
||||
{
|
||||
|
|
@ -4644,16 +4644,16 @@ void LLViewerWindow::resetSnapshotLoc() const
|
|||
gSavedPerAccountSettings.setString("SnapshotBaseDir", std::string());
|
||||
}
|
||||
|
||||
BOOL LLViewerWindow::thumbnailSnapshot(LLImageRaw *raw, S32 preview_width, S32 preview_height, BOOL show_ui, BOOL do_rebuild, LLSnapshotModel::ESnapshotLayerType type)
|
||||
BOOL LLViewerWindow::thumbnailSnapshot(LLImageRaw *raw, S32 preview_width, S32 preview_height, BOOL show_ui, BOOL show_hud, BOOL do_rebuild, LLSnapshotModel::ESnapshotLayerType type)
|
||||
{
|
||||
return rawSnapshot(raw, preview_width, preview_height, FALSE, FALSE, show_ui, do_rebuild, type);
|
||||
return rawSnapshot(raw, preview_width, preview_height, FALSE, FALSE, show_ui, show_hud, do_rebuild, type);
|
||||
}
|
||||
|
||||
// Saves the image from the screen to a raw image
|
||||
// Since the required size might be bigger than the available screen, this method rerenders the scene in parts (called subimages) and copy
|
||||
// the results over to the final raw image.
|
||||
BOOL LLViewerWindow::rawSnapshot(LLImageRaw *raw, S32 image_width, S32 image_height,
|
||||
BOOL keep_window_aspect, BOOL is_texture, BOOL show_ui, BOOL do_rebuild, LLSnapshotModel::ESnapshotLayerType type, S32 max_size)
|
||||
BOOL keep_window_aspect, BOOL is_texture, BOOL show_ui, BOOL show_hud, BOOL do_rebuild, LLSnapshotModel::ESnapshotLayerType type, S32 max_size)
|
||||
{
|
||||
if (!raw)
|
||||
{
|
||||
|
|
@ -4687,7 +4687,7 @@ BOOL LLViewerWindow::rawSnapshot(LLImageRaw *raw, S32 image_width, S32 image_hei
|
|||
LLPipeline::toggleRenderDebugFeature(LLPipeline::RENDER_DEBUG_FEATURE_UI);
|
||||
}
|
||||
|
||||
BOOL hide_hud = !gSavedSettings.getBOOL("RenderHUDInSnapshot") && LLPipeline::sShowHUDAttachments;
|
||||
BOOL hide_hud = !show_hud && LLPipeline::sShowHUDAttachments;
|
||||
if (hide_hud)
|
||||
{
|
||||
LLPipeline::sShowHUDAttachments = FALSE;
|
||||
|
|
|
|||
|
|
@ -353,10 +353,10 @@ public:
|
|||
// snapshot functionality.
|
||||
// perhaps some of this should move to llfloatershapshot? -MG
|
||||
|
||||
BOOL saveSnapshot(const std::string& filename, S32 image_width, S32 image_height, BOOL show_ui = TRUE, BOOL do_rebuild = FALSE, LLSnapshotModel::ESnapshotLayerType type = LLSnapshotModel::SNAPSHOT_TYPE_COLOR, LLSnapshotModel::ESnapshotFormat format = LLSnapshotModel::SNAPSHOT_FORMAT_BMP);
|
||||
BOOL saveSnapshot(const std::string& filename, S32 image_width, S32 image_height, BOOL show_ui = TRUE, BOOL show_hud = TRUE, BOOL do_rebuild = FALSE, LLSnapshotModel::ESnapshotLayerType type = LLSnapshotModel::SNAPSHOT_TYPE_COLOR, LLSnapshotModel::ESnapshotFormat format = LLSnapshotModel::SNAPSHOT_FORMAT_BMP);
|
||||
BOOL rawSnapshot(LLImageRaw *raw, S32 image_width, S32 image_height, BOOL keep_window_aspect = TRUE, BOOL is_texture = FALSE,
|
||||
BOOL show_ui = TRUE, BOOL do_rebuild = FALSE, LLSnapshotModel::ESnapshotLayerType type = LLSnapshotModel::SNAPSHOT_TYPE_COLOR, S32 max_size = MAX_SNAPSHOT_IMAGE_SIZE);
|
||||
BOOL thumbnailSnapshot(LLImageRaw *raw, S32 preview_width, S32 preview_height, BOOL show_ui, BOOL do_rebuild, LLSnapshotModel::ESnapshotLayerType type);
|
||||
BOOL show_ui = TRUE, BOOL show_hud = TRUE, BOOL do_rebuild = FALSE, LLSnapshotModel::ESnapshotLayerType type = LLSnapshotModel::SNAPSHOT_TYPE_COLOR, S32 max_size = MAX_SNAPSHOT_IMAGE_SIZE);
|
||||
BOOL thumbnailSnapshot(LLImageRaw *raw, S32 preview_width, S32 preview_height, BOOL show_ui, BOOL show_hud, BOOL do_rebuild, LLSnapshotModel::ESnapshotLayerType type);
|
||||
BOOL isSnapshotLocSet() const;
|
||||
void resetSnapshotLoc() const;
|
||||
|
||||
|
|
|
|||
|
|
@ -50,10 +50,11 @@ LLViewerWindowListener::LLViewerWindowListener(LLViewerWindow* llviewerwindow):
|
|||
// saveSnapshotArgs["width"] = LLSD::Integer();
|
||||
// saveSnapshotArgs["height"] = LLSD::Integer();
|
||||
// saveSnapshotArgs["showui"] = LLSD::Boolean();
|
||||
// saveSnapshotArgs["showhud"] = LLSD::Boolean();
|
||||
// saveSnapshotArgs["rebuild"] = LLSD::Boolean();
|
||||
// saveSnapshotArgs["type"] = LLSD::String();
|
||||
add("saveSnapshot",
|
||||
"Save screenshot: [\"filename\"], [\"width\"], [\"height\"], [\"showui\"], [\"rebuild\"], [\"type\"]\n"
|
||||
"Save screenshot: [\"filename\"], [\"width\"], [\"height\"], [\"showui\"], [\"showhud\"], [\"rebuild\"], [\"type\"]\n"
|
||||
"type: \"COLOR\", \"DEPTH\"\n"
|
||||
"Post on [\"reply\"] an event containing [\"ok\"]",
|
||||
&LLViewerWindowListener::saveSnapshot,
|
||||
|
|
@ -83,6 +84,9 @@ void LLViewerWindowListener::saveSnapshot(const LLSD& event) const
|
|||
bool showui = true;
|
||||
if (event.has("showui"))
|
||||
showui = event["showui"].asBoolean();
|
||||
bool showhud = true;
|
||||
if (event.has("showhud"))
|
||||
showhud = event["showhud"].asBoolean();
|
||||
bool rebuild(event["rebuild"]); // defaults to false
|
||||
LLSnapshotModel::ESnapshotLayerType type(LLSnapshotModel::SNAPSHOT_TYPE_COLOR);
|
||||
if (event.has("type"))
|
||||
|
|
@ -96,7 +100,7 @@ void LLViewerWindowListener::saveSnapshot(const LLSD& event) const
|
|||
}
|
||||
type = found->second;
|
||||
}
|
||||
bool ok = mViewerWindow->saveSnapshot(event["filename"], width, height, showui, rebuild, type);
|
||||
bool ok = mViewerWindow->saveSnapshot(event["filename"], width, height, showui, showhud, rebuild, type);
|
||||
sendReply(LLSDMap("ok", ok), event);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue