Как можно нарисовать субдисплей ds, как если бы это был кадровый буфер? - PullRequest
1 голос
/ 24 сентября 2011

Мне нужно нарисовать необработанные данные пикселей на «вспомогательном» экране Nintendo DS, например, если бы я рисовал на главном экране в режиме «кадрового буфера» или в режиме «расширенного вращения».Как я могу сделать это с текущей версией libnds (которая, кажется, накладывает ограничения на использование VRAM_C)?

1 Ответ

0 голосов
/ 24 августа 2013

</p> <pre><code>#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-битный буфер кадров на главном и вспомогательном экранах и заполняет каждый красным или синим цветом.

...