Here you can find the source of rgba_bilinear_filter(int rgb00, int rgb01, int rgb10, int rgb11, int u, int v)
static public int rgba_bilinear_filter(int rgb00, int rgb01, int rgb10, int rgb11, int u, int v)
//package com.java2s; // I ported this from the mame project, this is their license public class Main { static public int rgba_bilinear_filter(int rgb00, int rgb01, int rgb10, int rgb11, int u, int v) { int ag0, ag1, rb0, rb1; rb0 = (rgb00 & 0x00ff00ff)// w ww . ja v a 2s .c om + ((((rgb01 & 0x00ff00ff) - (rgb00 & 0x00ff00ff)) * u) >> 8); rb1 = (rgb10 & 0x00ff00ff) + ((((rgb11 & 0x00ff00ff) - (rgb10 & 0x00ff00ff)) * u) >> 8); rgb00 >>= 8; rgb01 >>= 8; rgb10 >>= 8; rgb11 >>= 8; ag0 = (rgb00 & 0x00ff00ff) + ((((rgb01 & 0x00ff00ff) - (rgb00 & 0x00ff00ff)) * u) >> 8); ag1 = (rgb10 & 0x00ff00ff) + ((((rgb11 & 0x00ff00ff) - (rgb10 & 0x00ff00ff)) * u) >> 8); rb0 = (rb0 & 0x00ff00ff) + ((((rb1 & 0x00ff00ff) - (rb0 & 0x00ff00ff)) * v) >> 8); ag0 = (ag0 & 0x00ff00ff) + ((((ag1 & 0x00ff00ff) - (ag0 & 0x00ff00ff)) * v) >> 8); return ((ag0 << 8) & 0xff00ff00) | (rb0 & 0x00ff00ff); } }