문제

문서는 3D 렌더링 또는 프레임 버퍼 모드를 가질 수 있고 각각 활성 디스플레이에만 가능 함을 의미합니다. 3D에서 한 화면으로 렌더링하고 프레임 버퍼를 다른 화면으로 렌더링하는 방법이 있습니까?

도움이 되었습니까?

해결책

글쎄, 나는 서브 엔진 (하단 화면)에 3D를 그릴 수있는 디스플레이 캡처 기능이 있다고 들었습니다. 예시.

슬프게도 DCAP 매크로는 문서화되지 않은 것 같아서 실제 정의를 살펴 보았습니다. 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)

내 연약한 마음에 3D를 캡처하고 서브에 그려 원하는 경우 메인의 프레임 버퍼를 사용할 수있는 것처럼 보입니다. 서브 엔진에서 프레임 버퍼를 사용할 수 있으려면 화면을 lcdSwap().

다른 팁

당신의 필요가 무엇인지 확실하지는 않지만 메인 디스플레이 엔진에서 3D를 활용하면 여전히 전체 서브 엔진이 프레임 버퍼 (또는 다른 2D) 유형 그래픽 (예 : 확장 된 회전 배경 사용)을 수행합니다.

프레임 버퍼 모드를 사용하여 3D 엔진에서 출력을 캡처하여 두 화면으로 3D를 렌더링 할 수 있으면 Libnds 예제 폴더에 다음을 수행하는 예제가 있습니다.

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top