问题标签 [nsopengl]
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.
objective-c - 在 NSWindow 中绘图
我正在为图形框架开发可可包装器。
为了最终绘制这些东西,我正在这样做:
在 的子类中NSView
。
现在我查看了其他框架,如 Gosu、Irrlicht 等,我发现它们总是在做一些复杂的NSOpenGL
事情,比如:
他们为什么要这么做?我的“简单”方式可以吗?
cocoa - 用于非绘图目的的 NSOpenGLContext
如何NSOpenGLContext
在 Cocoa 中创建一个独立于系统的系统,不是用于绘图,而是用于检索供应商、版本等 OpenGL 信息????
multithreading - 使用 NSOpenGLLayer 从单独的线程中绘制
我正在开发一个应用程序,该应用程序需要以至少等于显示器刷新率的刷新率使用 OpengGL 进行绘制。而且我需要在单独的线程中执行绘图,以便绘图永远不会被激烈的 UI 操作锁定。
实际上,我正在使用 a NSOpenGLView
,CVDisplayLink
并且我能够毫无问题地达到 60-80FPS。
由于我还需要在此视图之上显示一些可可控件,因此我尝试按照LayerBackedOpenGLView Apple 示例进行子类NSOpenGLView
化并使其具有图层支持。
结果并不令人满意,我得到了很多工件。
因此,我已经解决了这个问题,使用单独NSWindow
的可可控件托管并将此窗口添加为包含NSOpenGLView
. 它工作正常,我能够获得与初始实现完全相同的 FPS。
由于我认为这个解决方案很像一个肮脏的黑客,我正在寻找一种替代的、更干净的方式来实现我所需要的。
几天前我遇到了NSOpenGLLayer
,我认为它可以用作解决我的问题的可行解决方案。
所以最后,在所有这些序言之后,我的问题来了:是否可以使用回调NSOpenGLLayer
从单独的线程中绘制到 a ?CVDisplayLink
到目前为止,我已经尝试实现这一点,但我无法从CVDisplayLink
回调中提取。我只能-setNeedsDisplay:TRUE
在回调中执行绘图,然后在NSOpenGLLayer
可可自动调用它时执行绘图。但我想这样我是从主线程中绘制的,不是吗?CVDisplayLink
-drawInOpenGLContext:pixelFormat:forLayerTime:displayTime:
在谷歌搜索之后,我什至发现了这个帖子,其中用户声称在 Lion 下绘图只能发生在里面-drawInOpenGLContext:pixelFormat:forLayerTime:displayTime:
。
我目前在 Snow Leopard 上,但即使在 Lion 上,该应用程序也应该可以完美运行。
我错过了什么吗?
xcode - 在 ScrollView 中嵌入 NSOpenGlViews 不会产生预期的滚动行为
我在滚动视图中嵌入了三个 NSOpenGLView。滚动会产生意外行为。NSOpenGLViews 拒绝被滚动视图的底部剪裁,而是在滚动视图的底部被调整为更小的长度。在某些情况下,NSOpenGlViews 会开始重叠。
objective-c - 带有 NSOpenGLView 的 OpenGL 3.2
如何在 NSOpenGLView 的自定义实现中创建核心配置文件?我应该覆盖哪个方法,应该放什么代码?
到目前为止,我有这个代码:
cocos2d-iphone - cocos2d CCDirectorMac - self.view.openGLContext flushBuffer 上的 SIGABRT
我有一个 cocos2d Mac 应用程序。创建和添加 Sprite 时出现随机崩溃。
基本上我得到了 SIGABRT
在 CCDirectorMac 中。
截图在这里: http ://www.zentralnorden.com/temp/crash0220.png
关于如何解决这个问题的任何建议都是有帮助的。
macos - OpenGL 无法在 macOS Mojave 上渲染
如果您在 macOS Mojave 上创建NSView
和自定义NSOpenGLContext
,则在调整大小之前不会渲染窗口。但是,如果您改用它,一切都会起作用NSOpenGLView
。我看到很多以编程方式调整窗口大小的黑客(http://people.bath.ac.uk/abscjkw/ComputerPrograms/C++programs/OpenGL/MojaveOpenGL.cpp),然后再渲染或调用[NSOpenGLContext update]
两次(https:// github.com/go-gl/glfw/pull/229/commits/9e6129a572227a13ff9acb4904443d2ae7d66e77),但它们看起来真的很老套且不可靠。