【发布时间】:2015-02-17 22:23:54
【问题描述】:
我正在使用 SDL 创建一个窗口并在其中绘制 OpenGL,在绘制 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
精灵被这样转换的原因可能是什么?我怎样才能解决这个问题 ? 有没有人遇到过类似的问题?
【问题讨论】:
标签: c++ ios opengl-es opengl-es-2.0