小编Thy*_*ues的帖子

SDL渲染太慢

我是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)

c++ sdl sdl-2

4
推荐指数
2
解决办法
3877
查看次数

标签 统计

c++ ×1

sdl ×1

sdl-2 ×1