summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugen Friedrich <efriedrich@de.adit-jv.com>2013-07-03 13:53:53 +0200
committerTimo Lotterbach <timo.lotterbach@bmw-carit.de>2013-07-05 12:56:48 +0200
commit2bf3e11098c1b3bee481d9640adf78f5cd7bad28 (patch)
treee8993efbaa4c734f2627d01515530760fbdb9964
parentdd56ff0fb2b025b3c5c73b0f008a55d0568f1d29 (diff)
downloadlayer_management-2bf3e11098c1b3bee481d9640adf78f5cd7bad28.tar.gz
ScreenDump: check for valid screenId and set screenId for layer
If rendering plug-in supports several screens we cannot assume only screen 0 as valid screenId. Also if the layer is assigned to some screen, containing screenId should be set. One layer could also be assigned to more than one screen at the same time, in this case only the last screenId is set Signed-off-by: Eugen Friedrich <efriedrich@de.adit-jv.com>
-rw-r--r--LayerManagerCommands/src/ScreenDumpCommand.cpp13
-rw-r--r--LayerManagerCommands/src/ScreenSetRenderOrderCommand.cpp1
2 files changed, 12 insertions, 2 deletions
diff --git a/LayerManagerCommands/src/ScreenDumpCommand.cpp b/LayerManagerCommands/src/ScreenDumpCommand.cpp
index 659ab57..7c7732b 100644
--- a/LayerManagerCommands/src/ScreenDumpCommand.cpp
+++ b/LayerManagerCommands/src/ScreenDumpCommand.cpp
@@ -23,6 +23,9 @@
ExecutionResult ScreenDumpCommand::execute(ICommandExecutor* executor)
{
+ uint length = 0;
+ uint i = 0;
+ uint* IDs = executor->getScreenIDs(&length);
ExecutionResult result = ExecutionFailed;
RendererList& m_rendererList = *(executor->getRendererList());
@@ -30,7 +33,13 @@ ExecutionResult ScreenDumpCommand::execute(ICommandExecutor* executor)
LOG_INFO("ScreenDumpCommand", "making screenshot, output file: " << m_filename);
- status = (m_id == 0);
+ for (i = 0; i < length; i++)
+ {
+ if (m_id == IDs[i])
+ {
+ status = true;
+ }
+ }
if (status)
{
@@ -44,7 +53,7 @@ ExecutionResult ScreenDumpCommand::execute(ICommandExecutor* executor)
if (renderer)
{
- renderer->doScreenShot(m_filename);
+ renderer->doScreenShot(m_filename, m_id);
}
}
result = ExecutionSuccessRedraw;
diff --git a/LayerManagerCommands/src/ScreenSetRenderOrderCommand.cpp b/LayerManagerCommands/src/ScreenSetRenderOrderCommand.cpp
index 0a8484e..c1f4022 100644
--- a/LayerManagerCommands/src/ScreenSetRenderOrderCommand.cpp
+++ b/LayerManagerCommands/src/ScreenSetRenderOrderCommand.cpp
@@ -78,6 +78,7 @@ ExecutionResult ScreenSetRenderOrderCommand::execute(ICommandExecutor* executor)
if (layer)
{
LOG_DEBUG("ScreenSetRenderOrderCommand", "Adding Layer: " << m_array[i] << " to current render order");
+ layer->setContainingScreenId(m_screenID);
scene.getCurrentRenderOrder(m_screenID).push_back(layer);
result = ExecutionSuccessRedraw;
}