SDL窗口加载gif后如何动态显示

Barry__ c++软件研发  2016-04-04 05:33:22
如题,用SDL2创建了一个窗口,然后SDL_IMAGE2将gif加载并显示,可是在sdl窗口中只是gif的第一帧静态的显示在那,请问如何让gif在sdl窗口中动态显示呢?难道需要自己获取gif的每一帧?
部分关键代码

bool Game2::init(const char *title, int xpos, int ypos, int height, int width, int flags)
{
if (SDL_Init(SDL_INIT_EVERYTHING) < 0) return false;

m_pWindow = SDL_CreateWindow(title, xpos, ypos, height, width, flags);
if (NULL == m_pWindow) return false;

m_pRenderer = SDL_CreateRenderer(m_pWindow, -1, 0);

SDL_SetRenderDrawColor(m_pRenderer, 255, 255, 255, 255);

// new
//SDL_Surface *pTmpSurface = SDL_LoadBMP("D:\\sample.bmp"); // 按照实际更改图片名称及路径
SDL_Surface *pTmpSurface = IMG_Load("C:\\Users\\87070\\Desktop\\1.gif");
if (NULL == pTmpSurface) return false;

m_pTexture = SDL_CreateTextureFromSurface(m_pRenderer, pTmpSurface);
if (NULL == m_pTexture) return false;

SDL_FreeSurface(pTmpSurface);

SDL_QueryTexture(m_pTexture,NULL, NULL, &m_srcRect.w, &m_srcRect.h);
m_dstRect.x = m_srcRect.x = 0;
m_dstRect.y = m_srcRect.y = 0;
// for debug
//m_srcRect.w /= 2;
//m_srcRect.h /= 2;

m_dstRect.w = m_srcRect.w;
m_dstRect.h = m_srcRect.h;

...全文
246 点赞 收藏 2
写回复
2 条回复
Moboke 2020年01月07日
没看懂啊 是否该注释说明
回复 点赞
Barry__ 2016年04月05日
为什么没有人
回复 点赞
发动态
发帖子
其它游戏引擎
创建于2015-08-27

8

社区成员

680

社区内容

其它游戏引擎
社区公告
暂无公告