From caf5d90fb07d2aee5cdb49635ec726ae22df6c78 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lukas=20T=C3=B6nne?= <lukas.toenne@gmail.com>
Date: Sat, 15 Mar 2014 10:24:07 +0100
Subject: [PATCH] Fix T39189: Node editor Map Uv requires an scale node to
 work.

This is a regression caused by rB67134a7bf689279785e2e40b29cd24243813998b
The UV coordinates read from the UV input must be scaled by the Image
input size instead of the UV input size.

Also now this node uses the UV input resolution instead of the Image
resolution, since this is what determines the available resolution. The
image is EWA-sampled anyway, it's resolution does not have a direct
impact.
---
 source/blender/compositor/operations/COM_MapUVOperation.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/source/blender/compositor/operations/COM_MapUVOperation.cpp b/source/blender/compositor/operations/COM_MapUVOperation.cpp
index 292f073548a..87ad1d6afa4 100644
--- a/source/blender/compositor/operations/COM_MapUVOperation.cpp
+++ b/source/blender/compositor/operations/COM_MapUVOperation.cpp
@@ -29,6 +29,7 @@ MapUVOperation::MapUVOperation() : NodeOperation()
 	this->addOutputSocket(COM_DT_COLOR);
 	this->m_alpha = 0.0f;
 	this->setComplex(true);
+	setResolutionInputSocketIndex(1);
 
 	this->m_inputUVProgram = NULL;
 	this->m_inputColorProgram = NULL;
@@ -84,8 +85,8 @@ bool MapUVOperation::read_uv(float x, float y, float &r_u, float &r_v, float &r_
 	else {
 		float col[4];
 		m_inputUVProgram->readSampled(col, x, y, COM_PS_BILINEAR);
-		r_u = col[0] * width;
-		r_v = col[1] * height;
+		r_u = col[0] * m_inputColorProgram->getWidth();
+		r_v = col[1] * m_inputColorProgram->getHeight();
 		r_alpha = col[2];
 		return true;
 	}
-- 
GitLab