当前位置: 首页 > news >正文

DirectX 12 学习笔记 -结构

上篇文章我们创建了一个窗口,看样子还不难,我们继续玩DX12

引用一些文件

头文件

#include <d3d12.h>
#include <dxgi1_4.h>
#include <wrl.h>

还有一些库

#pragma comment(lib, "d3d12.lib")
#pragma comment(lib, "dxgi.lib")

请添加图片描述

这个图是我最开始的理解哈哈,不一定是对的,笔者只是一个小萌新,刚学DX和图形,自己注意真实性

IDXGIFactory

仔细一看,我发现居然有IDXGIFactory,IDXGIFactory1,2,3,4…嘶…很抽象,我猜测是不同的API版本,功能应该差不多

我们就用那个没数字的版本

这个东西有几个功能

  • 能枚举我们显示器适配器?
  • 还能用它创建一个SwapChain

IDXGIAdaptor

似乎这个就是显示器适配器,也有IDXGIAdaptor1…
(好烦躁啊!!!!怎么这么多,我用哪个)

适配器是面向不同图形硬件的抽象概念,描述了图形硬件(通常是显卡)的信息(如名称,驱动等),是创建Device的必要参数

ID3D12Device

绘图设备是与适配器交互的重要接口,它提供了大量交互适配器的低级操作
绘图设备,这个东西里面

  • 创建Fence
  • 创建资源堆
  • 创建提交的资源
  • 创建描述符堆
  • …一大堆,不列了

ID3D12CommandQueue

命令队列是存储较为低级绘制命令的队列,从属于绘图设备,一个绘图设备可以拥有多个命令队列,队列里的命令按时序出队执行

就…理解成这个东西会把里面的命令按顺序输入到绘图设备吧

ID3D12CommandList

命令列表封装了较为高级的绘制命令,通常需要向命令队列提交命令列表,列表内的高级命令会被翻译为低级命令按顺序排入命令队列

DX12不让直接往Queue里丢命令,只能先丢进List,再把List丢进Queue

ID3D12CommandAllocator

命令分配器提供了创建命令列表的手段,与命令列表一一对应并管理命令列表的资源

也就是说这个玩意是管着命令列表的,然后能创建命令列表

IDXGISwapChain

这个东西…嗯…1234

大概原理就是把DX渲染的东西放进这个里面,然后一次性输出到屏幕,省得出现介于两个画面之间的情况。

ID3D12DescriptorHeap

描述符堆,看样子是存东西的,描述内存里一块空间是什么东西

相关文章:

DirectX 12 学习笔记 -结构

上篇文章我们创建了一个窗口&#xff0c;看样子还不难&#xff0c;我们继续玩DX12 引用一些文件 头文件 #include <d3d12.h> #include <dxgi1_4.h> #include <wrl.h>还有一些库 #pragma comment(lib, "d3d12.lib") #pragma comment(lib, "…...

【Redis】Redis 的学习教程(十二)之在 Redis使用 lua 脚本

lua 菜鸟教程&#xff1a;https://www.runoob.com/lua/lua-tutorial.html 在 Redis 使用 lua 脚本的好处&#xff1a; 减少网络开销。可以将多个请求通过脚本的形式一次发送&#xff0c;减少网络时延及开销原子性操作。Redis会将整个脚本作为一个整体执行&#xff0c;中间不会…...

标准/扩展库中对象的导入与使用

博主&#xff1a;命运之光 专栏&#xff1a;Python程序设计 Python扩展库导入和使用 Python启动时&#xff0c;仅加载了很少一部分模块&#xff0c;其它模块需要由程序员显示加载。使用“sys.modules.items()”显示所有预加载的模块信息。 import 模块名[.对象名] [as 别名] …...

87、Redis 的 value 所支持的数据类型(String、List、Set、Zset、Hash)---->List相关命令

本次讲解要点&#xff1a; List相关命令&#xff1a;是指value中的数据类型 启动redis服务器&#xff1a; 打开小黑窗&#xff1a; C:\Users\JH>e: E:>cd E:\install\Redis6.0\Redis-x64-6.0.14\bin E:\install\Redis6.0\Redis-x64-6.0.14\bin>redis-server.exe redi…...

Celery结合flask完成异步任务与定时任务

Celery 常用于 web 异步任务、定时任务等。 使用 redis 作为 Celery的「消息代理 / 消息中间件」。 这里通过Flask-Mail使用qq邮箱延时发送邮件作为示例 pip install celery pip install redis pip install Flask-Mail1、使用flask发送邮件 使用 Flask-Mail 发送邮件需要进行…...

前端项目练习(练习-001-纯原生)

先创建一个空文件夹&#xff0c;名字为web-001,然后用idea开发工具打开&#xff0c;如图&#xff1a; 可以看到&#xff0c;这是个彻底的空项目&#xff0c;创建 index.html index.js index.css三个文件&#xff0c;如图&#xff1a; 其中&#xff0c;html文件内容如下&am…...

基于微信小程序的游戏账号交易买卖平台设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言系统主要功能&#xff1a;具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计…...

2023 年 Bitget Wallet 测评

对Bitget Wallet钱包的看法 Bitget Wallet在安全性、产品实力和使用体验方面可与Metamask媲美&#xff0c;甚至有所超越&#xff0c;唯一稍显不足的是知名度稍逊一筹。在众多钱包中&#xff0c;Bitget Wallet是拥有最全面的钱包之一&#xff0c;尤其适合那些希望一步到位&…...

医疗图像分割指标

医疗图像其中两种图像格式&#xff1a;MRI&#xff08;Magnetic Resonance Imaging&#xff0c;磁共振成像&#xff09;、CT&#xff08;Computed Tomography&#xff0c;计算机断层&#xff09;&#xff0c;常存成 .nii.gz 格式。都是 3D 的 H W L H \times W \times L HWL…...

零代码编程:用ChatGPT批量修改文件夹名称中的大小写

一个文件夹下面有很多个子文件夹&#xff0c;要把文件夹中的大写数字全部重命名为小写数字&#xff0c;比如将二 三 四&#xff0c;改成&#xff1a; 2 34 在ChatGPT中输入提示词如下&#xff1a; 你是一个Python编程专家&#xff0c;要完成一个文件夹重命名的任务。具体步骤如…...

webpack:详解cache模块常用配置

背景 持久化缓存算得上是 Webpack 5 最令人振奋的特性之一&#xff0c;它能够将首次构建结果持久化到本地文件系统&#xff0c;在下次执行构建时跳过一系列解析、链接、编译等非常消耗性能的操作&#xff0c;直接复用 module、chunk 的构建结果。 cache 会在开发模式被设置成…...

云原生Kubernetes:Pod控制器

目录 一、理论 1.Pod控制器 2.Deployment 控制器 3.SatefulSet 控制器 4.DaemonSet 控制器 5.Job 控制器 6.CronJob 控制器 二、实验 1.Deployment 控制器 2.SatefulSet 控制器 3.DaemonSet 控制器 4.Job 控制器 5.CronJob 控制器 三、问题 1. showmount -e 报错…...

数据库基础与MySQL入门

在当今的数字化世界中,数据如同生命之水,它贯穿于各种应用和服务中。尤其在游戏行业,例如经典的《三国志》,数据库管理成了一个不可或缺的环节。这不仅涉及到用户信息的存储,还涉及到游戏状态、积分、交易等复杂的数据处理需求。 MySQL作为一个广受欢迎的数据库管理系统,…...

探索Java爬虫框架:解锁网络数据之门

引言&#xff1a; 随着互联网时代的发展&#xff0c;大量的数据被存储在各种网页中。对于开发者而言&#xff0c;如何高效地获取和处理这些网络数据成为了一个重要的问题。而Java作为一门强大的编程语言&#xff0c;也有许多优秀的爬虫框架供开发者选择和使用。本文将带您深入…...

智慧燃气平台的总体架构到底应怎样设计?

关键词&#xff1a;智慧燃气、智慧燃气平台、智能燃气、智能监控 智慧燃气平台功能设计的一些方向和思考&#xff1a; 1、资源统一&#xff0c;管理调度 城市燃气智慧调度运营管理平台收集并且整理出每个业务系统信息&#xff0c;并且根据所整理出的信息结果制定出标准规范&…...

MonkeyRunner测试步骤

首先把安卓SDK的 环境变量给配置好&#xff0c;这里就不再多解释&#xff0c;自己google 然后将自己的安卓设备打开调试模式&#xff0c;USB连接至电脑&#xff0c;运行CMD,输入命令adb devices 查看你的安卓设备的ID&#xff08;ID后面写程序会调用&#xff09;&#xff0c;…...

Konva基本处理流程和相关架构设计

前言 canvas是使用JavaScript基于上下文对象进行2D图形的绘制的HTML元素&#xff0c;通常用于动画、游戏画面、数据可视化、图片编辑以及实时视频处理等方面。基于Canvas之上&#xff0c;诞生了例如 PIXI、ZRender、Fabric、Konva等 Canvas渲染引擎&#xff0c;兼顾易用的同时…...

人工智能AI知多少?

摘要 人工智能(Artificial Intelligence,简称AI)是一项前沿技术,正在快速发展并渗透到各个领域。然而,对于大多数人来说,人工智能仍然是一个陌生而复杂的概念。本文旨在对人工智能进行扫盲,介绍其基本概念、应用领域以及当前热门的人工智能模型。通过具体的例子,读者将…...

leetcode1610. 可见点的最大数目(java)

可见点的最大数目 题目描述滑动窗口 题目描述 难度 - 困难 leetcode1610. 可见点的最大数目 给你一个点数组 points 和一个表示角度的整数 angle &#xff0c;你的位置是 location &#xff0c;其中 location [posx, posy] 且 points[i] [xi, yi] 都表示 X-Y 平面上的整数坐标…...

Apache Flume

Flume 1.9.0 Developer Guide【Flume 1.9.0开发人员指南】 Introduction【介绍】 摘自&#xff1a;Flume 1.9.0 Developer Guide — Apache Flume Overview【概述】 Apache Flume is a distributed, reliable, and available system for efficiently collecting, aggregati…...

零基础玩转VideoFusion:高效视频批量处理全攻略

零基础玩转VideoFusion&#xff1a;高效视频批量处理全攻略 【免费下载链接】VideoFusion 一站式短视频拼接软件 无依赖,点击即用,自动去黑边,自动帧同步,自动调整分辨率,批量变更视频为横屏/竖屏 项目地址: https://gitcode.com/gh_mirrors/vi/VideoFusion 在数字内容创…...

ESP8266嵌入式JavaScript引擎:零内存分配的确定性JS执行

1. 项目概述 ESP8266-Arduino-JavaScript 是一个面向 ESP8266 平台的轻量级嵌入式 JavaScript 引擎库&#xff0c;其核心目标并非在微控制器上完整复刻 V8 或 SpiderMonkey 的功能&#xff0c;而是为资源受限的 IoT 设备提供一种 可预测、内存可控、无动态分配、零依赖 的脚本…...

小白也能懂:Qwen3-TTS-Tokenizer-12Hz的API调用与Python示例

小白也能懂&#xff1a;Qwen3-TTS-Tokenizer-12Hz的API调用与Python示例 1. 前言&#xff1a;音频编解码器能做什么&#xff1f; 想象一下&#xff0c;你录制了一段重要的会议录音&#xff0c;文件大小有50MB&#xff0c;想通过微信发给同事&#xff0c;却发现超过了文件大小…...

深度 | 电子材料研发(光刻胶/OLED等)迈入智能时代,当电子材料研发进入“GPT时代”,企业该如何重构创新引擎?

【电子材料系列专题1】在半导体、显示、先进封装与电子化学品领域&#xff0c;材料始终决定性能上限。无论是光刻胶、OLED发光材料、封装胶&#xff0c;还是高纯电子特气&#xff0c;随着制程逼近纳米乃至埃米级节点&#xff0c;热力学稳定性、光化学反应精度、流变特征和痕量杂…...

3大技术突破:Sunshine革新家庭游戏串流体验的实战指南

3大技术突破&#xff1a;Sunshine革新家庭游戏串流体验的实战指南 【免费下载链接】Sunshine Sunshine: Sunshine是一个自托管的游戏流媒体服务器&#xff0c;支持通过Moonlight在各种设备上进行低延迟的游戏串流。 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshi…...

亚洲美女-造相Z-Turbo惊艳案例分享:高还原度旗袍/汉服/都市职场风人像生成

亚洲美女-造相Z-Turbo惊艳案例分享&#xff1a;高还原度旗袍/汉服/都市职场风人像生成 最近在玩一个挺有意思的AI模型&#xff0c;叫“亚洲美女-造相Z-Turbo”。这名字听起来有点技术范儿&#xff0c;但说白了&#xff0c;它就是个专门生成亚洲女性人像的AI工具。 你可能用过…...

3分钟掌握Chrome密码提取:ChromePass让你不再遗忘任何登录凭据

3分钟掌握Chrome密码提取&#xff1a;ChromePass让你不再遗忘任何登录凭据 【免费下载链接】chromepass Get all passwords stored by Chrome on WINDOWS. 项目地址: https://gitcode.com/gh_mirrors/chr/chromepass 你是否曾经在登录网站时&#xff0c;明明记得在Chrom…...

YOLOv7剪枝实战:5种高效剪枝方法对比与代码实现

YOLOv7剪枝实战&#xff1a;5种高效剪枝方法对比与代码实现 在目标检测领域&#xff0c;YOLOv7以其卓越的速度-精度平衡成为工业界宠儿。但当我们将模型部署到边缘设备或需要高吞吐量的生产环境时&#xff0c;原始模型的计算量和参数量往往成为瓶颈。这时&#xff0c;模型剪枝技…...

深入浅出ESP32蓝牙HID协议:从报文解析到游戏手柄开发

深入浅出ESP32蓝牙HID协议&#xff1a;从报文解析到游戏手柄开发 在物联网设备与人机交互技术深度融合的今天&#xff0c;蓝牙HID协议已成为连接智能硬件与终端设备的重要桥梁。ESP32作为一款集成Wi-Fi和蓝牙双模通信的微控制器&#xff0c;凭借其出色的性价比和丰富的开发资源…...

紧急通知:2024年Q3起欧盟EDPS已将差分隐私实现纳入DPIA强制审查项——Python开发者必须立即核查的4个代码检查点

第一章&#xff1a;差分隐私合规性背景与EDPS新规解读随着欧盟数据保护监管体系持续演进&#xff0c;欧洲数据保护监督机构&#xff08;EDPS&#xff09;于2024年7月发布《关于匿名化与假名化技术在公共部门应用的指导意见》&#xff0c;首次将差分隐私&#xff08;Differentia…...