Frage

Die Dokumentation bedeutet, dass Sie entweder 3D-Rendering oder Framebuffer-Modus haben kann, und jeder nur auf das aktive Display. Gibt es eine Möglichkeit 3D zu einem Bildschirm und Framebuffer zum anderen zu machen?

War es hilfreich?

Lösung

Nun, ich habe gehört, dass es Display-Capture-Funktionalität, die Sie auf dem sub-Engine (unterer Bildschirm) zeichnen 3D läßt so sah ich es und ich fand ein Beispiel .

Leider sind die DCAP Makros scheint nicht dokumentiert zu werden, so hatte ich einen Blick auf die realen definiert nds / ARM9 / video.h :

// Display capture control

#define REG_DISPCAPCNT        (*(vu32*)0x04000064)
#define REG_DISP_MMEM_FIFO  (*(vu32*)0x04000068)

#define DCAP_ENABLE    BIT(31)
#define DCAP_MODE(n)   (((n) & 3) << 29)
#define DCAP_DST(n)    (((n) & 3) << 26)
#define DCAP_SRC(n)    (((n) & 3) << 24)
#define DCAP_SIZE(n)   (((n) & 3) << 20)
#define DCAP_OFFSET(n) (((n) & 3) << 18)
#define DCAP_BANK(n)   (((n) & 3) << 16)
#define DCAP_B(n)      (((n) & 0x1F) << 8)
#define DCAP_A(n)      (((n) & 0x1F) << 0)

Um meinen schwachen Geist sieht es aus wie Sie 3D erfassen können, ist es auf dem Unter ziehen und die Rahmenpuffer auf dem Haupt verwenden, wenn Sie möchten. Um den Framebuffer auf dem Sub-Engine verwenden werden Sie brauchen, um die Bildschirme mit lcdSwap() tauschen.

Andere Tipps

Nicht ganz sicher, was Sie brauchen, ist aber 3D auf dem Hauptdisplay Motor Verwendung bleibt aber den gesamten Unter Motor Framebuffer (oder jeden anderen 2D) Typen Grafiken zu tun (mit einem erweiterten Dreh Hintergrund zum Beispiel).

Wenn Sie meinen, den Framebuffer-Modus verwenden, um Ausgaben zu erfassen vom Motor 3D, so dass Sie 3D auf beiden Bildschirme machen können, dann gibt es ein Beispiel, in dem libnds Beispielen Ordner, die genau dies tut:

http://libnds.devkitpro.org/a00035.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top