SDL:IMG_load返回错误的数据

时间:2015-06-01 00:03:24

标签: sdl blit sdl-image

问题来自" IMG_load"用语言C表达SDL_image。 它在执行期间不会引发错误,但是当涉及到行

SDL_Surface* image1 = IMG_Load("image.bmp");

该函数返回一个我无法使用的数据:例如,SDL_BlitSurface(image1, NULL, screen, &position)不会做任何事情。 但是,使用函数SDL_LoadBMP.时它可以正常工作 我使用调试器试图理解两个函数返回的数据之间的区别:

这是IMG_Load(" image.bmp")返回的内容:

{ //Doesn't work
      flags = 0, 
      format = 0x3c07c0, 
      w = 40, 
      h = 40, 
      pitch = 120, 
      pixels = 0x3c07f0, 
      offset = 0, 
      hwdata = 0x0, 
      clip_rect = {
          x = 0, 
          y = 0, 
          w = 0, 
          h = 0
      }, 
      unused1 = 0, 
      locked = 40, 
      map = 0x28, 
      format_version = 3939000, 
      refcount = 1
}

以下是SDL_LoadBMP(" image.bmp")返回的内容:

{ //Works fine
    flags = 0,
    hwdata = 0x0, 
    clip_rect = {
        x = 0, 
        y = 0, 
        w = 40, 
        h = 40
    }, 
    unused1 = 0, 
    locked = 0, 
    map = 0x3458e8, 
    format_version = 7, 
    refcount = 1
}

(注意图像是相同的,它是40x40像素的正方形)。

为什么我不能在IMG_Load函数返回的SDL_Surface上使用SDL_BlitSurface?

编辑:您还必须知道这是第一次在程序中使用SDL_Image包中的函数。

0 个答案:

没有答案