自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(229)
  • 资源 (11)
  • 收藏
  • 关注

原创 七、OpenGL 2.0 可编程着色器实现渲染控制权转移的四大核心机制

OpenGL 2.0 的可编程着色器通过语言抽象屏蔽硬件差异,编译系统实现跨平台兼容,管线开放释放创作自由,硬件适配重塑 GPU 架构,最终将渲染控制权从硬件厂商转移到开发者手中。这一变革不仅推动了图形技术的进步,更为 AI、科学计算等领域的 GPU 应用铺平了道路。分享详细介绍GLSL中数据类型和函数的使用如何在OpenGL 2.0中管理着色器程序的生命周期?如何进行顶点着色器和片段着色器之间的数据传递?

2025-05-23 18:00:34 419

原创 六、OpenGL 2.0 通过引入可编程着色器,将渲染控制权从硬件厂商转移到开发者手中。这是如何实现的,或者说可编程着色器是如何实现的

语言抽象:GLSL 提供高级编程模型,屏蔽底层硬件细节编译系统:将开发者代码编译为 GPU 微代码,实现跨硬件兼容管线开放:将传统固定功能阶段(如光照、变换)变为可编程模块硬件适配:倒逼 GPU 厂商设计通用计算架构,而非专用功能单元这一变革不仅推动了图形技术进步,更为后来 GPU 在深度学习、科学计算等领域的应用铺平了道路,使 GPU 从单纯的图形加速器转变为通用并行计算平台。分享。

2025-05-23 16:21:36 471

原创 五、1可编程处理器,开发者可通过 OpenGL/DirectX 自定义渲染逻辑,如何自定义渲染逻辑,2 OpenGL 2.0(2004 年)引入可编程着色器,倒逼 GPU 厂商升级硬件支持,是如何倒逼

OpenGL 通过 ** 着色器(Shader)** 机制允许开发者自定义渲染逻辑,主要分为以下几个核心阶段:着色器语言与编程模型glsl 片段着色器(Fragment Shader):计算每个像素的最终颜色 glsl 着色器编译与链接c 自定义渲染管线的能力OpenGL 2.0(2004 年)引入可编程着色器带来的变革性影响:从 "固定功能" 到 "可编程" 的范式转变硬件升级的具体压力点典型技术升级案例市场竞争与标准推动图形质量的飞跃GPU 通

2025-05-23 16:01:48 532

原创 四、GPU是如何成为当前电脑中不可或缺的一部分的,opengl在其中起到了什么效果

GPU 因并行计算架构成为图形与计算核心,而 OpenGL 通过标准化接口释放其性能,二者形成 “硬件进化 - API 迭代 - 应用创新” 的正向循环。从游戏到 AI,GPU 的不可替代性不仅源于硬件算力,更依赖 OpenGL 等 API 构建的跨平台生态 —— 这使得开发者能持续挖掘 GPU 潜力,推动电脑技术向更高性能、更丰富场景演进。

2025-05-23 15:51:58 1133

原创 三、如何优化opengl在gpu上的渲染性能

优化 OpenGL 在 GPU 上的渲染性能需要从多个维度入手,包括减少 GPU 负载、优化内存使用、提升并行效率等。优化 OpenGL 渲染性能需要综合考虑 GPU 架构特点(如并行计算、高带宽显存)和 API 特性(如状态管理、批量操作)。建议结合性能分析工具(如 NVIDIA NSight、RenderDoc)定位瓶颈,再针对性优化。

2025-05-23 15:39:05 600

原创 二、详细解释OpenGL图形管线中顶点处理阶段的工作原理

顶点处理阶段是 OpenGL 图形管线的关键起点,通过顶点着色器、曲面细分着色器和几何着色器的协同工作,将原始顶点数据转换为屏幕空间坐标,并为后续光栅化和片段处理提供必要的属性。OpenGL 图形管线的顶点处理阶段是渲染流程的起点,负责将输入的原始顶点数据转换为屏幕空间中的坐标,并为后续阶段准备必要的属性。,为每个片段生成对应的值。例如,三角形三个顶点的颜色会在三角形内部平滑过渡。顶点着色器输出的属性(如颜色、法线)会在光栅化阶段被。顶点着色器的主要目标是将顶点坐标从。几何着色器也是可选阶段,允许对。

2025-05-23 15:38:25 642

原创 OPengl使用GPU渲染的原理

OpenGL 通过将渲染任务卸载到 GPU,利用其强大的并行计算能力和专用图形管线,实现高效的图形渲染。整个过程涉及 CPU 与 GPU 的协同工作、数据在内存间的传输,以及图形管线各阶段对数据的处理。理解这些原理有助于优化渲染性能,开发出更高效的图形应用。OpenGL 使用 GPU(图形处理器)进行渲染的过程涉及 CPU 与 GPU 的协作、图形管线的处理以及内存管理等多个环节。通过单次调用渲染同一模型的多个实例(如森林中的树木),减少 CPU-GPU 通信开销。

2025-05-23 14:06:18 462

原创 qt4.8.4对opengl的支持情况

Qt 4.8.4 对 OpenGL 的支持以兼容性和基础功能为主,适合开发不依赖高级图形特性的 3D 应用,但在现代硬件和复杂场景下存在明显局限性。Qt 4.8.4 对 OpenGL 的支持主要基于 Qt 的 OpenGL 模块(QtOpenGL),该模块提供了与 OpenGL 图形库的接口,允许开发者在 Qt 应用程序中集成 3D 图形渲染功能。这是因为 Qt 4.x 系列的设计目标是兼容较旧的硬件和驱动环境,对现代 OpenGL 特性(如 OpenGL 3.0 及以上的核心配置文件)支持有限。

2025-05-23 11:02:47 376

原创 qml详解

(3 封私信 / 56 条消息) qml开发真的好累。习惯了widget项目。其实有必要纯qml界面设计去开发一个项目吗? - 知乎

2025-05-22 11:00:13 103

原创 qt 继承自QTreewidget后增加Q_OBJECT宏 为什么会导致编译不过

源对象系统煤气小,moc没有起到作用,常在使用cmake配置和编译工程时出现。

2025-05-21 14:54:35 82

原创 NODEEDITOR

2 取消项目test配置。1 CMAKE版本提高。

2025-05-19 17:17:36 28

原创 qt文本边框设置

// 计算文本的大致尺寸 QFontMetrics fm(textEditor->font()); QRect textRect = fm.boundingRect(textItem->toPlainText()); // 设置编辑框大小,增加一些边距 const int margin = 10; textEditor->setGeometry( center.x() - textRect.width()/2 - margin, center.y() - textRect.height()/2 - marg

2025-05-16 10:24:53 272

原创 QDateTimeEdit 控件样式的设计与设置图片

if 1}");#else}");#endif。

2024-12-24 11:10:00 301

原创 QTableWidget样式设置

QHeaderView::section{font-family: 思源黑体;

2024-12-20 14:50:12 321

原创 qt 自定义窗口的qss设置好

/*mainBtn*/MainBtn{border-image:url(:/image/index_bg_setting.png);background-color: transparent;}MainBtn:hover{border-image:url(:/image/index_bg_setting_hover.png);}MainBtn:pressed{border-image:url(:/image/index_bg_setting_checked.png);}

2024-12-17 16:08:34 225

原创 Qlabel设置背景透明

m_labImage.setStyleSheet(QString("QLabel{border-image:url(:/image/%1.png);background-color: transparent;}").arg(str3));

2024-12-17 11:22:45 363

原创 解决qt设置透明后,设置圆角不起效,有灰影

this->setStyleSheet("QFrame#MinBtn{border-image:url(:/image/index_bg_data.png);border-radius: 40px;} "); m_labTxt.setStyleSheet("font-size: 60px;font-weight: 500;color:white;"); m_labEgTxt.setStyleSheet("font-size: 60px;font-weight:normal;

2024-12-16 17:40:46 431

原创 qt一次设置多个按钮的样式和状态以及qss里增加备注

QPushButton#btnCancel, #btnConfirm, #btnReturn, #btnDel, #btnUpload{ background: #004AA9; border-radius: 4px; font: 400 14px "Microsoft YaHei"; color: rgba(255, 255, 255, 1); line-height: 24px;}InfoCard QPushButton#btnEdt, #btnDel, #b

2024-12-13 15:32:36 776

原创 按钮样式渐变色

QPushButton#btn1 { height: 50px; background-color: qlineargradient(x1:1, y1:0, x2:1, y2:1, stop:0 #8a9195, stop: 1 balck); color: white; border-radius: 5px; font-size: 20px; font-weight:bold;}QPushButton#btn1:hover { background

2024-12-13 13:24:31 389

原创 四、vue多事件处理器

- 这两个 one() 和 two() 将执行按钮点击事件 -->

2024-12-12 17:39:27 448 1

原创 三、vue事件定义和触发

/可访问 event.target等原生事件对象。// 现在我们可以访问原生事件对象。

2024-12-12 17:37:21 223

原创 二、uni-forms

避坑指南:uni-forms表单在uni-app中的实践经验-CSDN博客

2024-12-11 16:59:22 223

原创 一 、vue开发app

uni-app:只用2小时学习+上手就够了_uni-app_是开心的栗子呀-华为开发者空间

2024-12-11 15:12:43 462

原创 微信小程序,会因为版本不同出现不兼容的问题,导致的显示异常吗

如果你的小程序是基于较老的基础库开发的,而用户使用的是较新的微信客户端,可能会出现不兼容的情况。• 开发工具版本差异:使用不同版本的微信开发者工具可能会生成略有差异的小程序包,从而影响小程序在实际运行时的表现。• 新特性支持:随着微信客户端的不断更新,可能会引入新的API或组件,而旧版本的小程序可能没有及时适配这些变化。• 废弃特性:微信也可能逐渐淘汰一些旧的API或组件,如果小程序仍然依赖这些废弃的功能,则可能导致不兼容。• 使用微信提供的真机调试功能,确保小程序在真实设备上的表现符合预期。

2024-12-11 09:09:11 993

原创 数据库删除某字段失败的语句的正确拼接

");

2024-11-25 15:46:19 48

原创 设置导航按钮的样式

border:0px;}\}\}\}"\}"\

2024-11-13 13:40:19 176

原创 搜索框的实现

m_editSearch.setPlaceholderText("请输入你想要搜索的内容");//设置编辑框没有输入内容时的友好提示。//设置编辑框位置大小。m_actSearch->setToolTip("搜索");//设置鼠标悬浮的提示。//TrailingPosition:将action放置在右边。

2024-11-07 16:55:38 330

原创 qt6下载地址

Index of /qtproject/official_releases/online_installers/

2024-10-24 17:56:12 1296

原创 qt 序列化和反序列化

序列化:反序列化:

2024-10-18 17:27:32 683

原创 qt utf gbk

endif#else#endif#else#endif。

2024-07-24 17:24:33 355

原创 qt事件类型列表

这只是部分事件类型,实际上Qt支持的事件类型远不止这些,还包括触摸事件、键盘修饰键事件、定时器事件、剪贴板事件、上下文菜单事件、文件系统事件等等,覆盖了GUI应用程序可能遇到的各种交互情况。t提供了一系列丰富的事件类型,这些事件允许应用程序响应各种用户输入、系统通知以及其他类型的交互。: 窗口状态改变事件(最大化、最小化等)。: 绘图事件,需要重绘窗口或部件时触发。)或安装事件过滤器来响应这些事件。: 窗口或部件位置改变事件。: 窗口或部件尺寸改变事件。: 鼠标进入对象区域事件。: 窗口激活状态改变事件。

2024-07-24 09:08:27 907

原创 QTextBrowser设置行号

QTextBrowser本身并不直接支持显示行号,因为它是用来展示富文本的,没有内置的行号显示功能。但你可以通过一些变通的方式来实现这个需求,比如使用一个QTextEdit(QTextBrowser继承自QTextEdit)结合自定义的行号显示部件。:你需要监听QTextBrowser的滚动条变化事件,并相应地更新行号显示部件中的内容,以保证滚动时行号与文本内容同步。:你可以创建一个新的QWidget作为行号显示区域,这个部件将与你的QTextBrowser并排布局。方法获取文档的总行数,以及使用。

2024-07-17 17:53:48 687

原创 颜色的选择

QColor color2 = QColor(204, 204, 255)/*长春花色*/,QColor color3 = QColor(240, 248, 255)/*爱丽丝蓝*/,QColor color4 = QColor(248, 248, 253)/*幽灵白*/QColor color1 = QColor(230, 230, 250)/*薰衣草紫*/,

2024-07-17 15:08:26 178

原创 pro linux

else {linux* {

2024-07-17 14:47:45 173

原创 qt设置窗口位置设置

size(),size(),show();

2024-07-17 14:07:12 378

原创 windows句柄泄漏的排查方式

Windows句柄泄漏是导致系统资源耗尽和性能问题的常见原因之一。通过这些方法的综合运用,通常可以有效地定位和解决Windows句柄泄漏问题。

2024-07-15 10:06:59 849

原创 七、com多线程下如何同步,c++举例

下面是一个简化的例子,展示了如何在多线程环境下安全地访问一个共享的COM对象。请注意,这个例子假设你已经有了一个COM对象的实例,并且这个对象在多线程环境中需要同步访问。请根据实际情况调整代码,比如初始化COM的具体位置和方式,以及线程工作的具体逻辑。在C++中,处理多线程环境下的同步问题,尤其是在使用MTA模式下的COM对象时,可以使用C++11标准库中的线程同步原语,如互斥锁(的访问,确保在多线程环境下,每次只有一个线程能够调用COM对象的方法,从而避免数据竞争和并发问题。用于保护对全局COM对象。

2024-07-10 15:41:25 132

原创 六、COM对象可以被多个线程同时访问,但开发者需负责处理多线程环境下的同步问题,如何进行多线程的同步

同时,尽量减少锁的范围以减少阻塞时间,避免死锁和优先级反转等问题,保持代码的清晰和可维护性。此外,使用智能指针或其他RAII(Resource Acquisition Is Initialization)模式的工具来管理资源,可以帮助自动处理资源的获取与释放,进一步减少并发编程的复杂性。:事件是一种简单的同步机制,一个线程可以设置事件,而另一个或多个线程可以等待该事件。事件常用于线程之间的通知机制。:条件变量用于线程间的同步,允许一个或多个线程等待某个条件成立,一旦条件满足,等待的线程会被唤醒。

2024-07-10 15:40:35 131

原创 五、调用方需要通过CoInitializeEx函数初始化线程的公寓类型,明确指定是使用STA还是MTA模式

在STA模式下,COM对象被绑定到创建它们的线程,通常适用于需要UI交互或对线程安全性有特殊要求的组件。在MTA模式下,COM对象可以被多个线程同时访问,但开发者需负责处理多线程环境下的同步问题。函数初始化线程的公寓类型时,可以通过传递不同的标志来明确指定使用STA还是MTA模式,或者允许系统根据组件需求自动选择。:这是一个可选的附加标志,通常与上述任一标志组合使用,以禁用OLE1 DDE(动态数据交换)支持。在调用结束时,应确保通过。通常情况下,这个标志对性能的影响不大,但在某些特定场景下可能有益。

2024-07-10 15:29:54 630

原创 四、com组件必须单线程中调用吗

在STA模式下,COM对象通常假定并强制执行线程 affinity,即创建对象的线程是唯一可以直接调用该对象的线程。COM设计支持两种主要的线程模型:Single-Threaded Apartment (STA) 和 Multi-Threaded Apartment (MTA),这意味着组件可以根据其设计和需求在不同的线程环境中使用。因此,是否必须在单线程中调用COM组件取决于该组件设计时选择的线程模型。有些组件设计为在STA中运行,要求客户端代码在适当的STA线程上调用它们;

2024-07-10 15:29:04 159

qt5.15离线版,直接可用

qt5.15离线版,目录下的MaintenanceTool.exe可以自由选择5.15的各个windows版本

2025-05-19

任务分级记录软件(自己编写的)

用于记录任务,子任务,以及每个子任务上所做的事,解决对做的事分类混乱的问题

2025-04-24

《QML和Qt Quick快速入门》示例源码 Qt及Qt Quick开发实战精解.pdf

《QML和Qt Quick快速入门》示例源码 Qt及Qt Quick开发实战精解.pdf

2024-11-07

windows句柄分析工具

windows句柄分析工具

2024-07-17

leakdiag内存分析工具

leakdiag内存分析工具

2024-07-17

获取linux windows机器码 c++ qt

获取linux windows机器码c++ qt

2024-07-17

windgb\processmonitor\leakdialog

windgb\processmonitor\leakdialog

2024-07-15

vs2010https编译好的动态库版本1.0.2j

包含生成的ssleay32.dll libeay32.dll等多个依赖库

2024-05-13

支持windows xp的打包工具

支持windows xp的打包工具

2024-03-18

msvcr120支持xp-sp2

msvcr120支持xp-sp2

2024-03-13

quazip 压缩解压库 qt c++

qt-quazip 压缩解压库 c++

2024-02-26

使用qt静态库怎么配置示例,仅用于学习

使用qt静态库怎么配置示例,仅用于学习

2023-10-18

数据库优化方式大全文档

数据库优化方式大全

2023-09-11

qt对各个版本的支持情况以及dbus各个版本的bug情况

qt对各个版本的支持情况以及dbus各个版本的bug情况

2023-09-11

qt 自己编译参数的中文解释文档

qt 自己编译参数的中文解释文档

2023-09-11

qt静态库编译demo,可以执行工程的配置-带demo,基于qt5

qt静态库编译demo,可以执行工程的配置-带demo,基于qt5

2023-08-29

qt5.6.3 vs2013百度离线地图,完整工程

qt5.6.3 vs2013百度离线地图,完整工程

2023-06-19

qt dbus 1.10.6编译所需的依赖库

qt dbus 1.10.6编译所需的依赖库

2023-06-05

循环队列 c++ qt std通用

实现循环队列,解决内存问题

2023-05-20

qt5 Dbus编译号的库

自己编译的Dbus模块

2023-04-24

vs2013批量自动编译脚本

vs批量自动编译脚本,支持2015,仅需改为140

2023-04-02

微服务学习资料相关c++

微服务学习资料相关 c++

2023-02-26

qt加密QES算法实现代码

AES开源代码

2023-02-26

百度地图QT5、vs2015

js api 百度地图 qt vs2015直接可用

2021-06-06

百度离线地图,兼容直接可以运行,兼容qT4 5

百度离线地图,兼容直接可以运行,兼容qT4 5

2021-01-06

Qt自定义窗口,可移植到qt5

QT4.8 vs2010vs直接打开工程可以运行

2019-12-09

Qt XMl直接可移植

代码直接可移植

2019-12-09

Viassist for vs2015

Visual Assist X 下载使用,如有问题请看本博客,头像上有qq联系我

2019-04-13

数字识别训练数据集--直接可用

数字识别集数字识别集数字识别集数字识别集数字识别集数字识别集

2018-05-29

C++高效编程:内存与性能优化

C++高效编程

2017-08-29

林锐-高质量c/c++编程指南

c++爱好者 必看

2017-08-19

Qt的dll如教程一样的编写的源码

qt dll 加载编写教程源码详细备注MyDll 请将文件名中的中文删除 再编译

2017-05-15

qt 自定义的按钮

继承自Item的自定义按钮

2017-04-24

Qt dock里面vs解决方案窗口代码

Qt dock里面vs解决方案窗口代码

2017-04-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除