如果使用多个 EAGLView,则不会绘制纹理

2024-04-25

我在使用Apple EAGLView 和Texture2D 时遇到了一些问题。如果我创建 EAGLView 的实例并绘制一些纹理,效果会很好。但是,每当我创建 EAGLView 的第二个实例时,都不会绘制新视图中的纹理。
作为 OpenGL 的新手,我现在已经完全了解导致此行为的原因。如果有人愿意提供帮助,我创建了一个小项目来重现该行为。该项目可以在以下位置找到:http://www.cocoabeans.se/OpenGLESBug.zip http://www.cocoabeans.se/OpenGLESBug.zip

非常感谢,
蒂姆·安德森

Update
我尝试使用共享组,但我不确定我是否正确使用了它们。然而,它确实稍微改变了行为;现在,它不再仅在第一个实例化视图中绘制纹理,而是在last实例化视图并在其他视图中绘制白色矩形。我不知道这是好是坏,但至少某物现在出现在其他视图中。
这让我发疯,如果有人能帮助我解决这个问题,我将非常感激。我已经更新了该项目http://www.cocoabeans.se/OpenGLESBug.zip http://www.cocoabeans.se/OpenGLESBug.zip以反映变化。

Cheers,
Tim

第二次更新
在尝试了更多的事情之后,问题似乎与Apple的Texture2D类有关,尽管我不确定到底是什么导致了这种行为。我认为最好的办法是编写自己的纹理类(它将帮助我理解 OpenGL 如何处理纹理,这可能会派上用场)。


(尚未下载您的代码。)

如果您只使用两个 EAGLView,则 OpenGL 绘图上下文会有所不同(该基类中的代码创建并拥有 GL 上下文以及渲染/帧/深度缓冲区)。如果您在一个上下文中生成/绑定某些纹理,它们将在另一个上下文中不可用。如果您喜欢使用共享组,您可以共享上下文(有关更多信息,请参阅此问题:如何在 iPhone 上的单独线程上使用 OpenGL ES? https://stackoverflow.com/questions/1253145/how-to-use-opengl-es-on-a-separate-thread-on-iphone)。或者在两个地方定义纹理(如果很小),等等。

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

如果使用多个 EAGLView,则不会绘制纹理 的相关文章

  • valgrind 和 iOS SDK 4.2?

    使用 valgrind 运行 iOS 4 2 应用程序时遇到问题 我从 Macports 安装了 valgrind 3 6 0 SVN Xcode 3 2 5 当我修改 main 以运行 valgrind 时 我得到以下输出 Detecte
  • 如何在自定义按钮单击时通过@selector传递数据?

    我正在通过代码制作一个按钮 我有以下代码行来在单击按钮时触发方法 imagesButton addTarget self action selector photoClicked forControlEvents UIControlEven
  • 用强/弱自我打破保留周期

    我读过关于强 弱的帖子self打破保留周期 但我仍然对它们如何工作感到困惑 我理解使用 weak typeof self weakSelf self创建对自我的弱引用 但我对强引用感到困惑 据我了解 强引用是指对self这样它就不会在块结束
  • 我可以在 iOS 中测量蓝牙信号强度吗?

    Can I 测量信号强度我的 iPhone 范围内的蓝牙设备数量 基本上我想要做的是扫描范围内的设备列表 然后查看哪个设备的信号强度最高 在 iOS 中是否可行 如果可以 我该怎么做 是的 有一种方法可以测量蓝牙低功耗 4 0 的信号强度
  • 如何在目标c中从网络提供商获取用户的当前位置?

    在离线模式下如何获取用户在ios中的当前位置 是否可以通过网络提供商获取位置 我给你完整的解决方案 如果你想实现这一点 你应该使用核心定位框架 第一步 在 h文件中导入CoreLocation框架 import
  • 如何在 iOS 中使用 Dropbox API 用父版本覆盖文件?

    我正在使用 Dropbox API 开发 iOS 应用程序 使用 dropbox API 上传文件时 我只想覆盖同名的现有文件 如何设置父转速以及什么值 谢谢 获取目录中的所有文件 self restclient loadMetadata
  • NSUndoManager 会撤消后台发生的更改吗?

    我有一个编辑视图控制器 我正在使用 NSUndoManager 它是我的持久性存储 核心数据项目 的一组 我的应用程序的功能之一是与外部服务器同步 我想知道的是 如果我正在视图中编辑某些内容 同时应用程序正在与服务器同步 如果我改变主意并决
  • 以编程方式从 uiwebview 获取选定元素?

    目前我正在服用这个示例网站 http www fusioncharts com demos business management dashboard view Default asp并显示在我的网络视图中 网页显示正确 现在我试图弄清楚用
  • iOS UITableViewCellAccessoryCheckmark 在每次滚动时可见

    我有一个列表 我将其用作复选框 我已启用或禁用选择行上的复选标记 但是当我滚动列表时 它会在每 10 行之后标记行 void tableView UITableView tableView didSelectRowAtIndexPath N
  • 使用 Javascript 获取 Mobile Safari 中选定的文本

    因此 我正在开发一个小书签 对于我来说 使用 循环 获取用户选择的内容是理想的选择 window getSelection 和 document getSelection 都是我可以调用的函数 但是它们始终返回空字符串 我相信问题在于 当您
  • 左右并排放置两个 UILabels,而不知道左标签中文本的字符串长度

    在 iPhone fb 应用程序的照片选项卡中 对于每个表格视图单元格 他们都会放置相册标题 后跟相册中的图片数量 例如 第一张专辑 22 最后也是最后的 12 我认为有两个标签 一个用于标题 一个用于数字 因为数字实际上是不同的 UICo
  • 如何在 iPhone 应用程序中播放来自服务器的视频 URL

    实际上 我通过使用从服务器获取一个网址XMLParser 我想在我的应用程序中播放这个视频网址 现在我使用了 MPMoviePlayerController 但它不起作用 请帮忙 XML解析器 m id loadXMLByURL NSStr
  • 将 firebase 框架添加到 ios 项目时出现链接器错误

    我一直在尝试将 firebase 框架添加到我的 ios 应用程序中 我按照这里的说明进行操作 https www firebase com docs ios quickstart html https www firebase com d
  • UIKIT_EXTERN_CLASS 和 UIKIT_EXTERN,这两个常量是什么?

    当我在文档中定义类时 我总是在 interface 之前看到这两件事 UIKIT EXTERN CLASS 和 UIKIT EXTERN 这些常量代表什么以及为什么 Apple 将其放在类之前 另一件事是 有文件 UIKitDefines
  • 加载 UIWebView 时如何使用 UIProgressView?

    我正在开发一个应用程序 我在 UIWebView 中加载 urlrequest 并且它成功发生 但现在我试图在加载过程中显示 UIProgressView 从 0 0 到 1 0 它随着加载进度动态变化 我怎样才能做到这一点 UIWebVi
  • 如何防止 iPhone 4 在添加到主屏幕时截断我的标题?

    我的网页标题很长 当添加到 iPhone 旧版本的主屏幕时 整个标题在确认对话框中可见 当我添加到 iPhone 4 的主屏幕时 标题在第 12 个符号之后被切断 有没有办法阻止这种剪切 让 iPhone 默认显示完整标题 显然会有一个无证
  • ios7 绘图时出现延迟

    我有一个应用程序 在其中我正在视图上绘制一些草图 到目前为止 在我安装之前它运行良好ios7 我的应用程序使用触摸移动方法来识别运动的变化 但是当我画一条线时 触摸方法被调用 但线不会更新 直到我触摸结束ios7 所以画起来有一点点滞后 它
  • iPhone - cancelPerformSelectorWithTarget 不起作用

    如果我在 UIView 的子类中执行此操作 self performSelector selector doSomething withObject nil afterDelay 5 然后像这样取消它 我已经尝试了两个版本 NSRunLoo
  • Coredata错误setObjectForKey:对象不能为nil

    我正在尝试检查我的核心数据存储中是否有任何数据作为我的应用程序的恢复类型 基本上 如果用户处于最终视图 则 coredata 中会有一些数据不断更新 因此 他们处于最终视图中 然后应用程序崩溃 或者他们将其置于睡眠状态 然后应用程序从内存中
  • 尝试将 indexPath 保存到 NSUserDefaults 时出错

    我试图保存 UICollectionView 的索引路径 但出现以下错误 libc abi dylib terminating with uncaught exception of type NSException 我的代码是 保存索引路径

随机推荐

  • 将文件列表传递给 grep

    我有一个文件中的文件列表 该列表很大 并且文件名是非标准的 这意味着 有些文件名包含空格 非 ascii 字符 引号 单引号 所以 通过那个huge不能选择将文件列表作为 grep 参数 因为我不确定我不会超过linux允许的参数长度 我想
  • Debian - /usr/bin/env: 'php\r': 没有这样的文件或目录

    所以当我跑步时 直接讨论问题 yii似乎我从 Debian stretch 中收到了从 Docker 运行的错误 然而当我跑步时 usr bin env php v我得到了正确的输出 没有问题 似乎新行被翻译为字符串时出现问题 我不知道如何
  • 我应该如何存储不同时区事件的数据?

    这是一个概念性问题 因此这里没有代码片段 假设我创建了一个事件数据库 其中一些在纽约 一些在芝加哥 一些在凤凰城 等等 我的服务器的时区设置为纽约 在我看来 为所有这些事件创建 UNIX 时间戳时有两种选择 考虑时区 即 1 月 1 日午夜
  • 查找数组中值最接近的对象

    我需要通过最接近的值获取数组中的对象 让我通过一个例子来解释一下 const data age 52 age 53 age 54 age 60 some data age 66 something else age 72 age 78 ag
  • Robot.delay(int) 与 Thread.sleep(long)

    我有一个程序 其唯一目的是驱动java awt Robot无限循环 直到满足退出条件 机器人快速连续执行多个动作 这需要它们之间有标准的 UI 延迟 为此 我使用java awt Robot setAutoDelay int ms 这似乎正
  • 在冒号后连接行 (perl)

    我有这样的行 alpha beta beta alpha beta omega beta gamma alpha gamma alpha beta gamma epsilon alpha 我想将仅包含一个单词的行加入冒号与不包含冒号的行 a
  • 圆半便士? [复制]

    这个问题在这里已经有答案了 可能的重复 向上舍入最接近的 0 10 https stackoverflow com questions 2206335 round up nearest 0 10 JavaScript 中的数字四舍五入到小数
  • Robolectric 和 Powermock 之间的类加载冲突

    我正在尝试编写一个需要两者的测试机器人电动2 2 和电源模拟 因为被测试的代码依赖于一些 Android 库和第三方库以及我需要模拟的最终类 鉴于我被迫通过以下方式使用 Robolectric 测试运行程序 RunWith Robolect
  • parApply 中的错误处理(在 R 中,使用并行包)

    我正在尝试解决尝试使用时收到的以下消息parApply函数从parallel包裹 Error in unserialize node con error reading from connection 以下是我正在做的事情的模型 c0 lt
  • 使用 Java API 从 Lotus Notes NSF 文件中提取电子邮件

    我想使用 Java API Notes jar 并且正在运行安装了 Lotus Notes 8 5 的 Windows 机器 我对 Lotus Notes 一无所知 我只需要完成一项狭窄的任务 从 NSF 文件中提取电子邮件 我希望能够遍历
  • 使用 Python 将方程渲染为 .png 文件

    我想将方程渲染为 PNG 文件并将它们嵌入到我的库的 HTML 文档中 我已经在其他项目中使用 pylab matplotlib 我还没有找到任何线索http matplotlib sourceforge net users usetex
  • 不懂 C 就开始学习 C#? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 是否建议只了解一点点 C 只是一些基础知识 或什至不了解 C 就直接跳到 C C 和 C 非常不同 它们共享语法 但编程风格却截然不同 学习 C
  • 我可以使用反射在类中添加新字段吗

    如果我有类文字对象 我可以向类添加新字段吗 如何确定该类文字中引用或使用了特定的类 您不能直接向其中添加新字段Class目的 您可以使用第三方 API 来生成或修改类 例如 ASM BCEL 但最好避免使用它们 因为它们会增加很多复杂性 至
  • WebRTC:强制对等点使用 TURN 服务器

    我有一个 webrtc 应用程序 它工作正常 但出于测试目的 我需要测试我的 TURN 服务器是否工作 但因为两个测试设备都在同一网络内 所以我无法测试 认为下面的代码会限制候选人仅那些使用 TURN 服务器的 function onIce
  • 使用 boost asio 枚举我的卡的 ipv4 和 ipv6 地址

    我正在尝试枚举我的电脑的所有网卡 我有 2 张卡 的 ipv4 和 ipv6 地址 我正在使用以下代码来执行此操作 using boost asio ip tcp boost asio io service io service tcp r
  • Pkcs11Interop 从 HSM 读取密钥值

    我正在尝试使用 Pkcs11Interop 从 HSM 中提取密钥的值 我知道 密钥必须留在 HSM 中 但我需要它 所以 我已经用 NCryptoki 做到了 我也想用 Pkcs11Interop 做到这一点 我尝试了这段代码 Prepa
  • 使用 JavaScript 进行分页

    我有一些 html 代码 div class post 里面 我想用 javascript 对它们进行分页 我怎样才能做到这一点 我知道我可以用 PHP 来做 但我只想用 JS 来做 我的 php 生成的 html 看起来像这样 div d
  • openMPI/mpich2 不能在多个节点上运行

    我正在尝试在多节点集群上使用 install openMPI 和 mpich2 但在这两种情况下 我在多台计算机上运行时都遇到问题 使用 mpich2 我可以从头节点在特定主机上运行 但是如果我尝试从计算节点到不同节点运行某些内容 我会得到
  • 如何确定多边形点列表是否按顺时针顺序排列?

    有了一个点列表 如何找到它们是否按顺时针顺序排列 例如 point 0 5 0 point 1 6 4 point 2 4 5 point 3 1 5 point 4 1 0 会说它是逆时针的 或者对某些人来说是逆时针的 对于非凸多边形 例
  • 如果使用多个 EAGLView,则不会绘制纹理

    我在使用Apple EAGLView 和Texture2D 时遇到了一些问题 如果我创建 EAGLView 的实例并绘制一些纹理 效果会很好 但是 每当我创建 EAGLView 的第二个实例时 都不会绘制新视图中的纹理 作为 OpenGL