C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了SDL2 C截图大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
嗨,我想知道是否可以简单地使用SDL2截图.
我试过SDL_GetWindowSurface,但是我收到一个错误,说:“没有硬件加速渲染器可用.我把代码从: How do I take and save a BMP screenshot in SDL 2?

我想到的另一个解决方案是将纹理转换为曲面,但我没有这样做
你有什么解决方案吗?
谢谢

解决方法

看来你正在混合渲染系统.该方法只能在软件渲染的上下文中工作.对于硬件渲染,您应该使用SDL_RenderReadPixels()方法.要保存屏幕截图,您需要一个这样的代码
SDL_Surface *sshot = SDL_CreateRGBSurface(0,w,h,32,0x00ff0000,0x0000ff00,0x000000ff,0xff000000);
SDL_RenderReadPixels(renderer,NULL,SDL_PIXELFORMAT_ARGB8888,sshot->pixels,sshot->pitch);
SDL_SaveBMP(sshot,"screenshot.bmp");
SDL_FreeSurface(sshot);

其中w和h是屏幕宽度和高度(您可以使用SDL_GetRendererOutputSize()获取这些值).

大佬总结

以上是大佬教程为你收集整理的SDL2 C截图全部内容,希望文章能够帮你解决SDL2 C截图所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: