gpt4 book ai didi

c - 如何绘制一个 ds 的子显示器,就好像它是一个帧缓冲区一样?

转载 作者:太空宇宙 更新时间:2023-11-04 04:04:43 25 4
gpt4 key购买 nike

我需要将原始像素数据绘制到 Nintendo DS 的“子”屏幕,例如我在“帧缓冲区”模式或“扩展旋转”模式下绘制到主屏幕。我如何使用当前版本的 libnds(它似乎限制了 VRAM_C 的使用)执行此操作?

最佳答案

#include <nds.h>

int main(void)
{
int x, y;

//set the mode to allow for an extended rotation background
videoSetMode(MODE_5_2D);
videoSetModeSub(MODE_5_2D);

//allocate a vram bank for each display
vramSetBankA(VRAM_A_MAIN_BG);
vramSetBankC(VRAM_C_SUB_BG);

//create a background on each display
int bgMain = bgInit(3, BgType_Bmp16, BgSize_B16_256x256, 0,0);
int bgSub = bgInitSub(3, BgType_Bmp16, BgSize_B16_256x256, 0,0);

u16* videoMemoryMain = bgGetGfxPtr(bgMain);
u16* videoMemorySub = bgGetGfxPtr(bgSub);


//initialize it with a color
for(x = 0; x < 256; x++)
for(y = 0; y < 256; y++)
{
videoMemoryMain[x + y * 256] = ARGB16(1, 31, 0, 0);
videoMemorySub[x + y * 256] = ARGB16(1, 0, 0, 31);
}

while(1)
{
swiWaitForVBlank();
}

}

这是一个简单的示例,它在主屏幕和子屏幕上创建一个 16 位帧缓冲区,并用红色或蓝色填充每个缓冲区。

关于c - 如何绘制一个 ds 的子显示器,就好像它是一个帧缓冲区一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7536434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com