如果可以,我将如何去做,可以共享链接或代码片段
我尝试过使用SDL_ANYFORMAT并使用此
RenderSurface ( 0, 0, pTexture, pMainSurface );
glColor3f ( 1.0f, 0.0f, 0.5f );
glBegin( GL_QUADS );
glVertex2f( -0.5f, -0.5f );
glVertex2f( 0.5f, -0.5f );
glVertex2f( 0.5f, 0.5f );
glVertex2f( -0.5f, 0.5f );
glEnd();
SDL_Flip ( pMainSurface );
RenderSurface是我做的一个函数,就是这个
void RenderSurface ( int x, int y, SDL_Surface* src, SDL_Surface* dst )
{
SDL_Rect offset;
offset.x = x;
offset.y = y;
SDL_BlitSurface ( src, NULL, dst, &offset );
}
此代码仅显示Surface而不是OpenGL的四边形
我想要的唯一原因是因为我现在比使用Opengl纹理映射系统更适合使用blitting系统
所以任何类型的papar或教程都会很棒
答案 0 :(得分:0)
使用SDL,您可以让SDL为您处理(使用SDL的blitting)或使用OpenGL自行处理。
如果您遇到OpenGL问题,我建议您坚持使用SDL。除非你的最终目标是制作3D节目。在这种情况下,我会建议http://lazyfoo.net/获取有关OpenGL的教程。它从不推荐使用的功能开始(用于学习不使用)并逐步实现可编程管道。
在SDL2中,您可以告诉它使用硬件加速(在引擎盖下它基本上是OpenGL):https://gist.github.com/armornick/3434362(一个简单的HOWTO)
我认为这或多或少是你想要的。