Validate parameters

This commit is contained in:
Crayon2000 2024-03-02 00:01:31 -05:00
parent 7559495687
commit d365fdc491
2 changed files with 30 additions and 9 deletions

View file

@ -1,5 +1,5 @@
/*------------------------------------------------------------------------------ /*------------------------------------------------------------------------------
Copyright (c) 2009-2022 The GRRLIB Team Copyright (c) 2009-2024 The GRRLIB Team
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal
@ -31,6 +31,9 @@ THE SOFTWARE.
* @param texdest The texture destination. * @param texdest The texture destination.
*/ */
void GRRLIB_BMFX_FlipH (const GRRLIB_texImg *texsrc, GRRLIB_texImg *texdest) { void GRRLIB_BMFX_FlipH (const GRRLIB_texImg *texsrc, GRRLIB_texImg *texdest) {
if (texsrc == NULL) {
return;
}
const u32 txtWidth = texsrc->w - 1; const u32 txtWidth = texsrc->w - 1;
for (u32 y = 0; y < texsrc->h; y++) { for (u32 y = 0; y < texsrc->h; y++) {
@ -48,6 +51,9 @@ void GRRLIB_BMFX_FlipH (const GRRLIB_texImg *texsrc, GRRLIB_texImg *texdest) {
* @param texdest The texture destination. * @param texdest The texture destination.
*/ */
void GRRLIB_BMFX_FlipV (const GRRLIB_texImg *texsrc, GRRLIB_texImg *texdest) { void GRRLIB_BMFX_FlipV (const GRRLIB_texImg *texsrc, GRRLIB_texImg *texdest) {
if (texsrc == NULL) {
return;
}
const u32 texHeight = texsrc->h - 1; const u32 texHeight = texsrc->h - 1;
for (u32 y = 0; y < texsrc->h; y++) { for (u32 y = 0; y < texsrc->h; y++) {
@ -66,6 +72,9 @@ void GRRLIB_BMFX_FlipV (const GRRLIB_texImg *texsrc, GRRLIB_texImg *texdest) {
*/ */
void GRRLIB_BMFX_Grayscale (const GRRLIB_texImg *texsrc, void GRRLIB_BMFX_Grayscale (const GRRLIB_texImg *texsrc,
GRRLIB_texImg *texdest) { GRRLIB_texImg *texdest) {
if (texsrc == NULL) {
return;
}
for (u32 y = 0; y < texsrc->h; y++) { for (u32 y = 0; y < texsrc->h; y++) {
for (u32 x = 0; x < texsrc->w; x++) { for (u32 x = 0; x < texsrc->w; x++) {
const u32 color = GRRLIB_GetPixelFromtexImg(x, y, texsrc); const u32 color = GRRLIB_GetPixelFromtexImg(x, y, texsrc);
@ -89,6 +98,9 @@ void GRRLIB_BMFX_Grayscale (const GRRLIB_texImg *texsrc,
* @author elisherer * @author elisherer
*/ */
void GRRLIB_BMFX_Sepia (const GRRLIB_texImg *texsrc, GRRLIB_texImg *texdest) { void GRRLIB_BMFX_Sepia (const GRRLIB_texImg *texsrc, GRRLIB_texImg *texdest) {
if (texsrc == NULL) {
return;
}
for (u32 y = 0; y < texsrc->h; y++) { for (u32 y = 0; y < texsrc->h; y++) {
for (u32 x = 0; x < texsrc->w; x++) { for (u32 x = 0; x < texsrc->w; x++) {
const u32 color = GRRLIB_GetPixelFromtexImg(x, y, texsrc); const u32 color = GRRLIB_GetPixelFromtexImg(x, y, texsrc);
@ -112,6 +124,9 @@ void GRRLIB_BMFX_Sepia (const GRRLIB_texImg *texsrc, GRRLIB_texImg *texdest) {
* @param texdest The texture destination. * @param texdest The texture destination.
*/ */
void GRRLIB_BMFX_Invert (const GRRLIB_texImg *texsrc, GRRLIB_texImg *texdest) { void GRRLIB_BMFX_Invert (const GRRLIB_texImg *texsrc, GRRLIB_texImg *texdest) {
if (texsrc == NULL) {
return;
}
for (u32 y = 0; y < texsrc->h; y++) { for (u32 y = 0; y < texsrc->h; y++) {
for (u32 x = 0; x < texsrc->w; x++) { for (u32 x = 0; x < texsrc->w; x++) {
const u32 color = GRRLIB_GetPixelFromtexImg(x, y, texsrc); const u32 color = GRRLIB_GetPixelFromtexImg(x, y, texsrc);
@ -130,6 +145,9 @@ void GRRLIB_BMFX_Invert (const GRRLIB_texImg *texsrc, GRRLIB_texImg *texdest) {
*/ */
void GRRLIB_BMFX_Blur (const GRRLIB_texImg *texsrc, void GRRLIB_BMFX_Blur (const GRRLIB_texImg *texsrc,
GRRLIB_texImg *texdest, const u32 factor) { GRRLIB_texImg *texdest, const u32 factor) {
if (texsrc == NULL) {
return;
}
const int numba = (1 + (factor << 1)) * (1 + (factor << 1)); const int numba = (1 + (factor << 1)) * (1 + (factor << 1));
u32 colours[numba]; u32 colours[numba];
@ -181,6 +199,9 @@ void GRRLIB_BMFX_Blur (const GRRLIB_texImg *texsrc,
*/ */
void GRRLIB_BMFX_Scatter (const GRRLIB_texImg *texsrc, void GRRLIB_BMFX_Scatter (const GRRLIB_texImg *texsrc,
GRRLIB_texImg *texdest, const u32 factor) { GRRLIB_texImg *texdest, const u32 factor) {
if (texsrc == NULL) {
return;
}
const int factorx2 = factor * 2; const int factorx2 = factor * 2;
for (u32 y = 0; y < texsrc->h; y++) { for (u32 y = 0; y < texsrc->h; y++) {
@ -188,9 +209,7 @@ void GRRLIB_BMFX_Scatter (const GRRLIB_texImg *texsrc,
const u32 val1 = x + (int) (factorx2 * (rand() / (RAND_MAX + 1.0))) - factor; const u32 val1 = x + (int) (factorx2 * (rand() / (RAND_MAX + 1.0))) - factor;
const u32 val2 = y + (int) (factorx2 * (rand() / (RAND_MAX + 1.0))) - factor; const u32 val2 = y + (int) (factorx2 * (rand() / (RAND_MAX + 1.0))) - factor;
if ((val1 >= texsrc->w) || (val2 >= texsrc->h)) { if (val1 < texsrc->w && val2 < texsrc->h) {
}
else {
const u32 val3 = GRRLIB_GetPixelFromtexImg(x, y, texsrc); const u32 val3 = GRRLIB_GetPixelFromtexImg(x, y, texsrc);
const u32 val4 = GRRLIB_GetPixelFromtexImg(val1, val2, texsrc); const u32 val4 = GRRLIB_GetPixelFromtexImg(val1, val2, texsrc);
GRRLIB_SetPixelTotexImg(x, y, texdest, val4); GRRLIB_SetPixelTotexImg(x, y, texdest, val4);
@ -209,6 +228,9 @@ void GRRLIB_BMFX_Scatter (const GRRLIB_texImg *texsrc,
*/ */
void GRRLIB_BMFX_Pixelate (const GRRLIB_texImg *texsrc, void GRRLIB_BMFX_Pixelate (const GRRLIB_texImg *texsrc,
GRRLIB_texImg *texdest, const u32 factor) { GRRLIB_texImg *texdest, const u32 factor) {
if (texsrc == NULL) {
return;
}
for (u32 x = 0; x < texsrc->w - 1 - factor; x += factor) { for (u32 x = 0; x < texsrc->w - 1 - factor; x += factor) {
for (u32 y = 0; y < texsrc->h - 1 - factor; y +=factor) { for (u32 y = 0; y < texsrc->h - 1 - factor; y +=factor) {
const u32 rgb = GRRLIB_GetPixelFromtexImg(x, y, texsrc); const u32 rgb = GRRLIB_GetPixelFromtexImg(x, y, texsrc);

View file

@ -37,17 +37,16 @@ THE SOFTWARE.
* - >0 : FileLength. * - >0 : FileLength.
*/ */
int GRRLIB_LoadFile(const char* filename, u8* *data) { int GRRLIB_LoadFile(const char* filename, u8* *data) {
int len;
FILE *fd;
// Open the file // Open the file
if ( !(fd = fopen(filename, "rb")) ) { FILE *fd = fopen(filename, "rb");
if ( fd == NULL ) {
return -1; return -1;
} }
// Get file length // Get file length
fseek(fd, 0, SEEK_END); fseek(fd, 0, SEEK_END);
if ( !(len = ftell(fd)) ) { const int len = ftell(fd);
if ( len == 0 ) {
fclose(fd); fclose(fd);
*data = NULL; *data = NULL;
return 0; return 0;