// Copyright (c) 2021 Dominic Masters // // This software is released under the MIT License. // https://opensource.org/licenses/MIT #pragma once #include "../libs.h" /** * Structure detailing information about a texture. * Because we plan to upload the pixels of a texture into the GPU, we don't * store the pixels in memory because we don't need to! */ typedef struct { /** Width (in pixels) of the texture */ int32_t width; /** Height (in pixels) of the texture */ int32_t height; /** Texture ID on the GPU */ GLuint id; } texture_t; /** Information about a single pixel. */ typedef struct { /** RGBA Color values */ uint8_t r, g, b, a; } pixel_t; #define PIXEL_COLOR_WHITE ((pixel_t){ .r = 255, .g = 255, .b = 255, .a = 255 }) #define PIXEL_COLOR_RED ((pixel_t){ .r = 255, .g = 0, .b = 0, .a = 255 }) #define PIXEL_COLOR_GREEN ((pixel_t){ .r = 0, .g = 255, .b = 0, .a = 255 }) #define PIXEL_COLOR_BLUE ((pixel_t){ .r = 0, .g = 0, .b = 255, .a = 255 }) #define PIXEL_COLOR_BLACK ((pixel_t){ .r = 0, .g = 0, .b = 0, .a = 255 }) #define PIXEL_COLOR_TRANSPARENT ((pixel_t){ .r = 0, .g = 0, .b = 0, .a = 0 })