Возникла необходимость представить одномерный массив байт текстуры (текстура размера 64x64) в виде матрицы 64x64 и затем (после некоторых действий) - в исходном виде.
В одномерном массиве (размером 64*64*4) хранится последовательность вида: B, G, R, A, B, G, R, A, ... (т.е. синий, зелёный, красный, альфа каналы цвета в виде байта). То есть текстура "готова к использованию" в функциях OpenGL (или как правильно сказать? "Формата OpenGL"?).
Элементы матрицы (64x64) должны представлять собой структуру, содержащую поля четырёх составляющих цвета (BGRA).
Как это сделать наиболее оптимально?
Я знаю, как вообще сделать (присваивание 64*64*4 раза в цикле), но, думаю, возможны какие-нибудь фокусы с памятью, чтобы всё работало быстрее:
for Y := 0 to 63 do
for X := 0 to 63 do
begin
K := Y * 64 * 4 + X * 4;
Matrix[X, Y].B := TileTexture[K];
Matrix[X, Y].G := TileTexture[K + 1];
Matrix[X, Y].R := TileTexture[K + 2];
Matrix[X, Y].A := TileTexture[K + 3]
end;
Подскажите, пожалуйста, наиболее эффективный вариант решения этой задачи.