fix [#36248] Crash using factor input on color mix node.
This commit is contained in:
@@ -91,13 +91,13 @@ protected:
|
||||
virtual void executePixel(float output[4], float x, float y, float dx, float dy, PixelSampler sampler) {}
|
||||
|
||||
public:
|
||||
inline void read(float *result, float x, float y, PixelSampler sampler) {
|
||||
inline void read(float result[4], float x, float y, PixelSampler sampler) {
|
||||
executePixel(result, x, y, sampler);
|
||||
}
|
||||
inline void read(float *result, int x, int y, void *chunkData) {
|
||||
inline void read(float result[4], int x, int y, void *chunkData) {
|
||||
executePixel(result, x, y, chunkData);
|
||||
}
|
||||
inline void read(float *result, float x, float y, float dx, float dy, PixelSampler sampler) {
|
||||
inline void read(float result[4], float x, float y, float dx, float dy, PixelSampler sampler) {
|
||||
executePixel(result, x, y, dx, dy, sampler);
|
||||
}
|
||||
|
||||
|
||||
@@ -81,6 +81,7 @@ int g_highlightIndex;
|
||||
void **g_highlightedNodes;
|
||||
void **g_highlightedNodesRead;
|
||||
|
||||
#if COM_CURRENT_THREADING_MODEL == COM_TM_QUEUE
|
||||
#define HIGHLIGHT(wp) \
|
||||
{ \
|
||||
ExecutionGroup *group = wp->getExecutionGroup(); \
|
||||
@@ -103,6 +104,7 @@ void **g_highlightedNodesRead;
|
||||
} \
|
||||
} \
|
||||
}
|
||||
#endif /* COM_CURRENT_THREADING_MODEL == COM_TM_QUEUE */
|
||||
|
||||
void COM_startReadHighlights()
|
||||
{
|
||||
|
||||
@@ -37,7 +37,7 @@ void ConvertColorToBWOperation::initExecution()
|
||||
void ConvertColorToBWOperation::executePixel(float output[4], float x, float y, PixelSampler sampler)
|
||||
{
|
||||
float inputColor[4];
|
||||
this->m_inputOperation->read(&inputColor[0], x, y, sampler);
|
||||
this->m_inputOperation->read(inputColor, x, y, sampler);
|
||||
output[0] = rgb_to_bw(inputColor);
|
||||
}
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ void ConvertColorToValueProg::initExecution()
|
||||
void ConvertColorToValueProg::executePixel(float output[4], float x, float y, PixelSampler sampler)
|
||||
{
|
||||
float inputColor[4];
|
||||
this->m_inputOperation->read(&inputColor[0], x, y, sampler);
|
||||
this->m_inputOperation->read(inputColor, x, y, sampler);
|
||||
output[0] = (inputColor[0] + inputColor[1] + inputColor[2]) / 3.0f;
|
||||
}
|
||||
|
||||
|
||||
@@ -77,8 +77,8 @@ void MathAddOperation::executePixel(float output[4], float x, float y, PixelSamp
|
||||
float inputValue1[4];
|
||||
float inputValue2[4];
|
||||
|
||||
this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
|
||||
this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
|
||||
this->m_inputValue1Operation->read(inputValue1, x, y, sampler);
|
||||
this->m_inputValue2Operation->read(inputValue2, x, y, sampler);
|
||||
|
||||
output[0] = inputValue1[0] + inputValue2[0];
|
||||
|
||||
@@ -90,8 +90,8 @@ void MathSubtractOperation::executePixel(float output[4], float x, float y, Pixe
|
||||
float inputValue1[4];
|
||||
float inputValue2[4];
|
||||
|
||||
this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
|
||||
this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
|
||||
this->m_inputValue1Operation->read(inputValue1, x, y, sampler);
|
||||
this->m_inputValue2Operation->read(inputValue2, x, y, sampler);
|
||||
|
||||
output[0] = inputValue1[0] - inputValue2[0];
|
||||
|
||||
@@ -103,8 +103,8 @@ void MathMultiplyOperation::executePixel(float output[4], float x, float y, Pixe
|
||||
float inputValue1[4];
|
||||
float inputValue2[4];
|
||||
|
||||
this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
|
||||
this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
|
||||
this->m_inputValue1Operation->read(inputValue1, x, y, sampler);
|
||||
this->m_inputValue2Operation->read(inputValue2, x, y, sampler);
|
||||
|
||||
output[0] = inputValue1[0] * inputValue2[0];
|
||||
|
||||
@@ -116,8 +116,8 @@ void MathDivideOperation::executePixel(float output[4], float x, float y, PixelS
|
||||
float inputValue1[4];
|
||||
float inputValue2[4];
|
||||
|
||||
this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
|
||||
this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
|
||||
this->m_inputValue1Operation->read(inputValue1, x, y, sampler);
|
||||
this->m_inputValue2Operation->read(inputValue2, x, y, sampler);
|
||||
|
||||
if (inputValue2[0] == 0) /* We don't want to divide by zero. */
|
||||
output[0] = 0.0;
|
||||
@@ -132,8 +132,8 @@ void MathSineOperation::executePixel(float output[4], float x, float y, PixelSam
|
||||
float inputValue1[4];
|
||||
float inputValue2[4];
|
||||
|
||||
this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
|
||||
this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
|
||||
this->m_inputValue1Operation->read(inputValue1, x, y, sampler);
|
||||
this->m_inputValue2Operation->read(inputValue2, x, y, sampler);
|
||||
|
||||
output[0] = sin(inputValue1[0]);
|
||||
|
||||
@@ -145,8 +145,8 @@ void MathCosineOperation::executePixel(float output[4], float x, float y, PixelS
|
||||
float inputValue1[4];
|
||||
float inputValue2[4];
|
||||
|
||||
this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
|
||||
this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
|
||||
this->m_inputValue1Operation->read(inputValue1, x, y, sampler);
|
||||
this->m_inputValue2Operation->read(inputValue2, x, y, sampler);
|
||||
|
||||
output[0] = cos(inputValue1[0]);
|
||||
|
||||
@@ -158,8 +158,8 @@ void MathTangentOperation::executePixel(float output[4], float x, float y, Pixel
|
||||
float inputValue1[4];
|
||||
float inputValue2[4];
|
||||
|
||||
this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
|
||||
this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
|
||||
this->m_inputValue1Operation->read(inputValue1, x, y, sampler);
|
||||
this->m_inputValue2Operation->read(inputValue2, x, y, sampler);
|
||||
|
||||
output[0] = tan(inputValue1[0]);
|
||||
|
||||
@@ -171,8 +171,8 @@ void MathArcSineOperation::executePixel(float output[4], float x, float y, Pixel
|
||||
float inputValue1[4];
|
||||
float inputValue2[4];
|
||||
|
||||
this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
|
||||
this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
|
||||
this->m_inputValue1Operation->read(inputValue1, x, y, sampler);
|
||||
this->m_inputValue2Operation->read(inputValue2, x, y, sampler);
|
||||
|
||||
if (inputValue1[0] <= 1 && inputValue1[0] >= -1)
|
||||
output[0] = asin(inputValue1[0]);
|
||||
@@ -187,8 +187,8 @@ void MathArcCosineOperation::executePixel(float output[4], float x, float y, Pix
|
||||
float inputValue1[4];
|
||||
float inputValue2[4];
|
||||
|
||||
this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
|
||||
this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
|
||||
this->m_inputValue1Operation->read(inputValue1, x, y, sampler);
|
||||
this->m_inputValue2Operation->read(inputValue2, x, y, sampler);
|
||||
|
||||
if (inputValue1[0] <= 1 && inputValue1[0] >= -1)
|
||||
output[0] = acos(inputValue1[0]);
|
||||
@@ -203,8 +203,8 @@ void MathArcTangentOperation::executePixel(float output[4], float x, float y, Pi
|
||||
float inputValue1[4];
|
||||
float inputValue2[4];
|
||||
|
||||
this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
|
||||
this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
|
||||
this->m_inputValue1Operation->read(inputValue1, x, y, sampler);
|
||||
this->m_inputValue2Operation->read(inputValue2, x, y, sampler);
|
||||
|
||||
output[0] = atan(inputValue1[0]);
|
||||
|
||||
@@ -216,8 +216,8 @@ void MathPowerOperation::executePixel(float output[4], float x, float y, PixelSa
|
||||
float inputValue1[4];
|
||||
float inputValue2[4];
|
||||
|
||||
this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
|
||||
this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
|
||||
this->m_inputValue1Operation->read(inputValue1, x, y, sampler);
|
||||
this->m_inputValue2Operation->read(inputValue2, x, y, sampler);
|
||||
|
||||
if (inputValue1[0] >= 0) {
|
||||
output[0] = pow(inputValue1[0], inputValue2[0]);
|
||||
@@ -241,8 +241,8 @@ void MathLogarithmOperation::executePixel(float output[4], float x, float y, Pix
|
||||
float inputValue1[4];
|
||||
float inputValue2[4];
|
||||
|
||||
this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
|
||||
this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
|
||||
this->m_inputValue1Operation->read(inputValue1, x, y, sampler);
|
||||
this->m_inputValue2Operation->read(inputValue2, x, y, sampler);
|
||||
|
||||
if (inputValue1[0] > 0 && inputValue2[0] > 0)
|
||||
output[0] = log(inputValue1[0]) / log(inputValue2[0]);
|
||||
@@ -257,8 +257,8 @@ void MathMinimumOperation::executePixel(float output[4], float x, float y, Pixel
|
||||
float inputValue1[4];
|
||||
float inputValue2[4];
|
||||
|
||||
this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
|
||||
this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
|
||||
this->m_inputValue1Operation->read(inputValue1, x, y, sampler);
|
||||
this->m_inputValue2Operation->read(inputValue2, x, y, sampler);
|
||||
|
||||
output[0] = min(inputValue1[0], inputValue2[0]);
|
||||
|
||||
@@ -270,8 +270,8 @@ void MathMaximumOperation::executePixel(float output[4], float x, float y, Pixel
|
||||
float inputValue1[4];
|
||||
float inputValue2[4];
|
||||
|
||||
this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
|
||||
this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
|
||||
this->m_inputValue1Operation->read(inputValue1, x, y, sampler);
|
||||
this->m_inputValue2Operation->read(inputValue2, x, y, sampler);
|
||||
|
||||
output[0] = max(inputValue1[0], inputValue2[0]);
|
||||
|
||||
@@ -283,8 +283,8 @@ void MathRoundOperation::executePixel(float output[4], float x, float y, PixelSa
|
||||
float inputValue1[4];
|
||||
float inputValue2[4];
|
||||
|
||||
this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
|
||||
this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
|
||||
this->m_inputValue1Operation->read(inputValue1, x, y, sampler);
|
||||
this->m_inputValue2Operation->read(inputValue2, x, y, sampler);
|
||||
|
||||
output[0] = round(inputValue1[0]);
|
||||
|
||||
@@ -296,8 +296,8 @@ void MathLessThanOperation::executePixel(float output[4], float x, float y, Pixe
|
||||
float inputValue1[4];
|
||||
float inputValue2[4];
|
||||
|
||||
this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
|
||||
this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
|
||||
this->m_inputValue1Operation->read(inputValue1, x, y, sampler);
|
||||
this->m_inputValue2Operation->read(inputValue2, x, y, sampler);
|
||||
|
||||
output[0] = inputValue1[0] < inputValue2[0] ? 1.0f : 0.0f;
|
||||
|
||||
@@ -309,8 +309,8 @@ void MathGreaterThanOperation::executePixel(float output[4], float x, float y, P
|
||||
float inputValue1[4];
|
||||
float inputValue2[4];
|
||||
|
||||
this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
|
||||
this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
|
||||
this->m_inputValue1Operation->read(inputValue1, x, y, sampler);
|
||||
this->m_inputValue2Operation->read(inputValue2, x, y, sampler);
|
||||
|
||||
output[0] = inputValue1[0] > inputValue2[0] ? 1.0f : 0.0f;
|
||||
|
||||
@@ -322,8 +322,8 @@ void MathModuloOperation::executePixel(float output[4], float x, float y, PixelS
|
||||
float inputValue1[4];
|
||||
float inputValue2[4];
|
||||
|
||||
this->m_inputValue1Operation->read(&inputValue1[0], x, y, sampler);
|
||||
this->m_inputValue2Operation->read(&inputValue2[0], x, y, sampler);
|
||||
this->m_inputValue1Operation->read(inputValue1, x, y, sampler);
|
||||
this->m_inputValue2Operation->read(inputValue2, x, y, sampler);
|
||||
|
||||
if (inputValue2[0] == 0)
|
||||
output[0] = 0.0;
|
||||
|
||||
@@ -37,7 +37,6 @@ void MixAddOperation::executePixel(float output[4], float x, float y, PixelSampl
|
||||
this->m_inputColor1Operation->read(inputColor1, x, y, sampler);
|
||||
this->m_inputColor2Operation->read(inputColor2, x, y, sampler);
|
||||
|
||||
|
||||
float value = inputValue[0];
|
||||
if (this->useValueAlphaMultiply()) {
|
||||
value *= inputColor2[3];
|
||||
|
||||
@@ -31,13 +31,14 @@ void MixBurnOperation::executePixel(float output[4], float x, float y, PixelSamp
|
||||
{
|
||||
float inputColor1[4];
|
||||
float inputColor2[4];
|
||||
float value;
|
||||
float inputValue[4];
|
||||
float tmp;
|
||||
|
||||
this->m_inputValueOperation->read(&value, x, y, sampler);
|
||||
this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler);
|
||||
this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler);
|
||||
this->m_inputValueOperation->read(inputValue, x, y, sampler);
|
||||
this->m_inputColor1Operation->read(inputColor1, x, y, sampler);
|
||||
this->m_inputColor2Operation->read(inputColor2, x, y, sampler);
|
||||
|
||||
float value = inputValue[0];
|
||||
if (this->useValueAlphaMultiply()) {
|
||||
value *= inputColor2[3];
|
||||
}
|
||||
|
||||
@@ -35,12 +35,13 @@ void MixColorOperation::executePixel(float output[4], float x, float y, PixelSam
|
||||
{
|
||||
float inputColor1[4];
|
||||
float inputColor2[4];
|
||||
float value;
|
||||
float inputValue[4];
|
||||
|
||||
this->m_inputValueOperation->read(&value, x, y, sampler);
|
||||
this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler);
|
||||
this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler);
|
||||
this->m_inputValueOperation->read(inputValue, x, y, sampler);
|
||||
this->m_inputColor1Operation->read(inputColor1, x, y, sampler);
|
||||
this->m_inputColor2Operation->read(inputColor2, x, y, sampler);
|
||||
|
||||
float value = inputValue[0];
|
||||
if (this->useValueAlphaMultiply()) {
|
||||
value *= inputColor2[3];
|
||||
}
|
||||
|
||||
@@ -31,12 +31,13 @@ void MixDarkenOperation::executePixel(float output[4], float x, float y, PixelSa
|
||||
{
|
||||
float inputColor1[4];
|
||||
float inputColor2[4];
|
||||
float value;
|
||||
float inputValue[4];
|
||||
|
||||
this->m_inputValueOperation->read(&value, x, y, sampler);
|
||||
this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler);
|
||||
this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler);
|
||||
this->m_inputValueOperation->read(inputValue, x, y, sampler);
|
||||
this->m_inputColor1Operation->read(inputColor1, x, y, sampler);
|
||||
this->m_inputColor2Operation->read(inputColor2, x, y, sampler);
|
||||
|
||||
float value = inputValue[0];
|
||||
if (this->useValueAlphaMultiply()) {
|
||||
value *= inputColor2[3];
|
||||
}
|
||||
|
||||
@@ -32,12 +32,13 @@ void MixDifferenceOperation::executePixel(float output[4], float x, float y, Pix
|
||||
{
|
||||
float inputColor1[4];
|
||||
float inputColor2[4];
|
||||
float value;
|
||||
float inputValue[4];
|
||||
|
||||
this->m_inputValueOperation->read(&value, x, y, sampler);
|
||||
this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler);
|
||||
this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler);
|
||||
this->m_inputValueOperation->read(inputValue, x, y, sampler);
|
||||
this->m_inputColor1Operation->read(inputColor1, x, y, sampler);
|
||||
this->m_inputColor2Operation->read(inputColor2, x, y, sampler);
|
||||
|
||||
float value = inputValue[0];
|
||||
if (this->useValueAlphaMultiply()) {
|
||||
value *= inputColor2[3];
|
||||
}
|
||||
|
||||
@@ -31,12 +31,13 @@ void MixDivideOperation::executePixel(float output[4], float x, float y, PixelSa
|
||||
{
|
||||
float inputColor1[4];
|
||||
float inputColor2[4];
|
||||
float value;
|
||||
float inputValue[4];
|
||||
|
||||
this->m_inputValueOperation->read(&value, x, y, sampler);
|
||||
this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler);
|
||||
this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler);
|
||||
this->m_inputValueOperation->read(inputValue, x, y, sampler);
|
||||
this->m_inputColor1Operation->read(inputColor1, x, y, sampler);
|
||||
this->m_inputColor2Operation->read(inputColor2, x, y, sampler);
|
||||
|
||||
float value = inputValue[0];
|
||||
if (this->useValueAlphaMultiply()) {
|
||||
value *= inputColor2[3];
|
||||
}
|
||||
|
||||
@@ -31,13 +31,14 @@ void MixDodgeOperation::executePixel(float output[4], float x, float y, PixelSam
|
||||
{
|
||||
float inputColor1[4];
|
||||
float inputColor2[4];
|
||||
float value;
|
||||
float inputValue[4];
|
||||
float tmp;
|
||||
|
||||
this->m_inputValueOperation->read(&value, x, y, sampler);
|
||||
this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler);
|
||||
this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler);
|
||||
this->m_inputValueOperation->read(inputValue, x, y, sampler);
|
||||
this->m_inputColor1Operation->read(inputColor1, x, y, sampler);
|
||||
this->m_inputColor2Operation->read(inputColor2, x, y, sampler);
|
||||
|
||||
float value = inputValue[0];
|
||||
if (this->useValueAlphaMultiply()) {
|
||||
value *= inputColor2[3];
|
||||
}
|
||||
|
||||
@@ -35,12 +35,13 @@ void MixHueOperation::executePixel(float output[4], float x, float y, PixelSampl
|
||||
{
|
||||
float inputColor1[4];
|
||||
float inputColor2[4];
|
||||
float value;
|
||||
float inputValue[4];
|
||||
|
||||
this->m_inputValueOperation->read(&value, x, y, sampler);
|
||||
this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler);
|
||||
this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler);
|
||||
this->m_inputValueOperation->read(inputValue, x, y, sampler);
|
||||
this->m_inputColor1Operation->read(inputColor1, x, y, sampler);
|
||||
this->m_inputColor2Operation->read(inputColor2, x, y, sampler);
|
||||
|
||||
float value = inputValue[0];
|
||||
if (this->useValueAlphaMultiply()) {
|
||||
value *= inputColor2[3];
|
||||
}
|
||||
|
||||
@@ -31,12 +31,13 @@ void MixLightenOperation::executePixel(float output[4], float x, float y, PixelS
|
||||
{
|
||||
float inputColor1[4];
|
||||
float inputColor2[4];
|
||||
float value;
|
||||
float inputValue[4];
|
||||
|
||||
this->m_inputValueOperation->read(&value, x, y, sampler);
|
||||
this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler);
|
||||
this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler);
|
||||
this->m_inputValueOperation->read(inputValue, x, y, sampler);
|
||||
this->m_inputColor1Operation->read(inputColor1, x, y, sampler);
|
||||
this->m_inputColor2Operation->read(inputColor2, x, y, sampler);
|
||||
|
||||
float value = inputValue[0];
|
||||
if (this->useValueAlphaMultiply()) {
|
||||
value *= inputColor2[3];
|
||||
}
|
||||
|
||||
@@ -31,12 +31,13 @@ void MixLinearLightOperation::executePixel(float output[4], float x, float y, Pi
|
||||
{
|
||||
float inputColor1[4];
|
||||
float inputColor2[4];
|
||||
float value;
|
||||
float inputValue[4];
|
||||
|
||||
this->m_inputValueOperation->read(&value, x, y, sampler);
|
||||
this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler);
|
||||
this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler);
|
||||
this->m_inputValueOperation->read(inputValue, x, y, sampler);
|
||||
this->m_inputColor1Operation->read(inputColor1, x, y, sampler);
|
||||
this->m_inputColor2Operation->read(inputColor2, x, y, sampler);
|
||||
|
||||
float value = inputValue[0];
|
||||
if (this->useValueAlphaMultiply()) {
|
||||
value *= inputColor2[3];
|
||||
}
|
||||
|
||||
@@ -31,12 +31,13 @@ void MixOverlayOperation::executePixel(float output[4], float x, float y, PixelS
|
||||
{
|
||||
float inputColor1[4];
|
||||
float inputColor2[4];
|
||||
float value;
|
||||
float inputValue[4];
|
||||
|
||||
this->m_inputValueOperation->read(&value, x, y, sampler);
|
||||
this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler);
|
||||
this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler);
|
||||
this->m_inputValueOperation->read(inputValue, x, y, sampler);
|
||||
this->m_inputColor1Operation->read(inputColor1, x, y, sampler);
|
||||
this->m_inputColor2Operation->read(inputColor2, x, y, sampler);
|
||||
|
||||
float value = inputValue[0];
|
||||
if (this->useValueAlphaMultiply()) {
|
||||
value *= inputColor2[3];
|
||||
}
|
||||
|
||||
@@ -35,12 +35,13 @@ void MixSaturationOperation::executePixel(float output[4], float x, float y, Pix
|
||||
{
|
||||
float inputColor1[4];
|
||||
float inputColor2[4];
|
||||
float value;
|
||||
float inputValue[4];
|
||||
|
||||
this->m_inputValueOperation->read(&value, x, y, sampler);
|
||||
this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler);
|
||||
this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler);
|
||||
this->m_inputValueOperation->read(inputValue, x, y, sampler);
|
||||
this->m_inputColor1Operation->read(inputColor1, x, y, sampler);
|
||||
this->m_inputColor2Operation->read(inputColor2, x, y, sampler);
|
||||
|
||||
float value = inputValue[0];
|
||||
if (this->useValueAlphaMultiply()) {
|
||||
value *= inputColor2[3];
|
||||
}
|
||||
|
||||
@@ -31,13 +31,13 @@ void MixScreenOperation::executePixel(float output[4], float x, float y, PixelSa
|
||||
{
|
||||
float inputColor1[4];
|
||||
float inputColor2[4];
|
||||
float valuev[4];
|
||||
float inputValue[4];
|
||||
|
||||
this->m_inputValueOperation->read(valuev, x, y, sampler);
|
||||
this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler);
|
||||
this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler);
|
||||
this->m_inputValueOperation->read(inputValue, x, y, sampler);
|
||||
this->m_inputColor1Operation->read(inputColor1, x, y, sampler);
|
||||
this->m_inputColor2Operation->read(inputColor2, x, y, sampler);
|
||||
|
||||
float value = valuev[0];
|
||||
float value = inputValue[0];
|
||||
if (this->useValueAlphaMultiply()) {
|
||||
value *= inputColor2[3];
|
||||
}
|
||||
|
||||
@@ -31,12 +31,13 @@ void MixSoftLightOperation::executePixel(float output[4], float x, float y, Pixe
|
||||
{
|
||||
float inputColor1[4];
|
||||
float inputColor2[4];
|
||||
float value;
|
||||
float inputValue[4];
|
||||
|
||||
this->m_inputValueOperation->read(&value, x, y, sampler);
|
||||
this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler);
|
||||
this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler);
|
||||
this->m_inputValueOperation->read(inputValue, x, y, sampler);
|
||||
this->m_inputColor1Operation->read(inputColor1, x, y, sampler);
|
||||
this->m_inputColor2Operation->read(inputColor2, x, y, sampler);
|
||||
|
||||
float value = inputValue[0];
|
||||
if (this->useValueAlphaMultiply()) {
|
||||
value *= inputColor2[3];
|
||||
}
|
||||
|
||||
@@ -31,12 +31,13 @@ void MixSubtractOperation::executePixel(float output[4], float x, float y, Pixel
|
||||
{
|
||||
float inputColor1[4];
|
||||
float inputColor2[4];
|
||||
float value;
|
||||
float inputValue[4];
|
||||
|
||||
this->m_inputValueOperation->read(&value, x, y, sampler);
|
||||
this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler);
|
||||
this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler);
|
||||
this->m_inputValueOperation->read(inputValue, x, y, sampler);
|
||||
this->m_inputColor1Operation->read(inputColor1, x, y, sampler);
|
||||
this->m_inputColor2Operation->read(inputColor2, x, y, sampler);
|
||||
|
||||
float value = inputValue[0];
|
||||
if (this->useValueAlphaMultiply()) {
|
||||
value *= inputColor2[3];
|
||||
}
|
||||
|
||||
@@ -35,12 +35,13 @@ void MixValueOperation::executePixel(float output[4], float x, float y, PixelSam
|
||||
{
|
||||
float inputColor1[4];
|
||||
float inputColor2[4];
|
||||
float value;
|
||||
float inputValue[4];
|
||||
|
||||
this->m_inputValueOperation->read(&value, x, y, sampler);
|
||||
this->m_inputColor1Operation->read(&inputColor1[0], x, y, sampler);
|
||||
this->m_inputColor2Operation->read(&inputColor2[0], x, y, sampler);
|
||||
this->m_inputValueOperation->read(inputValue, x, y, sampler);
|
||||
this->m_inputColor1Operation->read(inputColor1, x, y, sampler);
|
||||
this->m_inputColor2Operation->read(inputColor2, x, y, sampler);
|
||||
|
||||
float value = inputValue[0];
|
||||
if (this->useValueAlphaMultiply()) {
|
||||
value *= inputColor2[3];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user