- 主题:想学习编程,求推荐
你现在在干什么工作?
【 在 fozainter 的大作中提到: 】
: 我40多岁了,前两年学的C#,可以编一些简单的界面。
: 后来学了python(包括numpy,cupy等工具包),自己做的小软件需要,回头又学了C++(stl,
: ...................
--
FROM 60.253.146.*
Qt 两种方案,一种是 QtQuick 使用的 QRHI, 底层是 directx/opengl/metal 每个平台各写一套的 shader. 另一种是 QtWidgets 使用的申请一段内存由 CPU 搞控件绘制,然后调用 gdi32.dll 的 BltBit 一次性复制到 GPU 显存。我研究过,BltBit() 在 Vista 以后的变化就是增加了 GPU 加速能力,是少数 GDI 里面有改进的函数。
前者直接到 GPU 做复杂效果,后者低延迟不卡顿。无论哪种方案都比 C++ Builder 强。
【 在 philbloo 的大作中提到: 】
: 现在 gui 的 api 离 diretx/opengl/metal 有多远?qt 自己做 triangulation 吗?还是 rasterization ?
--
修改:hgoldfish FROM 183.253.147.*
FROM 183.253.147.*
你没明白 user32.dll 的内部原理啊。它的绘制是一层叠一层,效率很差的。你搜一下 DirectUI 的历史就知道,我这里不详细说了。gdi32.dll 和 user32.dll 是纯 C 代码写的,前者对应于 Google 的 skia, gtk 的 cario,Qt 的 QtGui,是 2D 图形库,后者是控件库。这俩用的都是远古的技术,因为兼容性,已经很久没有改动了。
内核是内核,图形层是图形层。Windows 下所有的窗口软件都必须调用 user32.dll 创建窗口并绘制在窗口里面。谁都不例外。user32 自己也不例外。
讨论这些远古的技术挺无聊的。让我们来讨论 rust 怎么样写裸机应用一统天下吧。
【 在 ooolinux 的大作中提到: 】
: 实际上user32.dll的GDI显示很快(Windows内核都是汇编造的,就算几十年前80386电脑的win3.1都很快),而Qt程序在慢一点的电脑界面显示会先显示窗口框架,然后窗口内容才显示出来。
--
修改:hgoldfish FROM 183.253.147.*
FROM 183.253.147.*
就算C代码应该也是嵌入汇编的,关键的地方必然快。
【 在 hgoldfish 的大作中提到: 】
: 你没明白 user32.dll 的内部原理啊。它的绘制是一层叠一层,效率很差的。你搜一下 DirectUI 的历史就知道,我这里不详细说了。gdi32.dll 和 user32.dll 是纯 C 代码写的,前者对应于 Google 的 skia, gtk 的 cario,Qt 的 QtGui,是 2D 图形库,后者是控件库。这俩用的都是远古的技术,因为兼容性,已经很久没有改动了。
: 内核是内核,图形层是图形层。Windows 下所有的窗口软件都必须调用 user32.dll 创建窗口并绘制在窗口里面。谁都不例外。user32 自己也不例外。
: 讨论这些远古的技术挺无聊的。让我们来讨论 rust 怎么样写裸机应用一统天下吧。
: ...................
--
FROM 183.251.227.*
了解一下Delphi/C++ Builder跨平台的FMX框架(FireMonkey)
【 在 hgoldfish 的大作中提到: 】
: Qt 两种方案,一种是 QtQuick 使用的 QRHI, 底层是 directx/opengl/metal 每个平台各写一套的 shader. 另一种是 QtWidgets 使用的申请一段内存由 CPU 搞控件绘制,然后调用 gdi32.dll 的 BltBit 一次性复制到 GPU 显存。我研究过,BltBit() 在 Vista 以后的变化就是增加了 GPU 加速能力,是少数 GDI 里面有改进的函数。
: 前者直接到 GPU 做复杂效果,后者低延迟不卡顿。无论哪种方案都比 C++ Builder 强。
:
--
FROM 183.251.227.*
有时间我还不如去学 rust 和 nim 搞裸机开发或者 AI 搞钱。
它再强,难道还能比其它家的技术还强?你前面还在说 gdi32/user32 比 QtGui/QtWidgets 强,表明你对 GUI 的底层技术不太理解。后面再说哪个强我不敢信啊。
时代已经过去了。这些市场竞争的失败者还是洗洗睡吧。非要搞 GUI 开发的话,卷 20 年前的传统技术领域,还不如准备迎接未来的 VR 开发。实在不行也是搞移动端开发啊。
【 在 ooolinux 的大作中提到: 】
: 了解一下Delphi/C++ Builder跨平台的FMX框架(FireMonkey)
: GPU 加速能力,是少数 GDI 里面有改进的函数。
--
FROM 183.253.147.*
你别应该了,也别必然更快。
如果说更快,也是 QtGui 和 Google skia 更快,它们都使用了 AVX256 在加速绘制。这地方不用汇编,因为现代编译器都有 SIMD 专用函数。
Windows 源码有泄露的,你直接去证实一下吧。
【 在 ooolinux 的大作中提到: 】
: 就算C代码应该也是嵌入汇编的,关键的地方必然快。
: 远古的技术,因为兼容性,已经很久没有改动了。
--
FROM 183.253.147.*
我没说gdi32/user32更强,只是说它绘制快。
【 在 hgoldfish 的大作中提到: 】
: 有时间我还不如去学 rust 和 nim 搞裸机开发或者 AI 搞钱。
: 它再强,难道还能比其它家的技术还强?你前面还在说 gdi32/user32 比 QtGui/QtWidgets 强,表明你对 GUI 的底层技术不太理解。后面再说哪个强我不敢信啊。
: 时代已经过去了。这些市场竞争的失败者还是洗洗睡吧。非要搞 GUI 开发的话,卷 20 年前的传统技术领域,还不如准备迎接未来的 VR 开发。实在不行也是搞移动端开发啊。
: ...................
--
FROM 183.251.227.*
你应该先确定你要干什么,然后再确定工具,而不是相反!
【 在 flaybird111 的大作中提到: 】
: 本科计算机,读书期间代码量可以忽略,不过C++ prime啃过一遍,毕业后也没从事IT专业。在接近不惑之年,想重新学习下编程,求大佬推荐易于上手、又有一定实用性,应用面比较广的语言。比如Python如何?
:
--
FROM 113.233.196.*
然而并没有。我叫你去搜一下 DirectUI 的来龙去脉,你咋一直在重复呢。
【 在 ooolinux 的大作中提到: 】
: 我没说gdi32/user32更强,只是说它绘制快。
--
FROM 117.24.95.*