全屏纹理 iPhone OpenGL ES

2023-12-31

我知道 iPhone 上的 OpenGL 纹理需要是 2 的幂,OpenGL 2.0 也是如此吗?如果我有一个尺寸为 320 x 480 的图像并且想要将其全屏绘制,是否有任何可能的方法可以使用 OpenGL 来完成此操作。

Thanks


NPOT 纹理are在 PowerVR SGX 硬件上受支持,但有限制。 NPOT 纹理不能使用 mipmap,必须是 2D(无立方体贴图或 3D 纹理)并且必须使用GL_CLAMP_TO_EDGE用于两个维度的纹理包裹; OpenGL ES 2.0 和 ES 1.1 中的扩展默认支持此功能GL_APPLE_texture_2D_limited_npot

对于 ES 1.1,您可以在运行时检查此扩展是否存在于此代码中:

const char* extensions = (char*) glGetString(GL_EXTENSIONS);
bool npot = strstr(extensions, "GL_APPLE_texture_2D_limited_npot") != 0;

由于这只存在于 SGX 而不是 MBX,请注意依赖 NPOT 纹理支持将限制您使用较新的 SGX 设备。当然,依赖 ES 2.0 也会做同样的事情,所以如果这是您的预期目标,那么 NPOT 支持是一个没有实际意义的问题,您可以继续使用 NPOT 纹理。

这是一个替代解决方案,可让您继续使用 ES 1.1 并保留完整的设备支持。将 320x480 纹理放入 512x512 中,用其他背景图块、字形或其他将同时绘制的纹理填充空白(以避免多个glBindTexture调用),然后使用我最喜欢的 ES 1.1 扩展之一,GL_OES_draw_texture,将 320x480 部分快速复制到视口上:

int rect[4] = {0, 0, 480, 320};
glBindTexture(GL_TEXTURE_2D, texBackground);
glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_CROP_RECT_OES, rect);
glDrawTexiOES(0, 0, z, 480, 320);

侧边栏:OpenGL ES 2.0 规范本身没有指定对 NPOT 纹理的任何限制;除非我弄错了,否则 Apple 正在施加限制 - 当然,在 ES 1.1 世界中,NPOT 支持根本不存在,因此它是一个补充。

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

全屏纹理 iPhone OpenGL ES 的相关文章

  • UITableViewCell 的 viewDidAppear

    我通常使用viewDidAppear方法在视图完成出现后在视图上执行一些 UI 操作 我在各种情况下使用了此方法 它非常有用 但是 我需要在视图上进行一些 UI 更改UITableViewCell当它完成出现后 SDK中是否有任何可用的方法
  • 在 iOS 中从 ACAccountStore 获取 Facebook uid?

    您好 我想获取 Facebook 用户的 UIDAC帐户商店在 iOS 6 中 self accountStore ACAccountStore alloc init ACAccountType FBaccountType self acc
  • 无法从 iOS 中的框架访问 .nib(XIB) 文件

    我已经从现有的代码库中创建了一个框架 并尝试在新的代码库中使用它 这很好用 但是当我尝试访问属于我的框架包的一部分的 nib 文件时 我的应用程序崩溃了 这是我用来访问视图控制器 XIB 文件的代码 testViewController c
  • 将静态库合并为单个

    如何将静态库合并为一个 我确实有三个静态库 libSignatureLibary armv6 a libSignatureLibary armv7 a 和 libSignatureLibary i368 a 现在我想将这三个文件合并到一个库
  • NSString stringWithContentsOfFile 失败,错误代码似乎错误

    我正在尝试将文件加载到字符串中 这是我正在使用的代码 NSError error nil NSString fullPath NSBundle mainBundle pathForResource filename ofType html
  • 如何开始复杂级别的跨平台移动应用开发? [关闭]

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

    我刚刚听说 iPhone 本身无法进行双倍操作 从而使它们比常规浮动慢得多 这是真的 证据 我对这个问题很感兴趣 因为我的程序需要高精度计算 而且我将不得不在速度上妥协 iPhone 可以在硬件中执行单精度和双精度算术 在 1176 原始
  • iOS:生成pdf时绘制文本时如何设置字体?

    我在ios应用程序中使用drawpdf函数生成pdf 同时调用nsobject类中的drawtext函数 它根据我指定的框架和字符串清楚地绘制文本 我的代码是 void drawText NSString textToDraw inFram
  • 贴纸包会在模拟器上使 iMessage 崩溃,但在 iPhone 上不会崩溃

    按照 Apple 的在线说明和视频在 Xcode 中创建了一个贴纸包 所有图像的尺寸均正确且远低于文件大小阈值 如果我在我的实体 iPhone 上构建并运行贴纸包 一切都会完美运行 如果我在模拟器上构建并运行贴纸包 对于任何模拟的 iPho
  • 在 appdelegate 中呈现多个模态视图

    我想在应用程序收到 application UIApplication application didReceiveRemoteNotification NSDictionary userInfo 中的每个推送消息后呈现一个 modalvi
  • 如果我使用自定义 UITableViewCell,是否需要设置 heightForRowAtIndexPath?

    如果我使用自定义 UITableViewCell 是否需要设置 heightForRowAtIndexPath 在我的 NIB 中 我已经设置了单元高度 当我覆盖 heightForRowAtIndexPath 时 单元格的内容不会出现 即
  • 更改 NSMutableAttributedString 中链接的颜色

    我有以下代码 但我的链接始终是蓝色的 我如何改变它们的颜色 string addAttribute NSLinkAttributeName value tag range NSMakeRange position length string
  • CAShapeLayer 上的渐变颜色效果

    我正在尝试在 CAShapeLayer 上应用渐变颜色 为此我编写代码 void addCircle Drawing code UIBezierPath aPath UIBezierPath bezierPathWithArcCenter
  • UIWebView:在 Safari 中打开一些链接,一些在视图中打开

    我的应用程序具有在 UIWebView 中呈现的内容 出于文本格式原因 内容中有一些链接 其中一些链接应在移动 Safari 中打开其目标 而其他链接则应在内容中导航 到目前为止 我已经使用 UIWebView 委托捕获了链接请求 在我的实
  • CSS 安全区域属性在 iPhone X 上不起作用

    就我而言 我正在 iPhone X 上运行一个 Web 应用程序 我尝试在顶部添加一个填充 以使用 Webkit 的安全区域 css 属性将我的身体推到安全区域padding top constant safe area inset top
  • 使用 HTTP NSURL 创建 AVAsset

    我正在尝试合并两个NSURLs包含视频参考 其中一个 URL 指向 AWS 上的视频 另一个 URL 指向本地存储的视频 我的导出代码有效 因为我已经尝试使用两个本地视频 但每当我尝试合并 HTTP url 和本地 url 时 我都会收到此
  • 在 XCode 中本地化 HTML 文件

    我有一个本地化的 iOS 应用程序 我希望在其中包含一些本地化的 HTML 文件 我不知道该怎么做 目前 我的文件夹结构如下所示 myapp en lrproj Localizable strings fr lrproj Localizab
  • 获取动画滚动视图的当前位置

    我遇到了以下问题 我对 uiscrollview 进行了子类化 其中 contentOffset 通过以下代码进行动画处理 UIView animateWithDuration 1 0 delay 1 0 options options a
  • Quartz 2D/OpenGLES 图像上的几何变形(最好使用 CGImage)

    实现诸如收缩 鱼眼等几何变形的首选方法是什么 使用iPhone SDK 我知道 OSX 的 Core Image 库内置了所有这些类型的过滤器 但 iPhone SDK 没有 我可以在给定原始源位图数据的特定位置和半径处创建位移图 但我不确
  • 为 UISlider 设置刻度线

    有没有为 UISlider 设置刻度线的方法 NSSlider 有一个叫做 void setNumberOfTickMarks NSInteger numberOfTickMarks 但 UISlider 似乎没有 我想要做的是将滑块值设置

随机推荐

  • 使用 WaitForMultipleObjects 等待多个线程

    我正在使用WaitForMultipleObjects函数等待多个线程的完成 但我做错了什么 因为结果不是预期的 请参阅此示例代码 type TForm1 class TForm Memo1 TMemo Button1 TButton pr
  • teamcity 构建项目无法启动 MSBuild.exe。路径中存在非法字符

    我正在尝试在 teamcity 中构建一个项目 它将执行 TFS 的签出 并且文件位于构建服务器本地 如果我在服务器上手动运行构建命令 它会起作用 C WINDOWS Microsoft NET Framework v4 0 30319 m
  • 如何在 Ruby 中修复这个多行正则表达式?

    我的 Ruby 正则表达式在多行模式下无法正常工作 我正在尝试将 Markdown 文本转换为 Redmine 中使用的 Textile eque 标记 问题出在我用于转换代码块的正则表达式中 它应该找到任何以 4 个空格或制表符开头的行
  • Bitbucket git 凭证(如果已通过 Google 注册)

    我在 bitbucket org 上有一个帐户 是通过使用我的 Google 帐户注册创建的 现在 每次登录时 我只需单击 使用 Google 登录 即可 如何从 git 命令行访问我的存储库 它要求我输入用户名和密码 我有用户名 但没有密
  • python multiprocessing - 将子进程日志发送到在父进程中运行的GUI

    我正在编写的一些分析代码之上构建一个接口 用于执行一些 SQL 并处理查询结果 我想向用户公开此分析代码中围绕许多事件的日志记录 因为分析代码运行时间相当长 并且因为我不希望 UI 阻塞 所以到目前为止我已经通过将分析函数放入其自己的线程中
  • 类型“boolean”不可分配给类型“ObservableInput<{}>”

    我正在开发 Angular 6 项目 我正在为我的routeGuards 使用 canDeactivate 并使用弹出窗口来显示路线留下消息 但问题出在我的价格表守卫服务上悬停 flatMap isAllow gt Error 类型 isA
  • 让文本穿过 div

    好的 这是一项调查 其中 div 是图表 就像您在 Facebook 上看到的那样 基本上 div style border 1px solid black width 300px div style width 100px This te
  • 通过 google play 更新应用程序时下载内容?

    所以这是我第一次发送我的应用程序的更新 我不知道通过 google play 更新应用程序时实际会发生什么 以下是一些我无法得到答案的问题 实际更新了什么以及这个过程如何工作 即更新完成时的方法或回调 共享首选项文件会发生什么情况 名称值对
  • 属性或枚举或静态最终

    当涉及到在名称 值对中声明预定义常量时 我 一直在 java util Properties enums 或具有 public static final 值的单独类之间随机选择 为了供将来参考 我需要一些关于采取哪种方法的指南 Thanks
  • MSDN 上的 101 LINQ 示例中的这段代码是否存在错误? (更新:已修复)

    NOTE 查理 卡尔弗特 https stackoverflow com users 253576 ccalvert下面回复说 101 个 LINQ 示例现已更新为正确的代码 MSDN Visual C 开发人员中心有一个名为101 个 L
  • 任务中的基本容器已退出

    我正在尝试使用 aws ecs 配置我的 docker hub 映像 我在运行任务时创建了存储库 集群和任务 但在任务退出 1 中收到错误作为基本容器 在尝试获取确切的错误详细信息时 我发现我的一些变量显示为未配置 找到错误所附的屏幕截图
  • 如何删除旧的订阅

    我有 3 年的订阅 我只想删除 2 年未使用的旧订阅和孤儿订阅 下面的脚本显示了所有订阅 计划 创建时间 上次执行时间 对于缺乏归属表示歉意 您可以使用它来查找要转储的订阅位置 并使用 Kavins 指示手动删除它们 SSRS SUbscr
  • 如何使用 sympy 定义条件函数?

    我希望能够定义一个表达式 该表达式获取定义变量的所有值并将表达式计算为0当它没有定义时 与此类似 import numpy as np import sympy as sp def expr k1 k2 x y sp symbols x y
  • VB.NET - 计算两个日期之间的天数(排除)

    我正在尝试计算两个日期之间的天数 不包括星期六 and Sundays 到目前为止我已经写了这段代码 Dim startDay As Integer Dim endDay As Integer Dim days As Integer Dim
  • Elastic Search 匹配短语查询 -> 输出不可预测

    示例文档 id 5 title Quick Brown fox jumps over the lazy dog genre fiction Mapping movies mappings properties genre type text
  • Jupyter Notebook 和之前的输出

    有什么方法可以在不重新运行程序的情况下查看以前的输出吗 例如 我让机器学习算法过夜 早上我就得到了结果 但是 由于某种原因 当我在原始代码上按 Enter 时 它再次开始运行 原始输出消失了 输出存在于特定的上下文中 即单元 并且只要内核仍
  • 什么事件捕获 DataGridViewCell 中组合框中的值更改?

    我想在 a 中的值发生更改时处理该事件ComboBox in a DataGridView cell 有的是CellValueChanged事件 但直到我单击事件内的其他位置后 该事件才会触发DataGridView 一个简单的ComboB
  • ggplot:同时通过“geom_rect”排列因子顺序并突出显示区域

    首先 指定分类变量顺序的方法ggplot是重新排序它的级别data frame 其次 要在我们可以使用的任何绘图上突出显示一个区域geom rect 这里需要注意的是 不要将数据传递给geom rect 否则它不允许我们设置alpha 因此
  • 在 Haskell 中操作元组

    我是 Haskell 的新手 我有一个关于元组的问题 难道就没有遍历元组的方法吗 我知道使用列表进行遍历非常容易 但是如果输入作为元组给出 是否没有办法像使用列表一样检查整个元组 如果不是这种情况 是否可以将元组中的值提取到列表中并以这种方
  • 全屏纹理 iPhone OpenGL ES

    我知道 iPhone 上的 OpenGL 纹理需要是 2 的幂 OpenGL 2 0 也是如此吗 如果我有一个尺寸为 320 x 480 的图像并且想要将其全屏绘制 是否有任何可能的方法可以使用 OpenGL 来完成此操作 Thanks N