0

如果这是可能的,我将如何去做,可以分享一个链接或代码片段

我试过使用 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 的四边形

我想要这样做的唯一原因是因为我目前对 blitting 系统比对 Opengl 纹理映射系统更舒服

所以任何类型的论文或教程都会很棒

4

1 回答 1

0

使用 SDL,您可以让 SDL 为您处理(使用 SDL 的 blitting)或使用 OpenGL 自己处理。

如果您在使用 OpenGL 时遇到问题,我建议您坚持使用 SDL。除非你的最终目标是制作一个 3D 程序。在这种情况下,我会推荐http://lazyfoo.net/获取有关 OpenGL 的教程。它从不推荐使用的功能(为了学习而不是为了使用)开始,一直到可编程管道。

在 SDL2 中,您可以告诉它使用硬件加速(在引擎盖下它基本上是 OpenGL):https ://gist.github.com/armornick/3434362 (一个简单的 HOWTO)

我认为这或多或少是你想要的。

于 2013-08-07T11:35:28.493 回答