我可以在一个 MTLRenderCommandEncoder 中使用多个 MTLRenderPipelineStates 吗?

2024-03-01

我目前正在为游戏制作简单的 UI,为了绘制每个按钮,我需要使用 2 个管道状态(每个按钮使用相同的顶点着色器)。一种是使用静态颜色片段着色器绘制边框线带,另一种是使用波纹渐变绘制按钮的内部。我想知道是否需要两个不同的渲染命令编码器,每个管道一个,或者我是否可以执行以下操作:

let encoder = command.makeRenderCommandEncoder(descriptor: renderPassDesc)
encoder.setRenderPipelineState(stateWithStaticFragmentShader)
// encode some buffers and draw line-strips
encoder.setRenderPipelineState(stateWithGradientFragmentShader)
// encode some buffers and draw button background
encoder.endEncoding()

是的,您可以在一个渲染命令编码器中使用多个管道状态。这正是为什么setRenderPipelineState()方法存在,而不是管道状态是渲染通道描述符的一部分。渲染通道描述符中的属性仅在创建渲染命令编码器时读取,并且在该编码器的生命周期内无法更改。编码器上可独立设置的任何内容都可以在其使用寿命期间进行更改。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以在一个 MTLRenderCommandEncoder 中使用多个 MTLRenderPipelineStates 吗? 的相关文章

  • 删除派生数据文件夹后,Xcode 不断重新创建派生数据文件夹

    自动完成功能在 Xcode 6 中不再起作用 我四处搜索 发现删除派生数据文件夹可以解决此问题 每次我删除它时 它都会回来 然后就不会再自动完成了 有什么建议么 Thanks 没关系 我解决了这个问题 我没有声明需要在类内的方法中使用的变量
  • 如何向 UIView 添加大小调整手柄?

    我试图根据用户请求在运行时动态创建视图 UIImageView 和 UITextView 然后允许用户移动它们并调整它们的大小 除了调整大小之外 我的一切都工作得很好 我尝试使用捏合手势识别器 但发现它对于我想要的东西来说太笨拙了 因此 我
  • 对成员“buildBlock()”的引用不明确

    我一直在尝试使用 Swift UI 为 iOS 13 制作一个应用程序 但我不断收到这个奇怪的错误 对成员 buildBlock 的引用不明确 无论我做什么 错误都不会消失 我尝试一次对代码段进行注释 以查看哪一部分可能导致了问题 但唯一有
  • 不明白 Swift 中的闭包示例

    我正在尝试了解 swift 和闭包 我被这个例子困住了 numbers map number Int gt Int in let result 3 number return result 什么是 number Int gt Int 它是一
  • Xcode 10 Beta 5 — clang:错误:链接器命令失败,退出代码为 1

    有人可以帮我吗 我的项目一切正常 但更新到 Xcode10 Beta5 后 尝试在 iPhone 上运行该应用程序时出现此错误 然而模拟器可以工作 请帮助我 我已经对这个问题进行了网络搜索并发现this https stackoverflo
  • iOS 防止计时器 UILabel 在数字变化时“晃动”

    我有一个UILabel它以以下格式显示计时器的输出MM ss SS 分 秒 厘秒 但是随着厘秒宽度的变化 它从左向右 摇动 例如 11 比 33 窄 有什么办法可以减轻这种情况吗 我尝试过将其居中 给它固定的宽度 但它们似乎没有帮助 从iO
  • 检测 AVAudioPlayer 中的播放结束

    我有几个短的 mp3 声音 我将它们存储在数组中 并希望连续播放它们 有什么方法可以检测 AVAudioPlayer 何时停止播放 以便我可以调用完成处理程序并播放下一个声音 我知道有一个委托 但我正在使用 Playground 和 SKS
  • 为什么我不能在 Realm 属性上使用 private

    我正在尝试在 RealmSwift 中存储一个枚举案例 但 Realm 不支持枚举 本文 https medium com it works locally persisting swift enumerations with realm
  • 为什么这个谓词格式会变成 '= nil'

    有人建议这个线程 https stackoverflow com questions 40686005 nspredicate crash after swift 3 migration与我的问题完全相同 但是 我的应用程序没有崩溃 并且我
  • 致命错误:在字典中发现“地理编码地标”类型的重复键。 (Mapbox 地理编码器)

    我引用 这通常意味着要么该类型违反了 Hashable 的要求 要么此类字典的成员在插入后发生了变化 我正在使用 Mapbox Geocoder 当发生此运行时错误时 我的 XCode 将我带到线程 1 0 swift runtime on
  • IPV6 快速可达性

    我是 swift 和 xcode 的新手 并且我的应用程序因 IPV6 而被拒绝 性能 2 1 当我们执行以下操作时 您的应用程序会在运行 iOS 9 3 5 并连接到 IPv6 网络的 iPad 和 iPhone 上崩溃 具体来说 当我们
  • iOS 13 beta 外部屏幕上的 OverscanCompensation

    我正在测试一个应用程序的测试版 但遇到了外部屏幕的问题 我们看到应用程序周围有黑色边框 我们之前可以通过设置来纠正它overscanCompensation to none但在 iOS 13 中 该设置根本没有任何效果 我们曾经看到一个错误
  • 如何防止 RealmSwift 列表中出现重复项?

    如何防止向列表中添加重复项RealmSwift 我有我的User作为领域对象 但真正的数据源是服务器 只是使用领域在本地缓存用户 当我从服务器获取当前用户数据时 我想确保存储在领域中的用户拥有来自服务器的所有播放列表 以及它们的曲目列表等
  • Swift - 选择值后隐藏 pickerView

    我发现了类似的问题 他们的答案很有帮助 但我坚持最后一件事 我试图在点击字段时显示 pickerView 然后选择数据时 我希望 pickerView 隐藏 我可以从 pickerView 获取数据来隐藏 但是 pickerView 后面仍
  • 在另一种语言中使用 dateFormatter [重复]

    这个问题在这里已经有答案了 我正在运行一段返回的代码nil在具有不同语言设置的 iPhone 上运行时 代码示例如下所示 let dateFormatter DateFormatter dateFormatter dateFormat MM
  • Swift 中带圆角的 NSWindow

    我想要一个圆角的窗户 但我在每个角落都有一个白点 Code let effect NSVisualEffectView frame NSRect x 0 y 0 width 0 height 0 effect blendingMode be
  • Swift 中具有透明背景的按钮边框

    我怎样才能做一个UIButton边框看起来像下图 入门 按钮一样具有透明背景吗 我应该如何使用情节提要来实现这一点 或者如何以编程方式实现这一点 设置backgroundColor to clearColor使按钮透明 例如尝试下面的代码
  • 在 UIView 中实现自定义 StaggereGrid,就像 SWIFT 中的 Etsy 应用程序一样

    我想实现一个像 Etsy 应用程序一样的 StaggeredGrid 但我对此一无所知 你能给我一些建议吗 这是我需要做的事情的屏幕截图 None
  • 退出导航控制器

    我试图离开初始视图控制器 并进入空白视图控制器 这很好 但是这会使空白视图控制器也成为导航控制器的一部分 这不是我想要的 我想脱离视图控制器 在视图控制器中 我尝试退出 它会自行弹出 当我尝试视图中的方法时 将出现目标视图控制器 self
  • 在 UIMenuItem 上设置accessibilityLabel

    我正在尝试设置accessibilityLabel of a UIMenuItem而且似乎没有效果 无论如何 VoiceOver 只是读取项目的标题 let foo UIMenuItem title foo action selector

随机推荐

  • Java 8 映射到对象列表,其中一个字段分组为一个列表

    新手问题 我有一个来自数据库的原始 bean 逐行为 public class DataBean private Integer employeeId private String org private String comments C
  • 如何过滤掉文件中所有唯一的行?

    有没有办法通过命令行工具过滤掉文件中的所有唯一行而不对行进行排序 我基本上想这样做 sort u myFile 没有排序的性能影响 删除重复行 awk a 0 file 这是著名的 awk 一行语句 inet 上有很多解释 Here htt
  • 在 testthat 中测试确切的字符串

    我想测试我的函数之一是否给出特定消息 或警告或错误 good lt function message Hello bad lt function message Hello 我希望第一个期望成功 第二个期望失败 library testth
  • NHibernate QueryOver:在子查询中使用 group by 获取行计数

    我试图从带有 group by 的查询中获取计数 但不知道如何将我想要的 SQL 转换为 NHibernate 的 QueryOver 语法 这是 SQL select count from select Email from Entry
  • REGEX - PHP 仅获取字符串中的粗体部分

    我是正则表达式的新手 我有一个像这样的字符串 Hello b ABCD b World or b ABCD b Hello World 我基本上想保留粗体标签内的文本 但删除字符串中的所有其他字符 我找到了删除字符串中粗体部分的代码 str
  • 使用值转换器时如何查询实体框架核心中的实际值?

    我们有一个相当简单的情况 其中 EF Core 实体包含一个我们映射到字符串的值对象 builder Property gt Nummer HasConversion i gt i ToString i gt ZijdeNummer Fro
  • Java获取Referer URI?

    我想要与完全相同的方法获取请求URI http docs oracle com javaee 6 api javax servlet http HttpServletRequest html getRequestURI 28 29 但我想在
  • 有没有什么方法可以让javascript循环休眠?

    例如 有一个 for 循环 我想休眠几秒钟 each para res function index item Sleep 100 我知道我可以使用 setTimeout 或 setInterval 但它们都是异步的 循环将继续 如果我这样
  • 套接字 Python 3.5:套接字服务器在文件接收时永远挂起

    我正在尝试编写一个Python程序 如果客户端连接到服务器 它可以浏览目录并通过套接字抓取文件 浏览部分工作正常 它打印出客户端的所有目录 这是代码的一部分 with clientsocket print Connected to addr
  • 可安装的触发器因测试附加组件而失败

    几天来我一直在努力解决可安装的触发器问题 我的所有研究表明 附加组件应该允许在电子表格中安装可安装的 onEdit 触发器 但我的尝试不断出错 我稍微简化了我的项目代码来举例说明我的问题 错误信息 执行失败 测试加载项尝试执行不允许的操作
  • jQuery UI DatePicker 仅显示年份

    我正在使用 jQuery datepicker 来显示日历 我想知道是否可以使用它来仅显示 Year 而不是完整的日历 NOTE 如果有人反对 为什么我现在回答这个问题 因为我尝试了这篇文章的所有答案 但没有得到任何解决方案 所以我尝试了自
  • Hibernate 和 JDBC 性能? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 对于 Pandas 数据框中的每一行,确定另一列中是否存在列值

    我有一个像这样的熊猫数据框 df pd DataFrame category A B C A category pred A B D A B C D print df category category pred 0 A A 1 B B D
  • 在 Cocoa 应用程序中使用异常处理与 NSError

    大家好 我一直在阅读苹果关于何时 何地 如何使用 NSError 与 try catch finally 的建议 本质上 我的印象是苹果认为最好避免使用异常处理语言结构 除非作为在意外错误情况下停止程序执行的机制 也许有人可以举一个这种情况
  • ggplot2:如果位置=“填充”,则在条形图上添加标签

    我想在a上添加 数字filled条形图 这是标签位于错误位置的图 这是数据框 x0 lt expand grid grp c G1 G2 treat c T1 T2 out c out1 out2 out3 out4 set seed 12
  • Facebook-passport 与 JWT

    我一直在使用Passport在我的服务器上进行用户身份验证 当用户在本地登录 使用用户名和密码 时 服务器会向他们发送JWT它存储在 localstorage 中 并在每次需要用户身份验证的 api 调用时发送回服务器 现在我想支持Face
  • Python zipfile.extract() 不会提取所有文件

    我正在尝试使用此处找到的代码提取压缩文件夹 def unzip source filename dest dir with zipfile ZipFile source filename as zf for member in zf inf
  • Java 中的向上转型/向下转型

    我试图理解 Java 中的向上转型和向下转型 但我对以下场景感到困惑 关于我的代码 如下 首先 为什么当我包含该行时代码无法编译myAnimal bark 第二个 假设我注释掉myAnimal bark 为什么调用myAnimal move
  • PostgreSQL 中带有字符串的 For 循环

    这里我试图连接一个字符串 CREATE FUNCTION looping RETURNS TABLE round text DECLARE i RECORD BEGIN FOR i IN select regexp split to tab
  • 我可以在一个 MTLRenderCommandEncoder 中使用多个 MTLRenderPipelineStates 吗?

    我目前正在为游戏制作简单的 UI 为了绘制每个按钮 我需要使用 2 个管道状态 每个按钮使用相同的顶点着色器 一种是使用静态颜色片段着色器绘制边框线带 另一种是使用波纹渐变绘制按钮的内部 我想知道是否需要两个不同的渲染命令编码器 每个管道一