- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
如何使用 OpenGL(在 Windows 7 上)以不同的分辨率和刷新率驱动多个显示器(多显示器)并且仍然能够在设备之间共享纹理?
我有一个多头 GPU。它驱动4个磁头。 (它恰好是 AMD FirePro V7900,以防万一。)头都共享一个“场景”(顶点和纹理数据等),但我想每次在显示器上发生垂直同步时渲染这个场景(每个头本质上是一个不同的视口(viewport))。但要注意的是,不同的头部可能具有不同的刷新率。例如,有些显示器可能为 60Hz,有些可能为 30Hz,有些可能为 24Hz。
当我调用 SwapBuffers
调用 block ,所以我无法判断下一个需要渲染哪个头。我希望得到像 Direct3D9 的 <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/bb205908%28v=vs.85%29.aspx" rel="noreferrer noopener nofollow">IDirect3DSwapChain9::Present</a>
这样的东西与 <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/bb172585%28v=vs.85%29.aspx#D3DPRESENT_DONOTWAIT" rel="noreferrer noopener nofollow">D3DPRESENT_DONOTWAIT</a>
标志,以及相关的D3DERR_WASSTILLDRAWING
返回值。使用这种方法,我可以确定下一个要渲染的头部。通过循环轮询不同的头,直到一个成功。但我不知道 OpenGL 中的等效方法是什么。
我已经发现了 wglSwapIntervalEXT(1)
使用垂直同步。而且我可以在 HDC 之间切换以使用单个 HGLRC 渲染到不同的窗口。但是刷新率的差异让我很困惑。
我不确定如何让单个 HGLRC 以不同的刷新率渲染所有这些显示器。我认为它必须是单个 HGLRC 才能有效地使用共享纹理(和其他资源)...如果我错了请纠正我。如果资源与多个 HGLRC 重复,这对我来说并不有趣,因为我希望这会将我的内存减少到 25%(1 个 GPU 上有 4 个磁头:所以我不想要任何资源的 4 个副本。)
如果需要的话,我对使用多线程的想法持开放态度。
谁能告诉我如何构建我的主循环,以便我可以共享资源但仍然以自己的刷新率和分辨率驱动显示器?
最佳答案
您可以通过共享上下文来共享承载数据的 OpenGL 缓冲区。 Windows 中的调用是名称 wglShareLists
。
使用它,您可以为每个窗口提供在自己的线程中运行的渲染上下文,而所有上下文共享它们的数据。多窗口垂直同步实际上是多线程 OpenGL 有意义的少数情况之一。
关于windows - 具有不同刷新率的 OpenGL 多头 vsync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13351369/
我正在编写一个小应用程序供我自己使用,它将使用公开发布的 RSS 提要。 据我所知,协议(protocol)中没有订阅/发布机制;我需要定期让我的应用程序 HTTP-GET RSS 提要。 如果是这样
我正在使用 requestAnimationFrame 在我的游戏中绘制玩家。其中一名球员比其他人移动得更快。我和他核对了一下,他告诉我他的显示器有 120hz 的刷新率。我假设这意味着 has 可以
我正在使用 onTouch(View arg0, MotionEvent arg1)作为游戏输入。它返回 false 所以它没有被处理。在我运行 4.0.4 的 HTC HD2 上,这足以让播放器足够
是否所有 RSS 提要都支持 HTTP ETags/last-modified header 用于指示提要是否已更新? 对于不包含最后修改标题的提要,确定提要更新频率的最佳方法是什么? 我希望根据每个
几个月来,我一直在将应用程序上传到 Google Play。我已经在我所有的 ~30 个应用程序中添加了 Admob 横幅广告。我将在本月收到第一笔付款,我将在 1 月份收到“大笔”付款(+2000
过去几天我一直在研究 Estimote Beacons。我开始怀疑 iBeacon 的有效性,因为它们在确定 Beacon 位置时存在高延迟。 当您移动 2-3 米时,它需要几秒钟才能找到正确的位置。
我目前正在为我的大学研究项目开发 Android 应用程序。此应用程序应该能够读取附近 GSM 基站的 RSSI 级别。我编写了以下函数,它成功读取了附近小区的 RSSI 电平。我每 200 毫秒调用
代码如下: Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nInd
所以我正在为 DOS 提示符开发老式 ASCII 游戏,你问值得我花时间吗?我想说的是,它是怀旧的。无论如何,自从我重新开始并重新学习如何直接访问屏幕内存以来,我一直享受着很多乐趣,直到最近我的游戏刷
如果我以尽可能高的精度单独使用 CoreLocation,我会每秒或 1Hz 获得一次更新。但是,如果我有一个刷新率为 10Hz 的外部蓝牙连接 GPS 单元,我仍然只会在 1Hz 时收到来自 Cor
我正在研究高速率渲染帧(理想情况下接近最大监视器速率),我想知道是否有人知道我应该在哪个级别开始研究:内核/驱动程序级别(操作系统空间)? X11级? svgalib(用户空间)? 最佳答案 在现代计
我正在创建一个多显示器全屏 DXGI/D3D 应用程序。我正在枚举可用的输出和适配器,以准备创建它们的交换链。 使用 DXGI 的 IDXGIFactory::CreateSwapChain 创建我的
在大多数教程或建议中,60 fps 的值被列为应用程序要达到的最终刷新率。 IE。如果该应用能够以 60 fps 的速度持续提供用户体验,则没有更多改进空间。 但是,对于较新的设备,例如哪些 iPad
我是一名优秀的程序员,十分优秀!