Compare commits

..

4 Commits

Author SHA1 Message Date
Shylie
ffcafb5160 Print resources contents 2024-05-29 07:28:50 -04:00
Shylie
06e189963e Print directory contents 2024-05-29 07:26:45 -04:00
Shylie
4b13ca2818 Print PWD before running test app 2024-05-29 07:24:48 -04:00
Shylie
cf9ab6c0a1 Add return value for texture loading 2024-05-29 07:16:01 -04:00
4 changed files with 27 additions and 10 deletions

View File

@ -24,9 +24,9 @@ jobs:
- name: Build previous - name: Build previous
run: cmake -S prev -B prev/build -DGLERMINAL_TEST=ON && cmake --build prev/build run: cmake -S prev -B prev/build -DGLERMINAL_TEST=ON && cmake --build prev/build
- name: Generate PNG file for current - name: Generate PNG file for current
run: cd curr/build/tests && XDG_RUNTIME_DIR=$PWD xvfb-run -a ./test-basic run: cd curr/build/tests && ls $PWD/resources && XDG_RUNTIME_DIR=$PWD xvfb-run -a ./test-basic
- name: Generate PNG file for previous - name: Generate PNG file for previous
run: cd prev/build/tests && XDG_RUNTIME_DIR=$PWD xvfb-run -a ./test-basic run: cd prev/build/tests && ls $PWD/resources && XDG_RUNTIME_DIR=$PWD xvfb-run -a ./test-basic
- name: Upload current PNG - name: Upload current PNG
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:

View File

@ -68,7 +68,7 @@ void glerminal_layer_scale(unsigned char layer, float scale);
* @brief Load sprites from a png file * @brief Load sprites from a png file
* @param filename Name of the png file * @param filename Name of the png file
*/ */
void glerminal_load_sprites_file(const char* filename); int glerminal_load_sprites_file(const char* filename);
/** /**
* @brief Load sprites from memory * @brief Load sprites from memory
@ -76,7 +76,7 @@ void glerminal_load_sprites_file(const char* filename);
* @param height height of the atlas in sprites * @param height height of the atlas in sprites
* @param buffer the in-memory atlas * @param buffer the in-memory atlas
*/ */
void glerminal_load_sprites_buffer(unsigned char width, unsigned char height, const unsigned int* buffer); int glerminal_load_sprites_buffer(unsigned char width, unsigned char height, const unsigned int* buffer);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -815,29 +815,41 @@ void glerminal_layer_scale(unsigned char layer, float scale)
GLERMINAL_G->layer_scale(layer, scale); GLERMINAL_G->layer_scale(layer, scale);
} }
void glerminal_load_sprites_file(const char* filename) int glerminal_load_sprites_file(const char* filename)
{ {
if (!GLERMINAL_G) { return; } if (!GLERMINAL_G) { return false; }
bool success = false;
int w, h; int w, h;
stbi_uc* const buffer = stbi_load(filename, &w, &h, nullptr, 4); stbi_uc* const buffer = stbi_load(filename, &w, &h, nullptr, 4);
// verify atlas size is a multiple of CELL_SIZE in each dimension // verify atlas size is a multiple of CELL_SIZE in each dimension
if (w % glerminal::CELL_SIZE == 0 && h % glerminal::CELL_SIZE == 0) if (buffer && w % glerminal::CELL_SIZE == 0 && h % glerminal::CELL_SIZE == 0)
{ {
GLERMINAL_G->load_atlas(w / glerminal::CELL_SIZE, h / glerminal::CELL_SIZE, reinterpret_cast<unsigned int*>(buffer)); GLERMINAL_G->load_atlas(w / glerminal::CELL_SIZE, h / glerminal::CELL_SIZE, reinterpret_cast<unsigned int*>(buffer));
success = true;
} }
stbi_image_free(buffer); stbi_image_free(buffer);
return success;
} }
void glerminal_load_sprites_buffer(unsigned char width, unsigned char height, const unsigned int* buffer) int glerminal_load_sprites_buffer(unsigned char width, unsigned char height, const unsigned int* buffer)
{ {
if (!GLERMINAL_G) { return; } if (!GLERMINAL_G) { return false; }
// verify atlas size is a multiple of CELL_SIZE in each dimension // verify atlas size is a multiple of CELL_SIZE in each dimension
if (width % glerminal::CELL_SIZE == 0 && height % glerminal::CELL_SIZE == 0) if (width % glerminal::CELL_SIZE == 0 && height % glerminal::CELL_SIZE == 0)
{ {
GLERMINAL_G->load_atlas(width / glerminal::CELL_SIZE, height / glerminal::CELL_SIZE, buffer); GLERMINAL_G->load_atlas(width / glerminal::CELL_SIZE, height / glerminal::CELL_SIZE, buffer);
return true;
}
else
{
return false;
} }
} }

View File

@ -2,11 +2,16 @@
#include <test-common.h> #include <test-common.h>
#include <iostream>
namespace namespace
{ {
void init() void init()
{ {
glerminal_load_sprites_file("resources/image.png"); if (!glerminal_load_sprites_file("resources/image.png"))
{
std::cout << "Failed to load texture" << std::endl;
}
for (int i = 0; i < GRID_HEIGHT; i++) for (int i = 0; i < GRID_HEIGHT; i++)
{ {