本文简单总结一下SDL显示视频的源代码。SDL显示视频的结构体SDL显示视频涉及到下列结构体:SDL_Window:代表了窗口SDL_Renderer:代表了渲染器SDL_Texture:代表了纹理SDL_Rect:一个矩形框,用于确定纹理显示的位置。上述几个结构体之间的关系如下图所示。注:该图源自于文章《最简单的基于FFmpeg+SDL的视频播放器2》 由图可见,YUV/RGB像素数据首先加载至...
分类:
其他好文 时间:
2014-11-18 01:39:49
阅读次数:
381
GDI即图形设备接口,在windows中负责图形输出。它位于应用程序和不同硬件设备之间,这种结构让程序员从直接处理不同硬件工作中解放出来。GDI处理了硬件间的差异,并且通过将应用程序与不同输出设备特性相隔离,使windows应用程序能够毫无障碍在windows支持的任何图形设备上运行。
CDC类:
SDK全局函数实现:HDC hdc = ::GetDC(m_hWnd); .....
...
分类:
其他好文 时间:
2014-11-16 10:46:14
阅读次数:
147
前言 由于项目的原因好久没写博客了,也正是项目的原因开始系统的学习WinForm,从而接触到自定义控件的开发。自定义控件的开发有一定的难度,对开发者要求比较高,需要了解Windows运行的机制,熟悉win32Api和GDI+。下面是我收集的一些资料,挺不错的。资料.NET组件编程http://ww....
1. 使用旋转矩阵
POINT imgRotateCenterPos={10,10}; //旋转中心在图片坐标(相对于图片本身)
CRect rcShow(imgShowRect); //图片要绘制的位置区域.
//把 相对于图片的旋转中心坐标 转换为 绘制区域的坐标
PointF centerPos(imgRotateCenterPos.x+rcShow....
分类:
其他好文 时间:
2014-11-10 13:49:48
阅读次数:
262
用户对客户端的UI的要求越来越高,采用alpha通道对前景背景做混合是提高UI质量的重要手段。UI开发离不开GDI,然后要用传统的GDI函数来处理alpha通道通常是一个恶梦:虽然有AlphaBlend这个API可以做alpha混合,但是前提必须是操作的DC中的位图有alpha通道的数据,问题的关键...
分类:
其他好文 时间:
2014-11-09 23:33:27
阅读次数:
307
上一篇文章分析了SDL纹理赋值给渲染目标的函数SDL_RenderCopy()。这篇文章分析SDL显示视频最后的一个函数:SDL_RenderPresent()。...
分类:
其他好文 时间:
2014-11-09 01:02:36
阅读次数:
324
上一篇文章分析了SDL更新纹理像素数据的函数SDL_UpdateTexture()。这篇文章继续分析SDL的源代码。本文分析SDL纹理复制到渲染目标的函数SDL_RenderCopy()。...
分类:
其他好文 时间:
2014-11-08 02:11:47
阅读次数:
346
所谓视口代表设备,比如屏幕。 窗口代表我们的思维。 我们对windows说在(5,6)处画个点(调用GDI函数)。windows认为是在我们的思维的(5,6)处画了个点。(也就是说5,6是逻辑坐标,GDI函数中的大部分都是逻辑坐标) 那么,要把它映射到屏幕上,必须作一些解释。 解释包括: 原点...
SetViewportOrgEx 与 SetWindowOrgEx 解析 这两个函数,用来改变视端口和窗口的原点,并都具有改变轴的效果,以致(0,0)不再指左上角。 「视端口」是依据设备坐标(图素)的。通常,视端口和显示区域相同.视端口也可以是指整窗口坐标或者屏幕坐标。点(0,0)是显示区域(或者整...
上一篇文章分析了SDL的初始化函数SDL_CreateWindow()。这篇文章继续分析SDL的源代码。本文分析SDL的渲染器(SDL_Renderer)。 SDL播放视频的代码流程如下所示。初始化: SDL_Init(): 初始化SDL。 SDL_CreateWindow(): 创建窗口(Window)。 SDL_CreateRenderer(): 基于窗口创建渲染器(Render)。 SDL_...
分类:
其他好文 时间:
2014-11-04 01:38:31
阅读次数:
363