-#if 1 /* H.Morii - faster loops */
- for (i = 0; i < inHeight; i++) {
- for (j = 0; j < inWidth; j++) {
- const int aa = (i * outWidth + j) * comps;
- const int bb = i * srcRowStride + j * comps;
- for (k = 0; k < comps; k++) {
- dest[aa + k] = src[bb + k];
- }
- }
- for (; j < outWidth; j++) {
- const int aa = (i * outWidth + j) * comps;
- const int bb = i * srcRowStride + (j - inWidth) * comps;
- for (k = 0; k < comps; k++) {
- dest[aa + k] = src[bb + k];
- }
- }
- }
- for (; i < outHeight; i++) {
- for (j = 0; j < inWidth; j++) {
- const int aa = (i * outWidth + j) * comps;
- const int bb = (i - inHeight) * srcRowStride + j * comps;
- for (k = 0; k < comps; k++) {
- dest[aa + k] = src[bb + k];
- }
- }
- for (; j < outWidth; j++) {
- const int aa = (i * outWidth + j) * comps;
- const int bb = (i - inHeight) * srcRowStride + (j - inWidth) * comps;
- for (k = 0; k < comps; k++) {
- dest[aa + k] = src[bb + k];
- }
- }
- }
-#else
- for (i = 0; i < outHeight; i++) {
- const int ii = i % inHeight;
- for (j = 0; j < outWidth; j++) {
- const int jj = j % inWidth;
- const int aa = (i * outWidth + j) * comps;
- const int bb = ii * srcRowStride + jj * comps;
- for (k = 0; k < comps; k++) {
- dest[aa + k] = src[bb + k];
- }
- }
+ memcpy(tex, source, height * srcRowStride);
+ reorder_source_3(tex, width, height, srcRowStride);
+
+out:
+ return tex;
+}
+
+void reorder_source_4(byte *tex, dword width, dword height, int srcRowStride)
+{
+ byte *line;
+ byte t;
+ dword i, j;
+
+ for (i = 0; i < height; i++) {
+ line = &tex[srcRowStride * i];
+ for (j = 0; j < width; j++) {
+ t = line[2];
+ line[2] = line[0];
+ line[0] = t;
+ line += 4;
+ }