Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/compositor/operations/COM_TextureOperation.cc')
-rw-r--r--source/blender/compositor/operations/COM_TextureOperation.cc40
1 files changed, 13 insertions, 27 deletions
diff --git a/source/blender/compositor/operations/COM_TextureOperation.cc b/source/blender/compositor/operations/COM_TextureOperation.cc
index c8e0844d35f..c06e3ac7cb0 100644
--- a/source/blender/compositor/operations/COM_TextureOperation.cc
+++ b/source/blender/compositor/operations/COM_TextureOperation.cc
@@ -72,34 +72,20 @@ void TextureBaseOperation::deinitExecution()
NodeOperation::deinitExecution();
}
-void TextureBaseOperation::determineResolution(unsigned int resolution[2],
- unsigned int preferredResolution[2])
+void TextureBaseOperation::determine_canvas(const rcti &preferred_area, rcti &r_area)
{
- switch (execution_model_) {
- case eExecutionModel::Tiled: {
- if (preferredResolution[0] == 0 || preferredResolution[1] == 0) {
- int width = this->m_rd->xsch * this->m_rd->size / 100;
- int height = this->m_rd->ysch * this->m_rd->size / 100;
- resolution[0] = width;
- resolution[1] = height;
- }
- else {
- resolution[0] = preferredResolution[0];
- resolution[1] = preferredResolution[1];
- }
- break;
- }
- case eExecutionModel::FullFrame: {
- /* Determine inputs resolutions. */
- unsigned int temp[2];
- NodeOperation::determineResolution(temp, preferredResolution);
-
- /* We don't use inputs resolutions because they are only used as parameters, not image data.
- */
- resolution[0] = preferredResolution[0];
- resolution[1] = preferredResolution[1];
- break;
- }
+ r_area = preferred_area;
+ if (BLI_rcti_is_empty(&preferred_area)) {
+ int width = this->m_rd->xsch * this->m_rd->size / 100;
+ int height = this->m_rd->ysch * this->m_rd->size / 100;
+ r_area.xmax = preferred_area.xmin + width;
+ r_area.ymax = preferred_area.ymin + height;
+ }
+
+ if (execution_model_ == eExecutionModel::FullFrame) {
+ /* Determine inputs. */
+ rcti temp;
+ NodeOperation::determine_canvas(r_area, temp);
}
}