自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(398)
  • 资源 (32)
  • 收藏
  • 关注

原创 obs 源的绘制原理:d3d的使用

在创建图片源的时候:1 加载图片 图片数据存储在: image->texture_data = gs_create_texture_file_data3(file, alpha_mode, &image->format, &image->cx, &image->cy, space);创建一个texture,使用image->texture_data 填充数据在gs_texture_2d中,最终调用到将data 写到texture中 最终调用 hr = devic

2025-04-29 18:53:11 40

原创 dx11 龙宝书 第五 六章 流水线

渲染管线(rendering pipeline)是指:在给定一个3D场景的几何描述及一架已确定位置和方向的虚拟摄像机时,根据虚拟摄像机的视角生成2D图像的一系列步骤(译者注:渲染管线由许多步骤组成,每个步骤称为一个阶段)。图5.11所示为构成渲染管线的各个阶段,以及与各个阶段相关的内存资源。从内存指向阶段的箭头表示该阶段可以从内存读取数据;例如,像素着色器阶段(pixel shader stage)可以从内存中的纹理资源中读取数据。从阶段指向内存的箭头表示该阶段可以向内存写入数据;

2025-04-29 15:06:19 735

原创 dx11 龙书学习 第四章 dx11 准备工作

Direct3D是一种底层绘图API,应用程序接口),它可以让我们可以通过3D硬件加速绘制3D世界。从本质上讲,Direct3D提供的是一组软件接口,我们可以通过这组接口来控制绘图硬件。例如,要命令绘图设备清空渲染目标(例如屏幕),我们可以调用Direct3D的方法来完成这一工作。Direct3D层位于应用程序和绘图硬件之间,这样我们就不必担心3D硬件的实现细节,只要设备支持Direct3D 11,我们就可以通过Direct3D 11 API来控制3D硬件了。

2025-04-28 19:03:36 1165

原创 Windows桌面采集技术

在进入具体的方式讨论前,我们先看看 Windows 桌面图形界面的简化架构,如下图:在 Windows Vista 之前,Windows 界面的复合画面经由 Graphics Device Interface(以下简称 GDI)技术直接渲染到桌面上。在 Windows Vista 以及之后的版本,Desktop Composition 的工作就交由一个新的模块Desktop Window Manager(以下简称 DWM) 来完成了。

2025-03-24 11:25:17 1700

原创 electron多进程通信

进程间通信 (IPC) 是在 Electron 中构建功能丰富的桌面应用程序的关键部分之一。由于主进程和渲染器进程在 Electron 的进程模型具有不同的职责,因此 IPC 是执行许多常见任务的唯一方法,例如从 UI 调用原生 API 或从原生菜单触发 Web 内容的更改。

2025-02-26 20:25:30 1030

原创 Qt:向Qt提交Bug反馈和贡献代码

向 Qt 提交反馈 Bug1 登陆:Qt Account Login注册一个账号:注册成功后:登陆:System Dashboard - Qt Bug Tracker先在下面链接处的 Bug 库里面查询一下, 你想要提交的 bug (or Suggesstion)是否已经被人提了,若是重复,则不必再提;新建问题:如:[QTBUG-98643] When the program exits, the application notification in ...

2025-02-10 10:04:55 234

原创 qml-ApplicationWindow

ApplicationWindow继承Window,类似于QMainwindowApplicationWindow 是一个窗口,可以方便地向窗口添加菜单栏、页眉和页脚项。您可以将ApplicationWindow 声明为应用程序的根项,并使用QQmlApplicationEngine 运行它。 通过这种方式,您可以从 QML 控制窗口的属性、外观和布局。...

2025-02-10 10:03:42 160

原创 qml-ListView

ListView 显示来自内置 QML 类型(如 ListModel 和 XmlListModel)创建的模型的数据,或在 C++ 中定义的从 QAbstractItemModel 或 QAbstractListModel 继承的自定义模型类。ListView 有一个模型,它定义了要显示的数据,还有一个委托,它定义了数据应该如何显示。 ListView 中的项目水平或垂直布局。 列表视图本质上是可滑动的,因为 ListView 继承自 Flickable。 ...

2025-02-10 10:03:21 1039

原创 qml-Timer

计时器可用于触发一次动作,或以给定的时间间隔重复触发动作。这是一个显示当前日期和时间的计时器,每 500 毫秒更新一次文本。 它使用 JavaScript Date 对象来访问当前时间。import QtQuick 2.12import QtQuick.Window 2.12import QtQuick.Controls 2.0import QtQuick.Layouts 1.12import QtQml 2.12Window { id:root ...

2025-02-10 10:02:39 288

原创 qml-自定义组件

新建DateTimeLabel.qml填写内容:import QtQml 2.12import QtQuick.Controls 2.0import QtQuick 2.12import QtQuick.Window 2.12import QtQuick.Layouts 1.12Item { Timer { interval: 500; running: true; repeat: true onTriggered: time.text

2025-02-10 10:02:00 644

原创 qml-Repeator

import QtQuick 2.12import QtQuick.Window 2.12import QtQuick.Layouts 1.12import QtQml 2.12import QtQuick.Controls 2.5Window { id:root width: 400 height: 300 visible: true title: qsTr("Hello World") Row{ objectName:"ro.

2025-02-10 10:01:24 104

原创 chromium windows build

解决:C:\chromium>export DEPOT_TOOLS_UPDATE=0。

2025-02-10 09:59:49 355

原创 chromium-mojo

explicit MathImpl(mojo::PendingReceiver<math::mojom::Math> receiver)的使用。Invition 机制。

2025-02-10 09:58:47 501

原创 pyuv-player

官网:github:https://github.com/gbaruffa/pyuv-player。

2025-02-10 09:57:20 161

原创 chrome 显卡驱动黑名单切换gl2渲染

"disable_d3d11" 代表禁用d3d11。(以下d3d11==gl3,d3d9==gl2)

2025-02-10 09:55:05 182

原创 chrome-mojo C++ Bindings API

为了教导生成的绑定代码如何将任意本机类型序列T化为任意 Mojom 类型mojom::U,我们需要定义模板的适当特化。有效特化必须定义以下静态方法:Mojom 结构的每个字段的单个静态访问器,与结构字段具有完全相同的名称。这些访问器都必须采用(最好是 const)引用到本机类型的对象,并且必须返回与 Mojom 结构字段的类型兼容的值。这用于在消息序列化期间安全且一致地从本机类型中提取数据,而不会产生额外的复制成本。一个单一的静态Read。

2025-02-10 09:51:35 1217

原创 chrome-mojo idl

Mojom 是 Mojo 接口的 IDL。给定一个.mojom文件,绑定生成器C++JavaScript或Java。举一个简单的例子,考虑我们写入的以下假设的 Mojom 文件这定义了一个名称为Frobinator的interface,它在widget.mojom模块,因此它的全称是如果我们将相应的 GN 目标添加到etc...这些生成的源模块中的每一个都包含一组用 C++ 表示 Mojom 内容的定义。您还可以构建或依赖带后缀的目标名称来获取其他语言的绑定。例如,

2025-02-10 09:51:00 1218 1

原创 chrome-mojo 概述

Broker提供介绍机制(Introduce)帮助一对node建立IPC链接broker是个特殊的node channel,规定只有它能introduce(通过调用的能力找到两个node)并发送Introduce message,这就要求broker需要跟每个node都有链接node与node之间一开始只有IPC点对点通信,假如要发给另一个node,但是和当前node之间没有直接的IPC,则需要通过broker建立一个新的IPC通道,消息就是这个过程.

2025-02-07 16:40:30 1227

原创 chrome-base 如何实现一个BindOnce

BindOnce 是如何实现的呢?翻看源码:base\functional\bind.h写的 非常简洁重要的也就是最后一句:构造一个BindImpl,同时完美转发BindState的实现其中用到了std::tuple??

2025-02-07 16:39:54 1040

原创 windbg使用

用户环境中,调试器只会对当前线程进行分析,所以一定要将线程环境切换到最可能引起问题的那个线程中去,才有帮助。这个参数非常有用,当真的遇到死锁时,它可以救命(另一个分析死锁的有效命令是!注解: 带有尽量多选项的minidump(包括完整的内存内容、句柄、未加载的模块,等等),文件很大,但如果条件允许(本机调试,局域网环境), 推荐使用这中dump。此命令分析当前最近的异常事件(如果在进行dump分析,则是bug check),并显示分析结果。-v:显示异常的详细信息,这个选项在调试错误的时候,最有用。

2025-02-07 16:39:28 1634

原创 base库学习

这个方法基于的规则:当RunLoop::Run进入delegate_->Run后,执行的是MessagePump::Run,只要退出了MessagePump::Run就意味着退出RunLoop::Run。// 已拥有一个base::Thread的指针。SequencedTaskRunnerHandle::Get()执行的是访问局部存储,把sequenced_task_runner_tls中成员task_runner_(不是sequenced_task_runner_tls)值返回给app。

2025-02-07 16:38:44 835

原创 std::memory_order

std::memory_order - cppreference.com 操作系统是如何实现锁的:操作系统中锁的实现(阿里巴巴面试被虐题:cpu是怎么实现锁的)_加锁时cpu做了哪些动作_子循的博客-CSDN博客聊聊内存模型和内存序_memory_order_acquire_高性能架构探索的博客-CSDN博客

2025-02-07 16:37:10 285

原创 obs 视频采集到预览流程

等到信号后执行video_output_cur_frame函数,获取视频缓存中第一帧,从video->inputs中获取输出类型调用编码器绑定的回调函数input->callback,receive_video(),进行视频数据编码,而video->update_semaphore 信号量是在所有画面合成完成后被唤醒;两个线程的操作的视频帧缓存队列定义在 obs_core -> obs_core_video -> video_output -> cache。

2025-02-07 16:36:40 1175

原创 electrion学习

这也是为什么 electron. 能够知道应该使用哪个文件来启动。在Chromium中, 这个进程被称为 "浏览器进程"。它在Electron被重新命名, 以避免与渲染器进程混淆。

2025-02-07 16:35:48 735

原创 windows高级调试

无论用户模拟异常还是CPU异常,经过前面分析,在经过记录之后,最终都会经过KiDispatchException这个派发函数中。在KiDispatchException中会对CPU异常和用户异常分别进行处理。

2025-02-07 16:35:05 1212

原创 electron中调用C++

因此,node-addon-api 提供了允许调用者获取底层 Node-API 句柄的方法,因此直接调用 Node-API 和使用 node-addon-api 提供的对象/方法可以一起使用。模块不是 Node.js 的一部分,保留了 Node-API 的优点,因为它仅包含内联代码,而这些代码仅依赖于 Node-API 提供的稳定 API。因此,使用 node-addon-api 针对某一版本的 Node.js 构建的模块应该可以运行,而无需使用较新版本的 Node.js 重新构建。(通过 包含在项目中。

2025-02-07 16:33:50 1150 1

原创 泛型编程123

但是你会问,模板的发明,仅仅是为了做和宏几乎一样的替换工作吗?而模板会在分析模板时以及实例化模板时时候都会进行检查,而且源代码中也能与调试符号一一对应,所以无论是编译时还是运行时,排错都相对简单。用更好理解的说法,元编程意味着你撰写一段程序A,程序A会运行后生成另外一个程序B,程序B才是真正实现功能的程序。那么这个时候程序A可以称作程序B的元程序,撰写程序A的过程,就称之为“元编程”。如果元编程中所有的变化的量(或者说元编程的参数),都是类型,那么这样的编程,我们有个特定的称呼,叫“泛型”。

2025-02-07 16:31:26 297

原创 c++ template-3

 最好使用不同长度的字符串常量对模板进行测试。 模板参数的类型在按值传递时会退化,按引用传递则不会。 可以使用 std::decay<>对按引用传递的模板参数的类型进行退化。 在某些情况下,对被声明成按值传递的函数模板,可以使用 std::cref()和std::ref()将参数按引用进行传递。 按值传递模板参数的优点是简单,但是可能不会带来最好的性能。 除非有更好的理由,否则就将模板参数按值传递。

2025-02-07 16:30:41 1295

原创 obs obs_source_t

核心函数在obs_source_create_internal。

2025-02-07 16:30:05 687

原创 window环节搭建ts环节

vscode安装 node安装Node.js:首先,确保您已经安装了Node.js。您可以从Node.js官方网站(https://nodejs.org)下载并安装适合您操作系统的版本。

2025-02-07 16:28:13 384

原创 ts await async promise

代码写起来很不优雅;可读性差。

2025-02-07 16:27:23 296

原创 OBS::Display

这段代码使用 GetWindowLongPtr 函数和 GWL_STYLE 和 GWL_EXSTYLE 常量来检索当前窗口的样式和扩展样式。最后,通过按位或操作 windowStyle 变量,修改扩展样式,该变量可能包含其他窗口样式。然后,它通过按位与操作将其与 WS_POPUP 样式的补集进行,从窗口中移除弹出式样式。接下来,它将样式与 WS_CHILD 样式进行按位或操作,将窗口设置为子窗口。整体来看,这段代码改变了窗口样式和扩展样式,创建了一个具有附加样式的子窗口。

2025-02-07 16:24:02 231

原创 games101-(7/8/9) shading

引入明暗的不同,在这门课:对不同的物体应用不同的颜色将顶点所关联的周围的多面形面的法线求一个平均(无论是简单平均还是加权平均(根据顶点周围的多边形面的各自面积比例的加权)),作为顶点的法线。需要用到重心坐标,todo在现代GPU中,纹理 = 内存+范围查询将数据带入片元计算的通用方法,适用于多种应用环境光照存储微几何。。。。。。

2025-02-01 19:30:52 844

原创 DirectX11 With Windows SDK--02 顶点/像素着色器的创建、顶点缓冲区

左手坐标系:三角形的的z朝着 z的负方向,如果调换1 3 则方向变成了逆时针, 因此三角形作为背面剔除掉。

2025-02-01 19:30:29 491

原创 软件渲染器tinyrenderer

定义顺时针和逆时针的。

2025-01-31 20:23:25 897

原创 games101-作业3

由于此次试验需要加载模型,涉及到本地环节,如果是windows系统,需要对main函数中的路径稍作改变:这么写需要:同时在windows下计算很卡,可能软件模拟计算量很大的原因;使用c++17及以上版本,\spot_triangulated_good.obj 中的描述了顶点信息输入到三角形列表中:但是 在使用的时候:fragment_shader 即下面的着色模型:中去如何消费这个图片用于设置着色模型。

2025-01-30 20:52:15 410

原创 games101-作业2

对顶点进行加工,使其变换到屏幕空间坐标。

2025-01-29 12:20:39 433

原创 games101-(5/6)

投影完成之后,视图区域被确定在从[-1,1]的单位矩阵中,下一步就是光栅化长宽比:ratio垂直的可视角度:fild-of-view 可以看到的y 轴的范围,角度越小 越接近正交投影屏幕坐标系将多边形转化成像素显示器的成像:隔行扫描(每次仅仅绘制奇数行或偶数行)

2025-01-28 18:36:09 429

原创 games101-作业

zNear是近平面到摄像机的距离,已知视角,可以根据正切函数求出一半的高度,最后乘2就可以得到近平面的高度,根据宽高比,求出近平面的宽度。再根据推导出的矩阵,代入数据即可求得所需的结果。绕x,y,z轴的变换矩阵如下,算出两个三角函数值后直接代入即可。然后就是设置模型、观察以及透视矩阵,最后绘制。简要分析一下整体的一个绘制流程。

2025-01-28 13:22:38 409

原创 game101 环节搭建 windows 平台 vs2022

GAMES101作业0环境搭建(windows+visual studio)_games101作业环境配置-CSDN博客课件:GAMES101: 现代计算机图形学入门计算机图形学-GAMES101作业-在Visual Studio中搭建Eigen和OpenCV的环境_哔哩哔哩_bilibili

2025-01-27 18:36:55 252

VideoEye.7z

VideoEye.7z

2021-08-17

ffmpeg_lesson_code_swr_convert.7z

ffmpeg_lesson_code_swr_convert.7z

2021-05-03

opengl_coordinate.7z

opengl_coordinate.7z

2021-09-05

opengl_translate.7z

opengL translate

2021-09-05

openg-shaderl.7z

shader使用

2021-09-04

opengl_texture.7z

show img

2021-09-04

opengl_shader_readfile_class.7z

use file read shader

2021-09-04

opengl_triangle.7z

opengl绘制三角形

2021-09-03

opengl_wind.7z

opengl库和测试窗口,vs2017 修改库的路径即可

2021-09-03

Elecard HEVC Analyzer.7z

Elecard HEVC Analyzer.7z

2021-08-17

QOpengl+yuvtest.7z

QOpengl+yuvtest.7z

2021-05-03

ffmpeg_lesson_code-xplay.7z

ffmpeg_lesson_code-xplay.7z

2021-05-05

ffmpeg_lesson_code_model.7z

ffmpeg_lesson_code_model.7z

2021-05-04

TestAudioOutput.7z

TestAudioOutput.7z

2021-05-03

ffmpeg_lesson_code_testdemuxer.7z

ffmpeg_lesson_code_testdemuxer.7z

2021-05-02

ffmpeg_lesson_code+testqt.7z

ffmpeg_lesson_code+testqt.7z

2021-05-02

ffmpeg_lesson_code.7z

ffmpeg_lesson_code.7z

2021-05-02

拦截API-01.rar

拦截dll dome

2021-02-17

远程注入_API拦截.7z

远程注入_API拦截.7z

2021-02-17

HookDemo_全局钩子.7z

英文键盘下按phook鼠标按下,可以用debugview查看输出

2021-02-17

obs 源的绘制 简单的用direct11 实现

obs 源的绘制 简单的用direct11 实现

2025-04-29

dx11 龙宝书 第五 六章 流水线 渲染立方体

dx11 龙宝书 第五 六章 流水线 渲染立方体

2025-04-29

dx11 龙书学习 第四章 dx11 准备工作

dx11 龙书学习 第四章 dx11 准备工作

2025-04-28

obs 源的绘制 简单的用direct11 实现

obs 源的绘制 简单的用direct11 实现

2025-04-27

DirectX11 With Windows SDK-02 顶点/像素着色器的创建、顶点缓冲区

DirectX11 With Windows SDK-02 顶点/像素着色器的创建、顶点缓冲区

2025-02-01

软件渲染器tinyrenderer

软件渲染器tinyrenderer

2025-01-31

games101-作业3

games101-作业3

2025-01-30

games101-作业2

games101-作业2

2025-01-29

SGI stl src 1234567890

SGI stl src 1234567890

2022-10-09

linux kernel src

linux kernel src

2022-08-20

linux src 5.15.58

linux src 5.15.58

2022-07-31

dbus src 1.14.0

dbus src 1.14.0

2022-07-21

qt 插件的简单使用,插件创建,和使用

qt 插件的简单使用

2022-05-21

qml q_property list使用

qml q_property list使用

2022-03-22

qml demo 电池电量显示

qml demo 电池电量显示

2022-03-22

qt+cef集成demo

qt+cef集成demo

2022-03-05

pixmapTocircle.7z

优化将QPixmap转换为圆形出现的锯齿

2021-12-09

tabwidget.7z

自定义tabbar 实现拖动窗口 ,窗口合并

2021-12-06

C++test FOR TEST RTTI

C++test FOR TEST RTTI

2021-10-14

opengl_camera.7z

opengl_camera.7z

2021-09-05

空空如也

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

TA关注的人

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