Updated flake. Started modifying example

This commit is contained in:
Jurn Wubben 2025-07-14 10:11:30 +02:00
parent 828c98ba34
commit ffb6d1369c
4 changed files with 149 additions and 21 deletions

View file

@ -19,7 +19,17 @@
overlays = [devkitNix.overlays.default];
};
in {
devShells.default = pkgs.mkShell.override {stdenv = pkgs.devkitNix.stdenvARM;} {packages = with pkgs; [imagemagick];};
devShells.default =
pkgs.mkShell.override {
stdenv = pkgs.devkitNix.stdenvARM;
} {
packages = with pkgs; [imagemagick];
shellHook = ''
# export DEVKITARM=${pkgs.devkitNix.devkitARM}
# export C_INCLUDE_PATH=$(find $DEVKITARM -type d -name include | tr '\n' ':'):$C_INCLUDE_PATH
# export LIBRARY_PATH=$(find $DEVKITARM -type d -name lib | tr '\n' ':'):$LIBRARY_PATH
'';
};
packages.default = pkgs.devkitNix.stdenvARM.mkDerivation {
name = "somding";
src = ./.;

33
src/class.c Normal file
View file

@ -0,0 +1,33 @@
typedef struct {
uint8_t room;
char subject[20];
int startDate;
int endDate;
C2D_Text classText_static[2];
C2D_Text classText_dynamic[1];
C2D_TextBuf g_static*;
C2D_TextBuf g_dynamic*;
} lesson;
lesson Lesson(
uint8_t room,
char subject[20],
int startDate,
int endDate,
C2D_TextBuf g_static*,
C2D_TextBuf g_dynamic*
) {
char roomStr[8]
sprintf(roomStr, "%d", room);
C2D_TextParse(&g_staticText[0], g_staticBuf, roomStr);
C2D_TextParse(&g_staticText[1], g_staticBuf, subject);
for (int i = 0; i < 3; i++)
C2D_TextOptimize(&g_staticText[i]);
};
void renderLesson(lesson Lesson*, int x, int y);

18
src/lesson.h Normal file
View file

@ -0,0 +1,18 @@
#include <citro2d.h>
typedef struct {
uint8_t room;
char subject[20];
int startDate;
int endDate;
C2D_Text classText_static[2];
C2D_Text classText_dynamic[1];
C2D_TextBuf g_static*;
C2D_TextBuf g_dynamic*;
} lesson;
lesson Lesson(uint8_t room, char subject[20], int startDate, int endDate, C2D_TextBuf g_static*, C2D_TextBuf g_dynamic*);
void renderLesson(lesson Lesson*, int x, int y);

View file

@ -1,28 +1,95 @@
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <3ds.h>
#include <citro2d.h>
int main(int argc, char* argv[])
{
gfxInitDefault();
consoleInit(GFX_TOP, NULL);
static const char *ordinalIndicators[] = {
"st",
"nd",
"rd",
"th"
};
printf("Hello, world!\n");
u32 clrBg;
u32 clrBg2;
u32 clrFg;
C2D_TextBuf g_staticBuf;
C2D_Text g_staticText[3];
C2D_Text g_staticText_hoursEnumerator[9];
// Main loop
while (aptMainLoop())
{
gspWaitForVBlank();
gfxSwapBuffers();
hidScanInput();
static void sceneInit(void) {
g_staticBuf = C2D_TextBufNew(3 * 9);
// g_dynamicBuf = C2D_TextBufNew(4096);
// Your code goes here
u32 kDown = hidKeysDown();
if (kDown & KEY_START)
break; // break in order to return to hbmenu
for (int i = 0; i < 9; i++) {
char str[3];
sprintf(str, "%d%s", i+1, ordinalIndicators[i < 4 ? i : 3]);
C2D_TextParse(&g_staticText[i], g_staticBuf, str);
C2D_TextOptimize(&g_staticText[i]);
};
}
static void colorInit(void) {
clrBg = C2D_Color32(0x1D, 0x23, 0x2A, 0xFF); // #1d232a
clrBg = C2D_Color32(0xFF, 0xFF, 0xFF, 0xFF); // #1d232a
clrBg2 = C2D_Color32(0x19, 0x1E, 0x24, 0xFF); // #191e24
clrFg = C2D_Color32f(0xEC, 0xF9, 0xFF, 0xFF); // #ecf9ff
};
static void sceneExit(void)
{
C2D_TextBufDelete(g_staticBuf);
}
static void sceneRender() {
for (int i = 0; i < 9; i++) {
C2D_DrawText(&g_staticText[i], C2D_AtBaseline | C2D_AlignJustified | C2D_WordWrap | C2D_WithColor, 100.0f, i*15.0f + 50.0f, 0.5f, 0.75f, 0.75f, 200.0f, clrFg);
};
}
int keyHandle() {
u32 kDown = hidKeysDown();
u32 kHeld = hidKeysHeld();
if (kDown & KEY_START)
return 1;
return 0;
}
int main() {
gfxInitDefault();
C3D_Init(C3D_DEFAULT_CMDBUF_SIZE);
C2D_Init(C2D_DEFAULT_MAX_OBJECTS);
C2D_Prepare();
C3D_RenderTarget* top = C2D_CreateScreenTarget(GFX_TOP, GFX_LEFT);
sceneInit();
colorInit();
// Main loop
while (aptMainLoop()) {
hidScanInput();
// Respond to user input
if (keyHandle()) break;
// Render the scene
C3D_FrameBegin(C3D_FRAME_SYNCDRAW);
C2D_TargetClear(top, clrBg);
C2D_SceneBegin(top);
sceneRender();
C3D_FrameEnd(0);
}
// Deinitialize the scene
sceneExit();
C2D_Fini();
C3D_Fini();
gfxExit();
return 0;
}