我正在使用 Cairo 渲染 SVG。Cairo 输出格式为 ARGB。然后我将渲染图像放在 SDL_Surface 中,这样我就可以将它用作 openGL 纹理。
当我直接使用 SDL_Surface 时,渲染的图像看起来很好。但是我不得不在 openGL 中使用表面作为纹理,因为我需要一些 openGL 函数。问题是,所有的颜色都被翻转了。OpenGL 使用 RGBA 而不是 ARGB。
我想知道是否有人可以帮助我将 SDL_Surface ARGB 转换为 RGBA。
有用信息:
我使用本教程来渲染我的 SVG。
http://tuxpaint.org/presentations/sdl_svg_svgopen2009_kendrick.pdf
我的软件是用 C 编写的。
编辑:我使用本教程将 SDL_Surface 用作 openGL 纹理。
http://www.sdltutorials.com/sdl-tip-sdl-surface-to-opengl-texture
渲染过程和opengl纹理都和教程一样。