SDK 系列 -- 下载器 -- 前置工作 一、背景平台客户端集成了下载游戏主体、DLC 等资源的功能。项目前期,我们使用了 Aria2c 作为辅助下载工具(非 libaria)。由于 blabla 等原因,项目组决定自研下载工具,开发语言暂定为 Golang。入职至今,博主负责了端内 80% 的工作。当然,也包括了 Aria2c 的接入工作。因此,集成自研下载器的工作由我来负责。 二、现状自研下载器是采用 Golang 语言开发,并以库的 2023-09-15 C++
CEF3 系列 -- 实践汇总(持续更新) 前言恰逢首次半年绩效考核(最高绩效 + 项目特别奖金),博主颇有感慨。就输出一些技术相关的汇总, 比如:Cef。 20 年 7 月,博主应届入职大疆。那时起(7 Months),博主首次接触 Web 相关开发:Electron & VueJS 桌面客户端。 22 年 11 月底,博主入职新公司,并再次接触 Web 相关的开发:Qt & QCefView 桌面客户端。 正文汇总主 2023-09-02 Cef
并发系列 -- 汇总(持续更新) 一、前言本文摘自 C++ Concurrency IN ACTION,一本基于 C++11 标准的并发和多线程编程深度指南。内容包括 std::thread、std::mutex、和 std::async 等基础类的使用,内存模型和原子操作、基于锁和无锁数据结构的构建,以及并行算法和线程管理。同时,会在部分章节附加 Qt 提供的便利工具。 基础类图中涉及 C++ 标准库 和 Qt 提供的一些工 2023-08-06 C++
并发系列 -- 实践 -- 直播推流之帧率控制(1080p59.94, 1080p50) 一、项目背景大疆 (深圳) RoboMaster 部门主要服务于机甲大师高校系列赛,其中的 超级对抗赛 是相对比较重要的赛事。超级对抗赛举办期间,会直播各个高校之间的多兵种机器人实时对抗。博主在大疆任职期间,全权负责赛事直播项目的 Windows 桌面端开发工作: (1) AR 后端AR后端充分利用 Qt Designer 提供的能力 (Custom Widget), 设计出一套能够快速集成各 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 组件 背景介绍项目初期,轮播图组件是根据 github 开源项目魔改的,其效果自然不符合需求。在后续的重构过程中,由于各种原因导致效果仍没有解决根本问题(博主未能完全参与其中)。 如今刚好赶上好时光,那就先以 ImageSlider 为例进行简要介绍。 预备知识ImageSlider 组件涉及到的知识点比较广。因此,博主把一些需要强调的非组件知识放在 预备知识 环节。 ImageProvider The 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