【发布时间】:2015-04-13 11:21:46
【问题描述】:
我正在尝试使用 sdl 和 c++ 在屏幕上显示一个矩形。该文件可以编译,但它停止工作并返回 255。你能推荐我更好的吗?
代码如下:
SDL_Window* window;
SDL_Rect* SrcR; //rectangle
SDL_Rect* DestR; //dist rectangle
SrcR->x = 0;
SrcR->y = 0;
SrcR->w = SHAPE_SIZE;
SrcR->h = SHAPE_SIZE;
DestR->x = 100 / 2 - SHAPE_SIZE / 2;
DestR->y = 50 / 2 - SHAPE_SIZE / 2;
DestR->w = SHAPE_SIZE;
DestR->h = SHAPE_SIZE;
SDL_Init(SDL_INIT_VIDEO);
window = SDL_CreateWindow("title", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 200, 250, NULL);
SDL_Renderer *renderer = NULL;
renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
SDL_Texture *texture = NULL;
SDL_Surface* surface;
surface = SDL_GetWindowSurface(window);
SDL_FillRect(surface, NULL, SDL_MapRGB(surface->format, 255, 0, 0));
texture = SDL_CreateTextureFromSurface(renderer, surface);
SDL_RenderClear(renderer);
SDL_RenderCopy(renderer, texture, SrcR, DestR); //here i got error before
SDL_RenderPresent(renderer);
【问题讨论】:
-
检查 SDL_* 函数返回的内容 - 其中一个可能由于某种原因而失败。检查函数调用是否成功通常是一个好主意...