并发系列 -- 汇总(持续更新) 一、前言本文摘自 C++ Concurrency IN ACTION,一本基于 C++11 标准的并发和多线程编程深度指南。内容包括 std::thread、std::mutex、和 std::async 等基础类的使用,内存模型和原子操作、基于锁和无锁数据结构的构建,以及并行算法和线程管理。同时,会在部分章节附加 Qt 提供的便利工具。 基础类图中涉及 C++ 标准库 和 Qt 提供的一些工 2023-08-06 C++
并发系列 -- 实践 -- 直播推流之帧率控制(1080p59.94, 1080p50) 一、项目背景博主在职期间,负责赛事直播项目的 Windows 桌面端开发工作: (1) AR 后台系统AR后端充分利用 Qt Designer 提供的能力 (Custom Widget), 设计出一套能够快速集成各个算法模块的 标准化组件 。 上图是由 QT 构建的实时处理系统,可划分为两大组成部分: 主框架(EXE):为各算法模块的运作提供了一致的行为规范,包括:加载、运行、状态监测、 2023-05-12 C++
[杂项] QSS 前言经过博主近期一个月在 QML & Quick 方面的预研,部门线上产品已经可以看到 QML 相关内容。现阶段,组内正在使用 QML 开发 IM 需求。组内技术栈转型是个很大挑战。所以,决定这么做是有前提的: 对于博主来说,常规业务开发涉及的 QWidget 相关技术已没有任何挑战性; 对新技术的预研,有相当的成果:利用业余时间,博主使用 QML 把 QWidget 相关业务已实现 8 2023-04-25 Qt
初探 QML 系列 -- 工程实践汇总(持续更新) 一、预备知识Windows 支持两种类型的应用程序: GUI 程序和 CUI 程序。本文介绍的对象当然是 GUI 程序。Windows 应用程序必须有一个入口点函数,应用程序运行时,这个函数将被调用。C/C++ 开发人员可以使用以下两种入口点函数: 12345678910Int WINAPI _tWinMain( HINSTANCE hInstanceExe, HINSTAN 2023-04-05 Qt
初探 QML 系列 -- 重构 QWidget 组件 背景介绍Qt 客户端开发入门容易,进阶难哦。举个例子:同事 A 开发耗时30d (15d 开发 + 15d 优化),而且一堆烂代码。同事 B 开发耗时 3d 已达到最优化状态。虚线带人好难哦~~~ 预备知识ImageSlider 组件涉及到的知识点比较广。因此,博主把一些需要强调的非组件知识放在 预备知识 环节。 ImageProvider The QQuickImageProvider clas 2023-03-28 Qt
初探 QML 系列 -- 规划 前言对于桌面软件开发,常用的 UI 库包括:MFC、 QT、 wxWidget、FLTK 等。如果项目立项初期选择 Qt 的话,有两个大的方向可供选择:QWidget, QML。 在性能方面,两者基本上没有太大差距。 但对于 C++ 开发人员,两种选择都有不小的挑战。对于桌面 App 涉及到的技术点,博主将其分为两类:布局系统 和 其它 。 预备知识对比 QWidget 和 QML 的布局方式, 2023-03-22 Qt
[杂项] AR -- 前后景处理 前言本文着重梳理两年来博主在 AR 直播领域(渲染、推流、数据处理)的技术积累. 由下文的预备知识可知, 其中的每项都可以作为单独的专题展开讲解. 碍于全职工作, 近期不可能对所有的内容展开详尽讨论. 为避免遗忘这些宝贵的经验和方法, 才有了这篇文章. 预备知识GPU 流水线 顶点数据: 模型通常由三角面 (或四边面) 组成. 在 GPU 渲染流程中,三角面片的顶点数据则是顶点着色器的输入,包括: 2023-03-22 AR
[杂项] CEF3 -- IME Behavior 预备知识 Communications : between host and web Preloading: supported by Electron only Preload scripts are injected BEFORE a web page loads in the renderer, similar to a Chrome extension’s content scripts. 2023-03-08 Cef
[杂项] rlottie 前言面向用户的企业级产品,UI 和交互会直接影响到用户的体验:鼠标交互可以附加 UI 的 hover, pressed 状态; 对于持续的状态 (Download, Uninstall, Update), 则可以考虑在功能入口引入 GIF 。下图是博主随意截取的 GIF (Sam Smith) 预备知识 Concurrency In Action: single-producer, single- 2023-02-18 CPP
[杂项] Enum to String 预备知识 Standard predefined identifier: 预定义标识符 __func__: 返回所在函数闭包对应的函数名. 本质上是常量字符数组, 由编译器提供(ISO C99 & ISO C++11), 格式: const char __func__[] Standard predefined macro: 预定义宏 MSVC supports the pred 2023-01-23 CPP