问题标签 [eaglview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2226 浏览

iphone - 如何在 iPhone 的 OpenGLES 应用程序中使用手势识别器?

虽然我知道如何在基于视图的应用程序中使用手势识别器,但是当我在基于 OpenGLSE 的应用程序中应用相同的想法时:例如,我添加了一个 TapGestureRecognizer,当我点击 EAGLView 时,它会崩溃。那么任何人都可以在基于 OpenGLES 的应用程序中向我展示 UITapGestureRecognizer 的标准用法吗?

最好的祝愿。

0 投票
1 回答
1124 浏览

iphone - OpenGL 应用程序中的 destroyFramebuffer 方法

在我的 OpenGL 类型的 iphone 应用程序中,我在 GLView 实现下面有这个方法。

我注意到每次我在开发过程中启动应用程序时,我最后一次关闭应用程序时出现的最后一帧会在应用程序开始动画之前先绘制......

但是当我注释掉这个方法时,应用程序会在没有上次的旧结束帧的情况下正常启动。

所以我这里有问题。可能直接用这种方法......有什么想法吗?

(现在我在动画之前得到一个空白的白色屏幕(作为第一帧),所以这里有些不对劲)

下面是“createFrameBuffer”方法的外观(GLView 实现的启动方式是这 3 行):

0 投票
3 回答
3167 浏览

iphone - 为什么我的 EAGLVIew 在 iOS 4.2 中不再呈现?

升级到 iOS SDK 4.2 我在我的应用程序中遇到了一些不当行为(这里询问了另一种行为)。我要请你帮忙的一个关于 OpenGL 视图(EAGLView 子类)的问题,它不再呈现我放入的 3d 模型。

视图已分配,它似乎可以识别手势,但它的内容不可见(我已经检查了它是关于视图,而不是通过着色背景来错位模型:它没有通过着色glClearColor())。

当我双击它时,它会调整大小(它会全屏显示,在此之前它是一个小 UIVIew)调用这个方法:

神奇地模型出现了,甚至背景也被着色了。

我有一个方法可以调整它的大小并使其回到之前的帧和中心位置,当它被调用时,视图再次变为“空”

之前有什么建议吗?(如果需要,我可以发布更多代码)

更新 这发生在模拟器上(目前无法在设备上测试)。如果这是一个公认的错误,有没有人参考 Apple 文档?

更新 2 我使用的是 OpenGL ES 1.1 而不是 2.0。

这是我在 EAGLView 中所做的layoutSubViews

这是我的createFramebuffer

更新 3

如果我创建视图给它全屏帧(320x480)它看起来正确渲染。在某种程度上它与视图尺寸有关

0 投票
1 回答
542 浏览

iphone - EAGLView 的限制

我可以增加 EAGLView 的框架吗(我将 CGRectMake(0,0,320*3,480*3) 设置在 1024 以上,如果我将框架设置在 1024 以上,它在 iOS 4.2 中可以正常工作,但在 iOS 4.1 设备中,如果我将框架设置在 1024 以上,它就不起作用.

更新:我创建了一个示例 openGL 项目,并用以下代码替换了 didFinishLaunchingWithOptions ......它在模拟器中运行良好,但在< IOS 4.2 的设备上没有显示任何内容。

0 投票
1 回答
197 浏览

objective-c - 如何从 ES1Renderer 调用 EAGLView 的方法?

使用标准的 OpenGL ES iPad 模式,我们得到了这样的“结构”。我已经阅读了一些关于委派、协议的内容,但对于这个特定目的仍然没有直接的答案。请赐教。

为什么我需要这个?好吧,所有动作都在 ES1Renderer 中进行[EAGLView setUserInteractionEnabled:true];,例如,我想这样做,这给了我:

“EAGLView”可能不会响应“+setUserInteractionEnabled:”

0 投票
1 回答
454 浏览

iphone - 计算 iphone 的 opengl 游戏中的 FPS ( EAGLView )

我以苹果的崩溃登陆示例为基础,为iphone编写了一些小游戏。现在我想测量我的游戏中的每秒帧数。

我很好奇如何计算每秒的 FPS,任何人都可以帮助我理解或指出任何方法吗?

谢谢。

0 投票
1 回答
633 浏览

objective-c - 如何使用工具栏自动旋转制作 OpenGL ES 模板

几天来,我一直试图弄清楚如何做到这一点,但收效甚微。我已经设法手动处理 NSNotifications,它告诉我视图方向何时发生变化,然后我使用 CGAffineTransformations 将我的工具栏移动到正确的方向。这种工作,但不是很干净。所以我的问题是,如何将工具栏添加到 OpenGL-ES 视图并让它自动旋转?我认为这将涉及创建一个新的 viewController,然后将 OpenGL 视图和工具栏添加到该视图中,但是我没有足够的使用视图和子视图的经验来知道执行此操作的正确方法,或者即使这是正确的方法. 我试过这样做,但失败了。

0 投票
1 回答
2458 浏览

iphone - 在 iOS (iPad / iPhone) 上强制键盘和子视图方向

我们只是将用户输入放入我们的游戏中,以便用户可以输入电子邮件地址等。整个游戏是 Gl,根本没有 iOS UI。EAGLView 不会改变方向,它始终是纵向的,但是游戏是横向的,我们通过相机变换来处理这个问题。

我们想调出 iOS 键盘并为文本输入覆盖一个 UITextView。UITextView 是 EAGLView 的子视图。显然,它和键盘以纵向显示,因为 EAGLView 是纵向的。

无需将 EAGLView 更改为横向,有什么方法可以强制 UITextView 和键盘以横向显示?

如果我确实将 EAGLView 的方向更改为横向以使其正常工作,是否会对性能产生影响?我已经读过好几次了,在默认纵向视图以外的任何地方定位 GL 视图都会对性能造成影响,尽管我找不到任何确凿的证据。

谢谢,

0 投票
2 回答
564 浏览

iphone - 使用 CADisplayLink 强制重绘

我目前正在使用CADisplayLink显示效果很好的 OpenGL 动画。有时,但是参数发生变化,我需要立即重绘视图,不能等到下一帧被CADisplayLink. 如果我不这样做,我会得到一帧错误,这在我的情况下看起来非常糟糕。

那么,我怎样才能在EAGLView不干扰CADisplayLink内容的情况下强制重绘?

0 投票
1 回答
586 浏览

iphone - 在 iPhone 上将 EAGLView 演示文稿与帧调整大小同步

我有一个EAGLView我在动画中调整大小的动画,动画由NSTimer调用绘制函数的动画驱动。当我调整大小时EAGLView,我需要调整视图的投影以保持内容的纵横比。绘制函数如下所示:

但是,像这样运行,EAGLView 的内容似乎在动画“阶梯式”下降。当我记录下来并逐帧查看时,很明显调整了投影,然后在很短的时间内调整了视图的大小(不到一个动画帧)。

我怀疑原因是帧中的更改gameView被推迟了,同时更新的帧缓冲区正在进入屏幕。我曾尝试使用CATransactions让框架更新立即生效,但正如我对 UIView 更改的预期那样,这没有任何作用。我想我可以修改视口​​并保留EAGLView全帧,但我担心这可能会让我在其他地方遇到同步问题(例如,更新任何覆盖的 CALayers)。

这看起来像是对问题的合理评估吗?我怎样才能防止它——也就是说,我怎样才能最好地确保帧缓冲区呈现与 EAGLView(和其他 CA 元素)的实际帧的变化一致?

谢谢!