ColorLerpUnclamped() private static method

private static ColorLerpUnclamped ( Color c1, Color c2, float value ) : Color
c1 Color
c2 Color
value float
return Color
 private static void BilinearScale(int start, int end)
 {
     for (int i = start; i < end; i++)
     {
         int num  = (int)Mathf.Floor((float)i * TextureScale.ratioY);
         int num2 = num * TextureScale.w;
         int num3 = (num + 1) * TextureScale.w;
         int num4 = i * TextureScale.w2;
         for (int j = 0; j < TextureScale.w2; j++)
         {
             int   num5  = (int)Mathf.Floor((float)j * TextureScale.ratioX);
             float value = (float)j * TextureScale.ratioX - (float)num5;
             TextureScale.newColors[num4 + j] = TextureScale.ColorLerpUnclamped(TextureScale.ColorLerpUnclamped(TextureScale.texColors[num2 + num5], TextureScale.texColors[num2 + num5 + 1], value), TextureScale.ColorLerpUnclamped(TextureScale.texColors[num3 + num5], TextureScale.texColors[num3 + num5 + 1], value), (float)i * TextureScale.ratioY - (float)num);
         }
     }
 }
 public static void BilinearScale(object obj)
 {
     TextureScale.ThreadData threadData = (TextureScale.ThreadData)obj;
     for (int start = threadData.start; start < threadData.end; ++start)
     {
         int num1 = (int)Mathf.Floor((float)start * TextureScale.ratioY);
         int num2 = num1 * TextureScale.w;
         int num3 = (num1 + 1) * TextureScale.w;
         int num4 = start * TextureScale.w2;
         for (int index = 0; index < TextureScale.w2; ++index)
         {
             int   num5 = (int)Mathf.Floor((float)index * TextureScale.ratioX);
             float num6 = (float)index * TextureScale.ratioX - (float)num5;
             TextureScale.newColors[num4 + index] = TextureScale.ColorLerpUnclamped(TextureScale.ColorLerpUnclamped(TextureScale.texColors[num2 + num5], TextureScale.texColors[num2 + num5 + 1], num6), TextureScale.ColorLerpUnclamped(TextureScale.texColors[num3 + num5], TextureScale.texColors[num3 + num5 + 1], num6), (float)start * TextureScale.ratioY - (float)num1);
         }
     }
     TextureScale.mutex.WaitOne();
     ++TextureScale.finishCount;
     TextureScale.mutex.ReleaseMutex();
 }
Beispiel #3
0
 // Token: 0x06000611 RID: 1553 RVA: 0x000248F0 File Offset: 0x00022CF0
 public static void BilinearScale(object obj)
 {
     TextureScale.ThreadData threadData = (TextureScale.ThreadData)obj;
     for (int i = threadData.start; i < threadData.end; i++)
     {
         int num  = (int)Mathf.Floor((float)i * TextureScale.ratioY);
         int num2 = num * TextureScale.w;
         int num3 = (num + 1) * TextureScale.w;
         int num4 = i * TextureScale.w2;
         for (int j = 0; j < TextureScale.w2; j++)
         {
             int   num5  = (int)Mathf.Floor((float)j * TextureScale.ratioX);
             float value = (float)j * TextureScale.ratioX - (float)num5;
             TextureScale.newColors[num4 + j] = TextureScale.ColorLerpUnclamped(TextureScale.ColorLerpUnclamped(TextureScale.texColors[num2 + num5], TextureScale.texColors[num2 + num5 + 1], value), TextureScale.ColorLerpUnclamped(TextureScale.texColors[num3 + num5], TextureScale.texColors[num3 + num5 + 1], value), (float)i * TextureScale.ratioY - (float)num);
         }
     }
     TextureScale.mutex.WaitOne();
     TextureScale.finishCount++;
     TextureScale.mutex.ReleaseMutex();
 }