Я обрабатываю SVG, используя Каир. Выходной формат Cairo - ARGB. Затем я помещаю визуализированное изображение в SDL_Surface, поэтому я могу использовать его как текстуру openGL.Как использовать цвет ARGB в opengl/SDL?
Полученное изображение выглядело просто отлично, когда я использую непосредственно SDL_Surface. Но мне пришлось использовать поверхность как текстуру в openGL, потому что мне нужна была функция openGL. Проблема в том, что весь цвет перевернулся. OpenGL использует RGBA, а не ARGB.
Мне было интересно, может ли кто-нибудь помочь мне преобразовать ARL в SDL_Surface в RGBA.
Полезная информация:
Я использовал этот учебник для визуализации моего SVG. http://tuxpaint.org/presentations/sdl_svg_svgopen2009_kendrick.pdf
Моя программа написана на C.
EDIT: Я использовал этот учебник, чтобы использовать SDL_Surface как OPENGL текстуры.
http://www.sdltutorials.com/sdl-tip-sdl-surface-to-opengl-texture
Как процесс рендеринга, так и текстура opengl такие же, как и учебные пособия.
Вам нужно будет показать нам ваш код OpenGL. –
"* Затем я помещаю визуализированное изображение в SDL_Surface, поэтому я могу использовать его как текстуру openGL. *« Вы знаете, что OpenGL имеет функции для загрузки самих данных текстуры, правильно? У вас нет * * использовать SDL для него. –
Я мог бы отобразить svg в Каире и напрямую применить его к текстуре openGL? Это был бы лучший вариант. @Luka, код довольно большой, я думал, что ссылок tuxpaint будет достаточно, так как рендеринг на поверхность будет тем же. Но проблема в том, что Каир использует ARGB. Я не думаю, что могу много поделать. – user1586263