#include #include #include #define STB_IMAGE_WRITE_IMPLEMENTATION #include namespace { unsigned char pixels[(GRID_WIDTH * CELL_SCALE * 8) * (GRID_HEIGHT * CELL_SCALE * 8) * 3]; } void glerminal_test_save_image() { // -- DIRTY HACK -- // // GL_TEXTURE_2D is not rebound after setting up screen framebuffer // This code will break if this behavior changes glGetTexImage(GL_TEXTURE_2D, 0, GL_RGB, GL_UNSIGNED_BYTE, pixels); stbi_flip_vertically_on_write(true); stbi_write_png("image.png", GRID_WIDTH * CELL_SCALE * 8, GRID_HEIGHT * CELL_SCALE * 8, 3, pixels, GRID_WIDTH * CELL_SCALE * 8 * 3); }