Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
Если вдруг кому-то придётся делать то же самое (в чём я сомневаюсь):
1) Матрицу поворота и вектор сдвига готовим перед циклами, чтобы в цикле было примерно так:
dx = i*cosRot - j*sinRot + deltaX;
dy = i*sinRot + j*cosRot + deltaY;
2) Чтобы не было "с дырками, уродливо", переходим от координат dest в координаты src.
Т. е. преобразование, написанное чуть выше, должно быть преобразованием, обратным заданному.
3) Гуглим тему. Возможно, есть ещё моменты, о которых я не знаю.
Тут надо нормальную фильтрацию текстуры юзать и не ебать мозг.
Ну или как в древних софтрендерных игрушках - выбирать пиксели с разбросом, чтобы получилось что-то типа dithering'а. Там формулка совсем простая была, а результат вполне няшный.
1) Матрицу поворота и вектор сдвига готовим перед циклами, чтобы в цикле было примерно так:
dx = i*cosRot - j*sinRot + deltaX;
dy = i*sinRot + j*cosRot + deltaY;
2) Чтобы не было "с дырками, уродливо", переходим от координат dest в координаты src.
Т. е. преобразование, написанное чуть выше, должно быть преобразованием, обратным заданному.
3) Гуглим тему. Возможно, есть ещё моменты, о которых я не знаю.
Будет без дырок, но один хер уродливо аля GL_NEAREST. Пикселищи при большом зуме, шум при маленьком...
Ну или как в древних софтрендерных игрушках - выбирать пиксели с разбросом, чтобы получилось что-то типа dithering'а. Там формулка совсем простая была, а результат вполне няшный.