社区
界面
帖子详情
在使用SDL显示视频数据 频繁调用SDL_SetVideoMode方法设置视频的显示大小 会有什么样可能的结果?
appleonexyz
2010-09-21 04:19:21
我频繁调用SDL_SetVideoMode会出现0x0000005的错误,
每次调用SDL_SetVideoMode返回的是同一个surface对象吗?
比较急 谢谢大家呀
...全文
580
1
打赏
收藏
在使用SDL显示视频数据 频繁调用SDL_SetVideoMode方法设置视频的显示大小 会有什么样可能的结果?
我频繁调用SDL_SetVideoMode会出现0x0000005的错误, 每次调用SDL_SetVideoMode返回的是同一个surface对象吗? 比较急 谢谢大家呀
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
向立天
2010-10-20
打赏
举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了
疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知
见此回复三日内无回应
我们将强制结帖
相关规定详见界面
界面版关于版主结帖工作的具体办法
SDL
+C简单游戏例子
#include #include //用键盘控制精灵移动 int main(int argc, char ** argv) {
SDL
_Surface * screen; //主表面
SDL
_Surface * image; //用来放MM-----的图片信息(像素)
SDL
_Surface * PlayerImage; //用来测试的图片
SDL
_Event event; Uint32 BeginTicks, EndTicks;
SDL
_Rect PRect, BRect; //PRect对应精灵的移动的小图位置(实现动画),BRect对应精灵在屏幕的位置。 unsigned char PlayerStarts = 0; unsigned char PlayerIndex = 0; bool bAppRun = true; //初始化
SDL
if (
SDL
_Init(
SDL
_INIT_
VIDEO
|
SDL
_INIT_TIMER) == -1) { fprintf(stderr, "
SDL
_Init %s\n",
SDL
_GetError()); return -1; } //初始化成功
设置
退出要
调用
的函数
SDL
_Quit atexit(
SDL
_Quit); //创建一个640X480 16-bit 模式的主表面 16位可以让MM的效果好看一点 screen =
SDL
_
Set
Video
Mode
(230, 230, 16,
SDL
_SWSURFACE); if (screen == NULL) { fprintf(stderr, "Couldn't
set
640x480x8
video
mode
%s\n",
SDL
_GetError()); return -1; } //读取MM图片信息,并创建一个表面,并把
数据
填入该表面中。 image =
SDL
_LoadBMP("./mm.bmp"); //请在终端里运行该程序 if (image == NULL) { fprintf(stderr, "Couldn't load MM, %s\n",
SDL
_GetError()); //遗憾你不能
显示
MM了,不过你可以用图片浏览程序看。 return -1; } //读取player.bmp PlayerImage =
SDL
_LoadBMP("./player.bmp"); //请在终端里运行该程序 if (image == NULL) { fprintf(stderr, "Couldn't load MM, %s\n",
SDL
_GetError()); //遗憾你不能
显示
MM了,不过你可以用图片浏览程序看。 return -1; } //读取第一个像素 Uint8 key = *((Uint8 *)PlayerImage->pixels); //
设置
色键
SDL
_
Set
ColorKey(PlayerImage,
SDL
_SRCCOLORKEY, key); //有了MM的表面了,就可以
显示
了。 //将MM的表面画在我们的主表面上,用MM来作为背景 if (
SDL
_BlitSurface(image, NULL, screen, NULL) < 0) { //解释一下NULL,第一个是按照image的尺寸
显示
,第二个是默认
显示
。你也可以指定
大小
,不过要用到
SDL
_Rect你可以看一看帮助。 fprintf(stderr, "BlitSurface error: %s\n",
SDL
_GetError()); //看看提示吧 return -1; } PRect.x = 0; //初始化动画
显示
的图片。 PRect.y = 0; PRect.w = 32; PRect.h = 48; BRect.x = 0; //初始化精灵的位置。 BRect.y = 0; BRect.w = 32; BRect.h = 48; //贴上测试用的表面 if (
SDL
_BlitSurface(PlayerImage, &PRect, screen, &BRect) w, image->h); BeginT
SDL
解析——
SDL
视频
处理
SDL
初始化 完成,就可以开始
视频
处理的部分了。首先需要
调用
的函数是:
SDL
_Surface *
SDL
_
Set
Video
Mode
(int width, int height, int bpp, Uint32 flags);
这个函数的作用是
设置
显示
模式。但最终
会
给我们弹出一个图形窗口。它包含4个参数,分别是窗口宽,高,以及每一个像素点所占的比特位bpp(bits per pixel)。这些往往与其它类似的图形库差别不大。这样,我们无形当中得到了一个
(w
基于FFmpeg+
SDL
的
视频
播放器的制作
基于FFmpeg+
SDL
的
视频
播放器的制作的入门级课程,
视频
资料、ppt、代码、
使用
到的工具、测试音
视频
上传到百度云,方便您的下载。这个课程通俗易懂,内容翔实,是您从ffmpeg、
sdl
门外汉到高手的很好的一课。学习ffmpeg已经3年,我从一个菜鸟的角度,提供了这趟课程,从简单到复杂,从入门到进阶,让您迅速掌握ffmpeg和
sdl
的
使用
。百度云盘地址:请在【百度云盘】课程的附件中下载。由于百度经常让分享失效,所以
会
及时更新这个附件中的地址。课程中其他涉及到的云盘地址
可能
无效,敬请您的谅解。有问题请及时联系qq 727426881,尽我所能,让您满意。
SDL
显示
图片总结
到现在为止,已经写了好几个
显示
图片一类的程序 现在就来好好总结一下首先我们在最开始 是在屏幕上
显示
一张图片整个过程如下:定义两个
SDL
_Surface 指针变量 分别是表示窗口和图像 之后就
调用
SDL
_Init()进行初始化
SDL
的子系统
SDL
_
Set
Video
Mode
()函数是用来
设置
窗口的之后就是加载图像(现期的
sdl
只能加载bmp位图 其他格式需要
调用
扩展库)
调用
SDL
_Loa...
SDL
入门学习续-在
SDL
中
使用
OpenGL
配置好
SDL
之后,就想在
SDL
中
使用
openGL,原以为
会
像在GLFW中那样简单的,实际上确花费了一整个下午不断查看文档,实例才搞定问题。 总结如下: 1)
SDL
对OpenGL进行了部分的封装,一些OpenGL的函数需要用
SDL
来实现,而不是像GLFW中那样直接用; 2)
SDL
的事件机制花费了一些时间来理解; 3)在处理OpenGL窗口
大小
变化的时候,需要先
调用
SDL
_
Set
Video
Mo
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章