SDL_UpdateTexture,SDL_UpdateYUVTexture截屏效率比较,sdl_savebmp黑屏
来源:互联网 发布:腾讯tgp客户端mac 编辑:程序博客网 时间:2024/05/17 15:19
两个初始化方式:
方式1
m_sdlwindow_output = SDL_CreateWindow("test", 0, 0, m_cfg.encwidth, m_cfg.encheight, SDL_WINDOW_BORDERLESS);
assert(m_sdlwindow_output > 0);
SDL_HideWindow(m_sdlwindow_output);
m_sdlsurface_output = SDL_GetWindowSurface(m_sdlwindow_output);
assert(m_sdlsurface_output > 0);
m_sdlrenderer_output = SDL_CreateRenderer(m_sdlwindow_output, -1, SDL_RENDERER_ACCELERATED);
assert(m_sdlrenderer_output > 0);
这个方式走的是硬件渲染
方式2
m_sdlsurface_output = SDL_CreateRGBSurface(SDL_SWSURFACE, m_cfg.encwidth, m_cfg.encheight, 32, 0, 0, 0, 0);
assert(m_sdlsurface_output != NULL);
m_sdlrenderer_output = SDL_CreateSoftwareRenderer(m_sdlsurface_output);
assert(m_sdlrenderer_output != NULL);
//m_sdltexture_output = SDL_CreateTexture(m_sdlrenderer_output, SDL_PIXELFORMAT_IYUV, SDL_TEXTUREACCESS_TARGET,
m_sdltexture_output = SDL_CreateTexture(m_sdlrenderer_output, SDL_PIXELFORMAT_RGB24, SDL_TEXTUREACCESS_TARGET,
m_cfg.encwidth, m_cfg.encheight);
assert(m_sdltexture_output != NULL);
这个走的是软件渲染
方式1,渲染速度非常快1毫秒多,1080p分辨率,但是此种方式用sdl_surface.savebmp,保存的是黑屏,
方式1,渲染速度非常慢,因为实在软件上渲染,15毫秒,1080p分辨率,但是此种方式用sdl_surface.savebmp,可以保存到正确的图像。
int pitch0 = g_ptrMainWnd->m_cfg.encwidth * SDL_BYTESPERPIXEL(SDL_PIXELFORMAT_RGB24);
DWORD dw1 = GetTickCount();
//for (int m = 0; m < 1000; m++)
{
//ret = SDL_UpdateYUVTexture(g_ptrMainWnd->m_sdltexture_output, &g_ptrMainWnd->m_ptrActList[chnIdx]->m_outputTun.rect,
// data_in[0], linesize_in[0],
// data_in[1], linesize_in[1],
// data_in[2], linesize_in[2]);
//assert(ret == 0);
ret = SDL_UpdateTexture(g_ptrMainWnd->m_sdltexture_output, &g_ptrMainWnd->m_ptrActList[chnIdx]->m_outputTun.rect,
data_in[0], pitch0);
// data_in[1], linesize_in[1],
// data_in[2], linesize_in[2]);
assert(ret == 0);
同样是软件上渲染更新纹理时候也是两种方式,yuv稍快,15毫秒一帧,rgb24方式要30毫秒一帧。1080p的分辨率
- SDL_UpdateTexture,SDL_UpdateYUVTexture截屏效率比较,sdl_savebmp黑屏
- SDL_SaveBMP函数
- 效率比较
- 效率比较
- java程序截屏黑屏的现象
- android VideoView截屏黑屏解决方法
- 代码效率比较1
- STL容器效率比较
- arraycopy效率比较
- 截取字符串效率比较
- STL容器效率比较
- STL容器效率比较
- Java List 效率比较
- ORACLE 分页效率比较
- C# 字符串比较 效率
- STL之效率比较
- 时间戳效率比较
- 字符串拼接效率比较
- Codeforces Round #428 (Div. 2) A. Arya and Bran
- ssh无法连接服务器
- 机器学习--目录链接
- 深度学习基本模型浅析
- 是什么优化让 .NET Core 性能飙升?_0
- SDL_UpdateTexture,SDL_UpdateYUVTexture截屏效率比较,sdl_savebmp黑屏
- c++字符串全排列递归法
- win7 下cygwin heap报错
- UE4 “Level” 的组成关系及详讲 (随记系列2_Level)
- 批处理bat,设置定时关机
- 分布式中的锁问题
- freeCodeCamp中一些算法练习的实现
- 插件化技术-Small插件框架
- ASP.NET MVC 5