使用广泛的计算机程序设计语言。通用程序设计语言,支持多重编程模式
前面几章解出来的帧都躺在内存里,每帧还要再传一次才能上屏。硬解要做的就是把这步搬到显存里,让帧从解码器出来时本来就在 GPU 上。难点在每个平台都是自己那一套:...
视频侧按帧率刷,音频侧的节拍归设备,两条链各自带着自己的时间戳往前走,把它们放到同一条时间线上是这一篇要解决的事。做法是给每条轨配一个时钟,把「现在播到哪」算成...
视频那条链把帧画到屏幕上就算走完了,音频这条链还差最后一跳:数据得交给设备,由设备按自己的节奏放出去。这一跳带来的东西和前一条链几乎处处不同——节奏的源头从播放...
帧躺在视频轨的队列里,要画到屏幕上,先得决定这套渲染怎么分——分法不是照功能切的,是照着会变的地方切的。分层定下来,一帧有两条去处。这篇先讲清三个角色各管什么、...
框架和数据源都定下来,接着要定死的是数据在播放器里怎么走:io → 包队列 → 解码 → 帧队列 → 渲染。这条线看着是直的,跑起来两头都被拽着。链上有三个干活...
1. 值语义与移动语义。游戏对象频繁创建销毁,std::move 与移动构造避免了不必要的深拷贝。比如把缓冲区从一个容器转移到另一个容器,用移动而非复制,是性能...
骨架立好、注册表也上了,播放器还是个不会出声的空壳——没有水进来。这一步接第一条进水管:一个地址进去,一个一个的包出来。整条路要回答四件事:这一层对外露几个动作...
线程骨架立好之后,马上遇到第二个问题:界面要暂停,要跳进度条,网络层在报错,好几路都想改播放器的状态。我的答案是它们都不直接改——所有控制动作打包成命令,排进一...
空工程立起来,第一件往里放的东西不是解码器,也不是渲染,是骨架。音视频是一条流,读流、解码、出画面、出声音,每一段的快慢都不一样,挤在一条线程里就互相堵;而这条...
ps2-web-recomp 把 PlayStation 2 游戏的机器码提前翻译成 C++ 再编译为 WebAssembly,避开传统模拟器的解释执行瓶颈。
C/C++ 赋予开发者对内存的完全控制权,这也是漏洞的根源。专业安全开发的核心不是"避免使用指针",而是建立一套贯穿编码、编译、测试的防御体系:理解未定义行为、...
如果你是 C++ 工程师,你的世界观大概是:产物必须是原生机器码、资源生命周期必须确定、抽象不该有隐藏开销。Agent 框架的主流世界是 Python / No...
腾讯 | 前端研发 (已认证)
温馨提示:另有配套视频版,附带图解演示,观感不同,欢迎到各大视频平台搜索同名标题或【蛋先生说识】