我是使用SDL创建窗口并在其中进行OpenGL绘制,绘制完成后使用SDL显示精灵(UI)。这在Windows、OSX和NDK上都可以正常工作,但在iOS上无法正常工作。以下是我绘制精灵的方式:
我首先创建窗口:
我创建了渲染器:
我加载纹理:
我首先创建窗口:
int flags = SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN;
gWindow = SDL_CreateWindow("example", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 400, 800, flags);
我创建了渲染器:
gRenderer = SDL_CreateRenderer(gWindow, id, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
我加载纹理:
SDL_Texture* newTexture = NULL;
SDL_Surface* loadedSurface = SDL_LoadBMP(path.c_str());
newTexture = SDL_CreateTextureFromSurface(gRenderer, loadedSurface);
SDL_FreeSurface(loadedSurface);
这是我进行OpenGL绘图的地方。我加载.3ds模型,加载纹理,使用混合等。
然后我绘制精灵:
dstRect.x = 0.0f;
dstRect.y = 0.0f;
dstRect.w = 128.0f;
dstRect.h = 64.0f;
SDL_RenderCopy(gRenderer, newTexture, NULL , &dstRect);
SDL_RenderPresent(gRenderer);
结果很奇怪。精灵显示为倾斜,而不是在矩形中绘制。
result http://vvcap.net/db/zHhZwoZa1ng7caeP1BG3.png
精灵被转换成那样的原因是什么?我该如何解决这个问题?有人遇到过类似的问题吗?