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

Barry__ 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;

...全文
489 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Moboke 2020-01-07
  • 打赏
  • 举报
回复
没看懂啊 是否该注释说明
Barry__ 2016-04-05
  • 打赏
  • 举报
回复
为什么没有人

456

社区成员

发帖
与我相关
我的任务
社区描述
其它游戏引擎
社区管理员
  • 其它游戏引擎社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧