diff options
author | Pablo Dobarro <pablodp606@gmail.com> | 2020-07-29 18:22:50 +0300 |
---|---|---|
committer | Pablo Dobarro <pablodp606@gmail.com> | 2020-07-29 18:22:50 +0300 |
commit | 03acbc7b71ac1ea64be05332dc19c1c11a1b818f (patch) | |
tree | 506e88115444d928f578e61c0a7fc8bcb3ab2e6a /source/blender/compositor/operations | |
parent | b9c7c904ede17afc3861a2d58d1ac65a6e87f664 (diff) | |
parent | 54a2fcc0f331b8971e8a105382e9a8f67e1859e3 (diff) |
Merge branch 'blender-v2.90-release'
Diffstat (limited to 'source/blender/compositor/operations')
-rw-r--r-- | source/blender/compositor/operations/COM_PreviewOperation.cpp | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/source/blender/compositor/operations/COM_PreviewOperation.cpp b/source/blender/compositor/operations/COM_PreviewOperation.cpp index 30fe2ca824d..43d20271141 100644 --- a/source/blender/compositor/operations/COM_PreviewOperation.cpp +++ b/source/blender/compositor/operations/COM_PreviewOperation.cpp @@ -126,14 +126,27 @@ void PreviewOperation::determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2]) { NodeOperation::determineResolution(resolution, preferredResolution); - int width = resolution[0]; - int height = resolution[1]; + + /* If resolution is 0 there are two possible scenarios: + * - Either node is not connected at all + * - It is connected to input which doesn't have own resolution (i.e. color input). + * + * In the former case we rely on the execution system to not evaluate this node. + * + * For the latter case we use 1 pixel preview, so that it's possible to see preview color in the + * preview. This is how final F12 render will behave (flood-fill final frame with the color). + * + * Having things consistent in terms that node preview is scaled down F12 render is a very + * natural thing to do. */ + int width = max_ii(1, resolution[0]); + int height = max_ii(1, resolution[1]); + this->m_divider = 0.0f; if (width > height) { - this->m_divider = COM_PREVIEW_SIZE / (width - 1); + this->m_divider = (float)COM_PREVIEW_SIZE / (width); } else { - this->m_divider = COM_PREVIEW_SIZE / (height - 1); + this->m_divider = (float)COM_PREVIEW_SIZE / (height); } width = width * this->m_divider; height = height * this->m_divider; |