我是C ++和SDL的初学者,我正在按照一些教程学习一些概念,然后慢慢编写一个小游戏。
不过,我遇到了一个问题:我的渲染速度似乎很慢。我已经使用PerformanceCounters来计算有无渲染功能的循环。没有它,我每帧会得到0〜2ish毫秒;当我添加渲染时,每帧最多可以达到65ish ms。
有人可以告诉我渲染功能出了什么问题吗?
SDL_Texture *texture;
...
// gets called by the main loop
void render(int x_offset, int y_offset)
{
if (texture)
{
SDL_DestroyTexture(texture);
}
texture = SDL_CreateTexture(renderer,
SDL_PIXELFORMAT_ARGB8888,
SDL_TEXTUREACCESS_STREAMING,
texture_w,
texture_h);
if (SDL_LockTexture(texture, NULL, &pixel_memory, &pitch) < 0) {
printf("Oops! %s\n", SDL_GetError());
}
Uint32 *pixel;
Uint8 *row = (Uint8 *) pixel_memory;
for (int j = 0; j < texture_h; ++j) {
pixel = (Uint32 *)((Uint8 *) pixel_memory + j * pitch);
for (int i = 0; …Run Code Online (Sandbox Code Playgroud)