在 DS 上结合 3D 和帧缓冲模式
该文档暗示您可以使用 3D 渲染或帧缓冲模式,并且每种模式仅适用于活动显示器。 有没有办法将 3D 渲染到一个屏幕,将帧缓冲区渲染到另一个屏幕?
The documentation implies that you can either have 3D rendering or framebuffer mode, and each only to the active display. Is there any way to render 3D to one screen and framebuffer to the other?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
嗯,我听说有显示捕获功能,可以让你在子引擎(底部屏幕)上绘制 3D,所以我查了一下,发现了一个 示例。
遗憾的是,
DCAP
宏似乎没有记录,所以我查看了真正的定义nds/arm9/video.h:在我软弱的头脑中,它看起来像您可以捕获 3D,将其绘制在子系统上,并根据需要使用主系统上的帧缓冲区。 为了能够在子引擎上使用帧缓冲区,您需要使用
lcdSwap()
交换屏幕。Well I've heard that there is display capture functionality that lets you draw 3D on the sub engine (bottom screen) so I looked it up and I found an example.
Sadly the
DCAP
macros doesn't seem to be documented, so I had a look at the real defines nds/arm9/video.h:To my feeble mind it looks like you can capture 3D, draw it on the sub and use the frame buffer on the main if you want to. To be able to use the framebuffer on the sub engine you'll need to swap the screens with
lcdSwap()
.不完全确定您的需求是什么,但在主显示引擎上使用 3D 仍然会让整个子引擎执行帧缓冲区(或任何其他 2D)类型图形(例如使用扩展旋转背景)。
如果您打算使用帧缓冲区模式捕获 3D 引擎的输出,以便可以将 3D 渲染到两个屏幕,那么 libnds 示例文件夹中有一个示例可以实现此目的:
http://libnds.devkitpro.org/a00035.html
Not entirely certain what your need is but utilizing 3D on the main display engine still leaves the entire sub engine to do framebuffer (or any other 2D) type graphics (using an extended rotation background for instance).
If you mean to use the framebuffer mode to capture output from the 3D engine so you can render 3D to both screens then there is an example in the libnds examples folder which does just this:
http://libnds.devkitpro.org/a00035.html