Я работаю над проектом c ++, работающим с 2D-анимацией с использованием изображений высокого разрешения. Я хочу, чтобы программа была совместима со всеми популярными версиями Windows: XP, Vista, 7 и 8.
Первое, что я попробовал — это устаревший GDI / GDI +, с которым анимация не может работать гладко. Кроме того, они, как говорят, будут оставлены в будущем.
Затем я изучил DirectX. D2D выглядит заманчиво, но не поддерживается XP. Его предшественник DirectDraw — устаревшая вещь, от которой нужно отказаться. Говорят, что D3D в DX9.0 может работать с 2D. Я следовал инструкции на веб-странице, чтобы рисовать картинки с помощью Direct3D Sprites. Фотографии, однако, несоразмерны. Я отлаживаю его всю ночь только для того, чтобы найти, что текстуры автоматически масштабируются, чтобы сделать высоту и ширину некоторой степенью 2 (DX совершенно новый для меня :(). Мне не нужен масштаб.
Я не уверен, правильно ли, что D2D использует интерфейс D3D. Если так, то я думаю, что должны быть лучшие способы использовать D3D для 2D-приложений. Но я не могу найти это. Поэтому, пожалуйста, помогите мне.
DirectX 9 может обрабатывать не мощь двух текстур, см. Вот
Так что не должно быть проблемой использовать DirectX 9 вообще.
В противном случае вы также можете посмотреть на OpenGL.
Я не использовал себя, но вы можете посмотреть на Qt Графический вид в сочетании с Анимационные рамки.
Вы также можете взглянуть на SDL: http://www.libsdl.org/
Это обычно используется для игр. Вы можете найти множество учебных пособий для этого. Он также будет немного более высокого уровня, чем DirectX, и поэтому его будет легче увеличить.