摘要:
1.介绍 嵌入式由于需要支持手指滑动,所以先写个demo,来试验. 每次按下的时候,获取一次按下的pos以及按下的时间,然后释放的时候获取一次释放pos,从而计算出,每秒移动的像素点,其中计算代码如下所示: int ms= QDateTime::currentDateTime().toMSecsSi 阅读全文
摘要:
大家都知道,在 C++中可以通过 typedef 重定义一个类型: typedef unsigned int uint_t; 被重定义的类型并不是一个新的类型,仅仅只是原有的类型取了一个新的名字。 但是不能用于模版别名,所以C++11版本推荐,通过using来代替typedef 示例如下所示: te 阅读全文
摘要:
在定义信号槽的时候,传递的参数类型如果是自定义类型(自定义class类,或者enum类等), 并且涉及跨线程时,最好先通过qRegisterMetaType()将自定义类型进行注册,否则会报错: QObject::connect: Cannot queue arguments of type 'XX 阅读全文
摘要:
在上章12.QT-通过QOpenGLWidget显示YUV画面,通过QOpenGLTexture纹理渲染YUV,我们学会了如何硬解码,但是ffmpeg图像解码过程还不知道.所以本章主要分析一下FFmpeg视频图像解码过程,只有真正了解了FFmpeg处理的基本流程,研读 ffmpeg 源代码才能事半功 阅读全文
摘要:
在上章11.QT-ffmpeg+QAudioOutput实现音频播放器,我们学习了如何播放音频,接下来我们便来学习如何通过opengl来显示YUV画面 1.为什么使用QOpenGLWidget显示YUV 如果软件中通过公式来实现软解码的话,会耗掉很多CPU,所以使用opengl,我们只需要将YUV数 阅读全文
摘要:
3.00上支持的存储变量修饰符 变量名称 作用 示例 const 编译过程常量,或者函数的只读参数 const vec3 zAxis = vec3 (0.0, 0.0, 1.0); in 用于连接 shader 的上一阶段; centroid 为质心采样关键字,用于避免伪像,不可用于顶点着色器; 顶 阅读全文
摘要:
1.描述 最近要实现一个滚动条字幕,但是搜到的系列文章都是利用定时器QTimer,在固定的时间截取文本并显示,这样滚动的时候其实是断断续续的,因为实际上是一个个字符位移实现的,不过实现方便. 所以只有自己实现无间隙滚动条字幕. 2.界面展示 示例如下图所示: 效果图如下所示(支持自适应主界面大小,根 阅读全文
摘要:
在上章3.QOpenGLWidget-通过着色器来渲染渐变三角形,我们为每个顶点添加颜色来增加图形的细节,从而创建出有趣的图像。但是,如果想让图形看起来更真实,我们就必须有足够多的顶点,从而指定足够多的颜色。这将会产生很多额外开销。 所以使用纹理(Texture)。纹理是一个2D图片(甚至也有1D和 阅读全文
摘要:
在上章2.通过QOpenGLWidget绘制三角形,我们学习绘制三角形还是单色的,本章将为三角形每个顶点着色. 1.着色器描述 着色器的开头总是要声明版本,接着是输入和输出变量、uniform和main函数。每个着色器的入口点都是main函数,在这个函数中我们处理所有的输入变量,并将结果输出到输出变 阅读全文