From 9b3c9ab61a4feefc0b2ad2cc9227b81cfe5446d5 Mon Sep 17 00:00:00 2001 From: mano-wii Date: Thu, 16 Jan 2020 23:32:45 -0300 Subject: Fix T53178: Casting in Blur node with Relative In this case the user expects rounding. --- .../compositor/operations/COM_BlurBaseOperation.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'source/blender/compositor/operations/COM_BlurBaseOperation.cpp') diff --git a/source/blender/compositor/operations/COM_BlurBaseOperation.cpp b/source/blender/compositor/operations/COM_BlurBaseOperation.cpp index 1b2e3b2821e..24c68ddbec7 100644 --- a/source/blender/compositor/operations/COM_BlurBaseOperation.cpp +++ b/source/blender/compositor/operations/COM_BlurBaseOperation.cpp @@ -44,20 +44,22 @@ void BlurBaseOperation::initExecution() this->m_data.image_in_width = this->getWidth(); this->m_data.image_in_height = this->getHeight(); if (this->m_data.relative) { + int sizex, sizey; switch (this->m_data.aspect) { - case CMP_NODE_BLUR_ASPECT_NONE: - this->m_data.sizex = (int)(this->m_data.percentx * 0.01f * this->m_data.image_in_width); - this->m_data.sizey = (int)(this->m_data.percenty * 0.01f * this->m_data.image_in_height); - break; case CMP_NODE_BLUR_ASPECT_Y: - this->m_data.sizex = (int)(this->m_data.percentx * 0.01f * this->m_data.image_in_width); - this->m_data.sizey = (int)(this->m_data.percenty * 0.01f * this->m_data.image_in_width); + sizex = sizey = this->m_data.image_in_width; break; case CMP_NODE_BLUR_ASPECT_X: - this->m_data.sizex = (int)(this->m_data.percentx * 0.01f * this->m_data.image_in_height); - this->m_data.sizey = (int)(this->m_data.percenty * 0.01f * this->m_data.image_in_height); + sizex = sizey = this->m_data.image_in_height; + break; + default: + BLI_assert(this->m_data.aspect == CMP_NODE_BLUR_ASPECT_NONE); + sizex = this->m_data.image_in_width; + sizey = this->m_data.image_in_height; break; } + this->m_data.sizex = round_fl_to_int(this->m_data.percentx * 0.01f * sizex); + this->m_data.sizey = round_fl_to_int(this->m_data.percenty * 0.01f * sizey); } QualityStepHelper::initExecution(COM_QH_MULTIPLY); -- cgit v1.2.3