Как бы нарисовать субдисплей ds, как если бы это был кадровый буфер?
Мне нужно нарисовать необработанные данные пикселей на "вспомогательном" экране Nintendo DS, например, если бы я рисовал на главном экране в режиме "кадрового буфера" или в режиме "расширенного вращения". Как я могу сделать это с текущей версией libnds (которая, кажется, накладывает ограничения на использование VRAM_C
)?
1 ответ
#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-битный буфер кадров на главном и вспомогательном экранах и заполняет каждый красным или синим цветом.