Question

La documentation implique que vous pouvez utiliser le rendu 3D ou le mode framebuffer, et uniquement pour l’affichage actif. Existe-t-il un moyen de rendre la 3D sur un écran et le framebuffer sur l'autre?

Était-ce utile?

La solution

Eh bien, j'ai entendu dire qu'il existe une fonctionnalité de capture d'affichage qui vous permet de dessiner en 3D sur le sous-moteur (écran du bas); j'ai donc cherché et trouvé un exemple .

Malheureusement, les macros DCAP ne semblent pas documentées. J'ai donc jeté un coup d'œil aux véritables définitions 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)

À mon humble avis, il semble que vous puissiez capturer la 3D, dessinez-la sur le sous-marin et utilisez le tampon de trame sur le principal si vous le souhaitez. Pour pouvoir utiliser le framebuffer sur le sous-moteur, vous devez permuter les écrans avec lcdSwap () .

Autres conseils

Vous n’êtes pas tout à fait sûr de vos besoins, mais l’utilisation de la 3D sur le moteur d’affichage principal laisse le sous-moteur tout entier effectuer des graphiques de type framebuffer (ou tout autre type 2D) (avec un arrière-plan à rotation étendue, par exemple).

Si vous voulez utiliser le mode framebuffer pour capturer la sortie du moteur 3D afin de pouvoir restituer la 3D sur les deux écrans, vous trouverez un exemple dans le dossier exemples de libnds qui fait ceci:

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top