diff options
author | Michael Schuldt <michael.schuldt@bmw.de> | 2012-07-06 13:11:09 +0200 |
---|---|---|
committer | Timo Lotterbach <timo.lotterbach@bmw-carit.de> | 2012-08-09 00:06:53 -0700 |
commit | 255da2a53559d9bff33308304082f2b8ab51eca1 (patch) | |
tree | 9875591950da699b11ff96d42e40b5b7097d88e4 /LayerManagerCommands | |
parent | 8799cdbfab118fa9c25c6963fb59b3d0cfd8a776 (diff) | |
download | layer_management-255da2a53559d9bff33308304082f2b8ab51eca1.tar.gz |
LayerManagerCommands: Adding code to calculate surface target values
- If Source and Destination Region of a Layer / Surface has changed,
the surface targetposition has to be calculated.
Diffstat (limited to 'LayerManagerCommands')
9 files changed, 28 insertions, 6 deletions
diff --git a/LayerManagerCommands/src/LayerAddSurfaceCommand.cpp b/LayerManagerCommands/src/LayerAddSurfaceCommand.cpp index e720d58..79496c0 100644 --- a/LayerManagerCommands/src/LayerAddSurfaceCommand.cpp +++ b/LayerManagerCommands/src/LayerAddSurfaceCommand.cpp @@ -50,6 +50,7 @@ ExecutionResult LayerAddSurfaceCommand::execute(ICommandExecutor* executor) LOG_WARNING("LayerAddSurfaceCommand","surface : id [ " << m_surfaceid << " ] already belongs to layer : id [ " << layer_id << " ]"); result = (m_layerid == layer_id) ? ExecutionSuccess : ExecutionFailed; } + surface->calculateTargetDestination(layer->getSourceRegion(),layer->getDestinationRegion()); } return result; diff --git a/LayerManagerCommands/src/LayerSetDestinationRectangleCommand.cpp b/LayerManagerCommands/src/LayerSetDestinationRectangleCommand.cpp index 5f46176..d051278 100644 --- a/LayerManagerCommands/src/LayerSetDestinationRectangleCommand.cpp +++ b/LayerManagerCommands/src/LayerSetDestinationRectangleCommand.cpp @@ -43,6 +43,7 @@ ExecutionResult LayerSetDestinationRectangleCommand::execute(ICommandExecutor* e { const Rectangle rectangle(m_x, m_y, m_width, m_height); result = layer->setDestinationRegion(rectangle) ? ExecutionSuccessRedraw : ExecutionSuccess; + layer->applySurfaceTransform(); } return result; diff --git a/LayerManagerCommands/src/LayerSetDimensionCommand.cpp b/LayerManagerCommands/src/LayerSetDimensionCommand.cpp index 707a4bb..1ef8d49 100644 --- a/LayerManagerCommands/src/LayerSetDimensionCommand.cpp +++ b/LayerManagerCommands/src/LayerSetDimensionCommand.cpp @@ -39,6 +39,7 @@ ExecutionResult LayerSetDimensionCommand::execute(ICommandExecutor* executor) if (layer) { result = layer->setDimension(m_width, m_height) ? ExecutionSuccessRedraw : ExecutionSuccess; + layer->applySurfaceTransform(); } return result; diff --git a/LayerManagerCommands/src/LayerSetPositionCommand.cpp b/LayerManagerCommands/src/LayerSetPositionCommand.cpp index 48c218f..cece2f3 100644 --- a/LayerManagerCommands/src/LayerSetPositionCommand.cpp +++ b/LayerManagerCommands/src/LayerSetPositionCommand.cpp @@ -39,6 +39,7 @@ ExecutionResult LayerSetPositionCommand::execute(ICommandExecutor* executor) if (layer) { result = layer->setPosition(m_x, m_y) ? ExecutionSuccessRedraw : ExecutionSuccess; + layer->applySurfaceTransform(); } return result; } diff --git a/LayerManagerCommands/src/LayerSetSourceRectangleCommand.cpp b/LayerManagerCommands/src/LayerSetSourceRectangleCommand.cpp index 5045d48..a81dfe2 100644 --- a/LayerManagerCommands/src/LayerSetSourceRectangleCommand.cpp +++ b/LayerManagerCommands/src/LayerSetSourceRectangleCommand.cpp @@ -42,6 +42,7 @@ ExecutionResult LayerSetSourceRectangleCommand::execute(ICommandExecutor* execut { const Rectangle rectangle(m_x, m_y, m_width, m_height); result = layer->setSourceRegion(rectangle) ? ExecutionSuccessRedraw : ExecutionSuccess; + layer->applySurfaceTransform(); } return result; diff --git a/LayerManagerCommands/src/SurfaceSetDestinationRectangleCommand.cpp b/LayerManagerCommands/src/SurfaceSetDestinationRectangleCommand.cpp index dc0191a..bf9c1e9 100644 --- a/LayerManagerCommands/src/SurfaceSetDestinationRectangleCommand.cpp +++ b/LayerManagerCommands/src/SurfaceSetDestinationRectangleCommand.cpp @@ -38,11 +38,15 @@ ExecutionResult SurfaceSetDestinationRectangleCommand::execute(ICommandExecutor* ExecutionResult result = ExecutionFailed; Surface* surface = scene.getSurface(m_id); - - if (surface) + if (surface) { + unsigned int layerid = surface->getContainingLayerId(); const Rectangle rectangle(m_x, m_y, m_width, m_height); result = surface->setDestinationRegion(rectangle) ? ExecutionSuccessRedraw : ExecutionSuccess; + if ( layerid != Surface::INVALID_ID ) + { + surface->calculateTargetDestination(scene.getLayer(layerid)->getSourceRegion(),scene.getLayer(layerid)->getDestinationRegion()); + } } return result; diff --git a/LayerManagerCommands/src/SurfaceSetDimensionCommand.cpp b/LayerManagerCommands/src/SurfaceSetDimensionCommand.cpp index 850ef00..024bf8b 100644 --- a/LayerManagerCommands/src/SurfaceSetDimensionCommand.cpp +++ b/LayerManagerCommands/src/SurfaceSetDimensionCommand.cpp @@ -34,11 +34,15 @@ ExecutionResult SurfaceSetDimensionCommand::execute(ICommandExecutor* executor) ExecutionResult result = ExecutionFailed; - GraphicalSurface* surface = scene.getSurface(m_id); - + Surface* surface = scene.getSurface(m_id); if (surface) { + unsigned int layerid = surface->getContainingLayerId(); result = surface->setDimension(m_width, m_height) ? ExecutionSuccessRedraw : ExecutionSuccess; + if ( layerid != Surface::INVALID_ID ) + { + surface->calculateTargetDestination(scene.getLayer(layerid)->getSourceRegion(),scene.getLayer(layerid)->getDestinationRegion()); + } } return result; diff --git a/LayerManagerCommands/src/SurfaceSetPositionCommand.cpp b/LayerManagerCommands/src/SurfaceSetPositionCommand.cpp index 579889e..86b8cee 100644 --- a/LayerManagerCommands/src/SurfaceSetPositionCommand.cpp +++ b/LayerManagerCommands/src/SurfaceSetPositionCommand.cpp @@ -35,10 +35,15 @@ ExecutionResult SurfaceSetPositionCommand::execute(ICommandExecutor* executor) ExecutionResult result = ExecutionFailed; Surface* surface = scene.getSurface(m_id); - + if (surface) { + unsigned int layerid = surface->getContainingLayerId(); result = surface->setPosition(m_x, m_y) ? ExecutionSuccessRedraw : ExecutionSuccess; + if ( layerid != Surface::INVALID_ID ) + { + surface->calculateTargetDestination(scene.getLayer(layerid)->getSourceRegion(),scene.getLayer(layerid)->getDestinationRegion()); + } } return result; } diff --git a/LayerManagerCommands/src/SurfaceSetSourceRectangleCommand.cpp b/LayerManagerCommands/src/SurfaceSetSourceRectangleCommand.cpp index 1472992..11533ee 100644 --- a/LayerManagerCommands/src/SurfaceSetSourceRectangleCommand.cpp +++ b/LayerManagerCommands/src/SurfaceSetSourceRectangleCommand.cpp @@ -37,11 +37,15 @@ ExecutionResult SurfaceSetSourceRectangleCommand::execute(ICommandExecutor* exec ExecutionResult result = ExecutionFailed; Surface* surface = scene.getSurface(m_id); - if (surface) { + unsigned int layerid = surface->getContainingLayerId(); const Rectangle rectangle(m_x, m_y, m_width, m_height); result = surface->setSourceRegion(rectangle) ? ExecutionSuccessRedraw : ExecutionSuccess; + if ( layerid != Surface::INVALID_ID ) + { + surface->calculateTargetDestination(scene.getLayer(layerid)->getSourceRegion(),scene.getLayer(layerid)->getDestinationRegion()); + } } return result; |