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:
authorManuel Castilla <manzanillawork@gmail.com>2021-05-31 13:26:46 +0300
committerManuel Castilla <manzanillawork@gmail.com>2021-05-31 13:26:46 +0300
commite9f2f17e8518f31706756b4ebe7c38a3582a3612 (patch)
tree1f987a8ab4a8ab1b35dd8ed7ab7f88c3f161555a /source/blender/compositor/operations/COM_TextureOperation.cc
parent83fe479c7f06dbd9b2fd74b90889fc737f789552 (diff)
Fix (unreported): TextureOperation inputs have no resolution
When compositor node tree has a texture node, TextureOperation vector inputs has always {0, 0} resolution instead of having same resolution as TextureOperation which is the expected behaviour for resolutions propagation. Current TextureOperation determineResolution implementation doesn't determine inputs resolution, breaking propagation of preferred resolution and that's the reason why they are always 0. Setting scene resolution always would mean it is its own resolution and could make sense, but setting it only when preferred resolution is 0, breaks preferred resolution logic affecting other operations as explained in D10972. In any case scene resolution is already the default preferred resolution on viewer and compositor nodes. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D11381
Diffstat (limited to 'source/blender/compositor/operations/COM_TextureOperation.cc')
-rw-r--r--source/blender/compositor/operations/COM_TextureOperation.cc17
1 files changed, 7 insertions, 10 deletions
diff --git a/source/blender/compositor/operations/COM_TextureOperation.cc b/source/blender/compositor/operations/COM_TextureOperation.cc
index e94c457f981..7517ff8a137 100644
--- a/source/blender/compositor/operations/COM_TextureOperation.cc
+++ b/source/blender/compositor/operations/COM_TextureOperation.cc
@@ -75,16 +75,13 @@ void TextureBaseOperation::deinitExecution()
void TextureBaseOperation::determineResolution(unsigned int resolution[2],
unsigned int preferredResolution[2])
{
- 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];
- }
+ /* 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];
}
void TextureAlphaOperation::executePixelSampled(float output[4],