SDL渲染视频文件

相关函数

  1. 包含头文件
#include<SDL.h>
  1. 相关函数

初始化SDL

//初始化SDL
SDL_Init(SDL_INIT_VIDEO);

//退出SDL
SDL_Quit();

创建窗口的两种方法

//创建窗口,指定窗口一些属性,返回窗口句柄
SDL_CreateWindow(title,x,y,w,h,SDL_WINDOW_SHOWN|SDL_WINDOW_BORDER);

//由一个已存在的窗口创建窗口
SDL_CreateWindowForm(hwnd);

到现在为止窗口已经创建,但不会显示出来。创建窗口后需要将窗口放到渲染器中,渲染器将其输出到渲染驱动层。
创建窗口是在内存中生成一个窗口,显示需要将其推到显卡上;显卡通过驱动将其投影到屏幕上。

需要创建渲染器

SDL_Renderer * SDLCALL SDL_CreateRenderer(SDL_Window * window, int index, Uint32 flags);

//清空渲染器,防止上一次的残留数据一起输出出去,影响画面显示
int SDLCALL SDL_RenderClear(SDL_Renderer * renderer);

//将数据推到相应引擎上,引擎将数据拷贝到驱动上,驱动将数据投影到屏幕
void SDLCALL SDL_RenderPresent(SDL_Renderer * renderer);

向渲染器中设置颜色

//Set the color used for drawing operations 
int SDLCALL SDL_SetRenderDrawColor(SDL_Renderer * renderer,
                                           Uint8 r, Uint8 g, Uint8 b,
                                           Uint8 a);

SDL事件基本原理

  1. SDL将所有事件放在一个队列中
  2. SDL事件种类
//窗口事件
SDL_WindowEvent

//键盘事件
SDL_KeyboardEvent

//鼠标事件
SDL_MouseMotionEvent

//自定义事件
  1. SDL事件处理
  • SDL_PollEvent 轮询处理,每隔一段时间处理一次
  • SDL_WaitEvent 等待事件处理,处理及时不占用过多CPU
//定义一个事件
SDL_Event event;
SDL_WaitEvent (&event);

纹理渲染

  1. 基本概念
  • 纹理:描述图像的基本信息(以画的一条线为例子,该线包含多个rgb/yuv数据点,而纹理包含这条线的起始和终点位置以及色彩的渐变过程)
  • 使用纹理的优点:
    数据量小,占主内存少;
    将纹理数据传给显卡,可利用显卡硬件加速计算数据并渲染。
  1. SDL渲染基本过程

内存图像包含图片的所有信息,渲染器将图片的描述信息抽取出来形成纹理,将纹理送到显卡上渲染展示出来。

渲染器
交换
内存图像
纹理
窗口展示
  1. 纹理相关函数
//创建纹理,int access指纹理类型分为一般和流式,视频为流式
SDL_Texture * SDLCALL SDL_CreateTexture(SDL_Renderer * renderer,
                                                        Uint32 format,
                                                        int access, int w,
                                                        int h);
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值