解决MultisampleFramebufferAPPLE生成INVALID_OPERATION

2024-01-02

我不明白为什么glResolveMultisampleFramebufferAPPLE生成错误 1282(0x0502,GL_INVALID_OPERATION).

设置代码:

glGenFramebuffers(1, &framebuffer);
glBindFramebuffer(GL_FRAMEBUFFER, framebuffer); 

glGenRenderbuffers(1, &colorRenderbuffer);  
glBindRenderbuffer(GL_RENDERBUFFER, colorRenderbuffer);
[context renderbufferStorage:GL_RENDERBUFFER fromDrawable:(id<EAGLDrawable>)self.layer];
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, colorRenderbuffer);

glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_WIDTH, &backingWidth);
glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_HEIGHT, &backingHeight);

GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
if(status != GL_FRAMEBUFFER_COMPLETE) {
    NSLog(@"failed to make complete framebuffer object %x", status);
}

glGenFramebuffers(1, &sampleFramebuffer);
glBindFramebuffer(GL_FRAMEBUFFER, sampleFramebuffer);

glGenRenderbuffers(1, &sampleColorRenderbuffer);
glBindRenderbuffer(GL_RENDERBUFFER, sampleColorRenderbuffer);
glRenderbufferStorageMultisampleAPPLE(GL_RENDERBUFFER, 4, GL_RGBA8_OES, backingWidth, backingWidth);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, sampleColorRenderbuffer);

glGenRenderbuffers(1, &sampleDepthRenderbuffer);
glBindRenderbuffer(GL_RENDERBUFFER, sampleDepthRenderbuffer);
glRenderbufferStorageMultisampleAPPLE(GL_RENDERBUFFER, 4, GL_DEPTH_COMPONENT16_OES, backingWidth, backingWidth);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, sampleDepthRenderbuffer);

渲染代码:

glBindFramebuffer(GL_FRAMEBUFFER, sampleFramebuffer);
glViewport(0, 0, backingWidth, backingHeight);

glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);

GLfloat vertices[] = {
    1.0f, 1.0f, 0.0f,
    2.0f, 4.0f, 0.0f,
    1.0f, 3.0f, 0.0f
};
glColor4f(1.0f, 0.0f, 0.0f, 1.0f);
glVertexPointer(3, GL_FLOAT, 0, vertices);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 3);

glBindFramebuffer(GL_READ_FRAMEBUFFER_APPLE, sampleFramebuffer);
glBindFramebuffer(GL_DRAW_FRAMEBUFFER_APPLE, framebuffer);
glResolveMultisampleFramebufferAPPLE();
NSLog(@"Error: %d", glGetError()); // <<< Here I get 1282

const GLenum discards[]  = { GL_DEPTH_ATTACHMENT };
glDiscardFramebufferEXT(GL_READ_FRAMEBUFFER_APPLE, 1, discards);

glBindRenderbuffer(GL_RENDERBUFFER, colorRenderbuffer);
[context presentRenderbuffer:GL_RENDERBUFFER];

完整源代码可以在 Bitbucket 上找到:https://bitbucket.org/amjaliks/gl2/src https://bitbucket.org/amjaliks/gl2/src


I pass backingWidth两次到glRenderbufferStorageMultisampleAPPLE。因此,我得到了不同大小的渲染缓冲区,这导致INVALID_OPERATION.

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

解决MultisampleFramebufferAPPLE生成INVALID_OPERATION 的相关文章

  • 在完成块中保留循环

    在我的课堂上 我创建了这个方法 void refreshDatasourceWithSuccess CreateDataSourceSuccessBlock successBlock failure CreateDataSourceFail
  • 使用 UItableviewCell 实现 Google 地图

    我正在尝试在 UItableviewCell 组件内实现谷歌地图 我这样做的方法是在原型单元中定义 GMSMapView 然后使用 dequeueReusableCell 方法配置地图单元 但是 我尝试应用的任何更改都会失败 例如添加标记
  • Flutter - 选择 TextFormField 时键盘不显示

    我目前遇到一个问题 当我选择任何一个时 键盘不会出现TextFormFielda 内的小部件Form小部件 这是表单的代码 位于我的内部CreateAccountForm有状态的小部件 import package flutter mate
  • UILocalNotification 在后台 10 分钟后不提示

    In didFinishLaunchingWithOptions调用函数的定时器循环httpRequest每 1 分钟间隔一次 BOOL application UIApplication application didFinishLaun
  • mgwt - 以编程方式改变方向

    是否可以在 gwt mgwt 应用程序中更改强制执行特定的屏幕方向 可以说我希望用户始终以横向模式使用应用程序 这取决于 是作为phonegap应用程序 而不是在浏览器内部 如果您作为 Web 应用程序运行 则不需要t get any co
  • 使用 NSString 进行 UTF8 解码

    我是 Objective C 新手 尝试使用以下示例将格式错误的 UTF8 编码 NSString 转换为格式良好的字符串苹果文档 http developer apple com library mac documentation Coc
  • 如何找到键盘未覆盖的视图部分(UIModalPresenationStyleFormSheet)?

    我有一个视图控制器 显示带有 UITextView 的视图 并且我想在键盘出现时调整视图的大小 以便 UITextView 不会被键盘覆盖 我几乎在所有情况下都可以正常工作 据我所知 仅当视图控制器以 ModalPresentationSt
  • 为什么performSegueWithIdentifier在viewDidLoad中不起作用?

    我试图在视图控制器上调用 viewDidLoad 后立即触发故事板转场 Segue 附加了一个标识符 当从链接到按钮或其他控件的方法内部调用时 它可以正常工作 但它在 viewDidLoad 内部不起作用 它只是默默地失败了 viewDid
  • 从 UIPickerView 的选定行设置 UIButton 的标题

    详细场景是这样的 我使用循环创建 10 个按钮并设置 0 9 的标签 点击每个按钮时 我将调用 UIPickerView 在其中加载来自不同数组的数据 到这里我就得到了预期的结果 但我希望 pickerView 中选定的行应设置为相应按钮的
  • React-native-vision-camera无法访问后面的普通摄像头

    我正在尝试在 iPhone 11 Pro 上使用 普通 相机 我使用反应本机视觉相机 当我运行这段代码时 const devices useCameraDevices const deviceBack devices back consol
  • 在 iPhone 3GS 与 iPhone 4 上为 Mobile Safari 嵌入 HTML5 视频

    我在服务器上的 mp4 文件中有 H 264 AAC 编码的视频 mime 类型的视频 mp4 添加到 Web 服务器 IIS 7 并且我有一个带有视频标签的页面
  • AVAssetExportSession 无法导出从 iCloud 下载的视频

    我正在尝试创建从用户相册中选择的视频的缩小版本 输出的最大尺寸为 720p 因此 在检索视频时 我使用 mediumQualityFormat as the deliveryMode 如果用户设备中不存在原始视频或其中等质量版本 这会导致
  • UIViewControllerAnimatedTransitioning:旋转更改后黑屏片段

    我已经创建了一个视图控制器转换 只要我不更改设备方向 一切都正常 图 1 显示了应有的屏幕 然后我切换到下一个视图控制器 在其中更改方向 现在我回到第一个视图控制器并再次切换方向 然后我得到的结果如图 2 所示 出现黑色边框 请不要介意屏幕
  • iOS 7 上 Safari 浏览器的用户代理

    我只想在带有 Safari 浏览器的 iPhone 和 iPod 中打开我的网站 对于 Chrome Dolphin 等任何其他浏览器 它不应该打开 但目前我从几乎所有设备获得相同的用户代理 对于Safari User Agent Stri
  • 访问目标 c 中的类方法。使用 self 还是类名?

    我正在学习 iOS 编程 并且对以下有关关键字 self 的使用的代码感到困惑 据我了解 self就像Java的this 它指的是当前实例 当我想调用类方法时 通常的方式应该是这样 PlayingCard validSuits 但是侵入实例
  • 如何在代码中编辑约束

    我有一个以 100 开始宽度限制的网页 当用户单击按钮时 我想将约束更改为 200 我试过这个 NSLayoutConstraint constrain NSLayoutConstraint constraintWithItem self
  • iOS:如何知道 reloadData() 已完成其任务?

    我想滚动到给定索引 self boldRowPath 但是当我调试时scrollToRow之前执行reloadData 如何知道reloadData已完成 func getAllTimeEvent self arrAllTimeEvent
  • 在 Swift 中从 Parse 加载图像

    我成功地将数据从 Parse 提取到 swift 中 但我的图像似乎没有按照我的方式工作 在我的 cellForRowAtIndexPath 方法中 我执行以下操作 var event AnyObject eventContainerArr
  • 更改 iOS7 中 UIAlertView 的字体大小

    我想更改alertView中消息文本和标题文本的字体大小 苹果网站上没有任何文档谈到这一点 但苹果在其子类注释中表示 UIAlertView 类旨在按原样使用 请参考以下链接 https developer apple com librar
  • 隐藏选项卡栏项目并对齐其他选项卡项目

    在我的应用程序中 我有 4 个选项卡栏项目 我正在 XIB 文件中添加这 4 个选项卡栏项目 最初我必须显示 3 个选项卡栏项目 同步后我必须在我的应用程序中显示第 4 个选项卡栏项目 因此 为此 我使用以下代码隐藏第四个选项卡栏项目 se

随机推荐

  • 因素级别内的记录计数

    我正在尝试使用从 1 到 n 的连续数字填充表中的字段 或完全创建一个单独的向量 以更容易的为准 其中 n 是共享相同因子级别的记录总数 然后返回到 1对于下一个级别 等等 也就是说 对于这样的表 data lt matrix c rep
  • osmdroid、地图 API v2 和片段

    好的 您可能认为这相对简单 但事实并非如此 我在我的网站上使用开放街道地图 因为数据可以免费使用 编辑和更新 我的项目遵循这个口头禅 除了谷歌 API 使用限制 保存数据限制之外 谷歌地图根本不适合我 至少在网络上是这样 鉴于此 我想我应该
  • 解析云代码新 SDK 包含子类不起作用

    我使用的是旧的解析 SDK 版本 1 5 0 我的函数返回了所有包含的内容 现在我尝试使用最新的 SDK 该函数仅返回主对象 在门和位置上我仅获得 指针 这是代码 Parse Cloud define get gates for user
  • Aurelia,如何进行可选绑定

    Does Aurelia支持可选绑定吗 我在任何地方都找不到这个信息 我遇到的问题是我有一个title可能会也可能不会填充在对象数组中的属性 我用一个repeat for and title bind但如果此属性不是对象数组的一部分 我根本
  • 查找哪个 spring 上下文文件加载了 bean

    它是一个很大的应用程序 并且有多个由 spring 容器加载的 bean xml 文件 有一个 bean 具有相同的 id 以某种方式被覆盖 有没有办法告诉 spring 记录哪个 bean 是从哪个 xml 文件创建的 您可以创建一个Re
  • 制作键盘记录器

    我想在我自己的电脑上制作一个小型键盘记录器 以了解击键如何与 C 配合使用 我在网上找到了一些代码 只是对其进行了一些编辑 尽管我不确定如何做我想做的事情 include stdafx h include
  • 如何在iOS自动布局中为按钮添加等间距和等宽度

    我对 Xcode 中的自动布局约束不熟悉 我有一个像这样的底视图UITabBar with 6 UIButtons 在没有限制的情况下 我将这些按钮与每个按钮的 5 个空格填充对齐 并且每个按钮的宽度为 50 现在 我试图通过使用自动布局来
  • 根据“.”将GL_CODE列拆分为不同的列,而不使用SQL中的函数[重复]

    这个问题在这里已经有答案了 我需要一个查询来根据 将 GL CODE 分成不同的列 作为分隔符 我已附上我已完成的设置的屏幕截图 但在提取第七段后出现错误 请注意 每个元素中的每行的字符串长度并不相同 我使用过的代码 select YEAR
  • 是否有任何工具可以将 SVG 数据转换为 Canvas 友好的输入? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在 android 中限制仅沿 y 轴拖放?

    我试图将拖放运动限制为仅在 Y 轴上 以便用户只能查看视图并将其向上或向下拖动 而不能向左或向右拖动 我现在有两个视图 textView 和 dropZone 的 id 其中一个 textView 设置了触摸侦听器 另一个 dropZone
  • 自上而下的递归方案

    我们能否定义一个递归方案 在不失去任何通用性的情况下 自上而下构造值 而不是自下而上 这将非常有帮助 因为我已经看到很多次首先应用使用递归方案内部定义的函数reverse其输入 清楚地表明需要foldl 就像 从前到后 执行 尽管人们普遍认
  • 经典 ASP - 获取完整的 url 名称

    我想知道是否有人可以帮助我 我有以下 URL 这是动态的 www website com images gal boxes pic004 asp 我如何使用经典 ASP 提取 boxes pic004 部分 Thanks
  • 返回应用程序时取消选择表视图行

    我有一个表格视图 其中一个表格视图单元格打开另一个应用程序 当我返回我的应用程序时 表格视图单元格仍然突出显示 返回应用程序时取消选择表格视图单元格的最佳方法是什么 编辑 问题是 viewWillAppear or viewDidAppea
  • 如何为 UITextField 实现类似 NSLineBreakByTruncatingHead 的功能?

    我需要实现类似的目标NSLineBreakByTruncatingHead for UITextField如此处所示 我们假设原文是 这是无法在 UITextField 内显示的长文本 我需要它像 无法显示在 UITextField 内 但
  • 在 Objective C (Cocoa) 线程中运行 C 代码(适用于 iOS)

    首先 我是一名非常新的 Objective C Cocoa iOS 开发人员 但我以前编写过 C C 应用程序 因此 我设法在我的 iPhone 应用程序中运行 Rabbitmq c http hg rabbitmq com rabbitm
  • Java中数组的使用方法

    我是 Java 新手 我正在阅读如何在 java 中使用数组 它说在java中使用数组你必须遵循三个步骤 即声明数组 创建数组和初始化数组 我明白了但是当我没有遵循上面的所有步骤时 下面的代码如何工作 int array 1234 234
  • 正确保存并更新单选按钮响应 java

    我正在尝试将单选按钮用户响应保存在 Firestore 中的 UID 下 我有两个选择yes and no到这个问题 它仅在用户按下按钮选择一个选项时起作用一次 但如果用户想要更改答案 它不会更新 替换旧响应 我想知道是否有人可以提供帮助
  • Python 长文件名支持在 Windows 中被破坏

    我编写Python脚本来复制文件 不幸的是 由于文件名太长 gt 256 它一直失败 有办法解决这个问题吗 我使用的是 Python 2 5 4 和 Windows XP Cheers Use 以字符串开头的路径 http msdn mic
  • IPv4 和 IPv6 禁止

    如果我想在我的网站上通过 IP 禁止用户 是否可以通过两者来实现IPv4 and IPv6 某些浏览器显然默认使用 IPv4 地址 而其他浏览器 如果有可能 则使用 IPv6 地址 因此 如果我通过某人当前的 IP 对其进行禁止 他们只需使
  • 解决MultisampleFramebufferAPPLE生成INVALID_OPERATION

    我不明白为什么glResolveMultisampleFramebufferAPPLE生成错误 1282 0x0502 GL INVALID OPERATION 设置代码 glGenFramebuffers 1 framebuffer gl