Initial commit

This commit is contained in:
Nacho
2025-05-24 15:14:47 +02:00
parent 043c4640d0
commit c0e829e4ca
56 changed files with 2611 additions and 1 deletions
+41
View File
@@ -0,0 +1,41 @@
#include "memory.h"
const char* TAG_M = "[MEMORY]";
uint16_t** memory_allocate(uint8_t numSprite, uint8_t width, uint8_t height) {
uint16_t** ptr = (uint16_t**) malloc(numSprite * sizeof(uint16_t*));
if (ptr == NULL) {
printf("%s Memory allocation failed\n", TAG_M);
return NULL;
}
for (uint8_t i = 0; i < numSprite; i++) {
ptr[i] = (uint16_t*) malloc(width * height * sizeof(uint16_t));
if (ptr[i] == NULL) {
printf("%s Memory allocation failed for sprite %d\n", TAG_M, i);
for (uint8_t j = 0; j < i; j++) {
free(ptr[j]);
}
free(ptr);
return NULL;
}
}
printf("%s Allocated %zu bytes at %p\n", TAG_M, numSprite * (width * height * 2), ptr);
return ptr;
}
void memory_free(uint8_t* ptr) {
if (ptr != NULL) {
free(ptr);
ptr = NULL;
} else {
printf("%s Pointer is already NULL\n", TAG_M);
}
}
+18
View File
@@ -0,0 +1,18 @@
#ifndef MEMORY_H
#define MEMORY_H
#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
struct spriteData {
uint8_t width;
uint8_t height;
uint8_t number;
uint16_t** data;
};
uint16_t** memory_allocate(uint8_t numSprite, uint8_t width, uint8_t height);
void memory_free(uint8_t* ptr);
#endif