mirror of
https://github.com/nacabaro/nacapet.git
synced 2026-10-01 23:51:38 +00:00
Initial commit
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user