various fixes for clang

also fix a comment typo
This commit is contained in:
Sean Barrett 2019-02-25 11:10:54 -08:00
parent 5715e6faaf
commit 5fe7fb52f2
5 changed files with 22 additions and 32 deletions

View File

@ -163,20 +163,21 @@ int stb_div_floor(int v1, int v2)
#ifdef C_INTEGER_DIVISION_FLOORS #ifdef C_INTEGER_DIVISION_FLOORS
return v1/v2; return v1/v2;
#else #else
if (v1 >= 0 && v2 < 0) if (v1 >= 0 && v2 < 0) {
if ((-v1)+v2+1 < 0) // check if increasing v1's magnitude overflows if ((-v1)+v2+1 < 0) // check if increasing v1's magnitude overflows
return -stb__div(-v1+v2+1,v2); // nope, so just compute it return -stb__div(-v1+v2+1,v2); // nope, so just compute it
else else
return -stb__div(-v1,v2) + ((-v1)%v2 ? -1 : 0); return -stb__div(-v1,v2) + ((-v1)%v2 ? -1 : 0);
if (v1 < 0 && v2 >= 0) }
if (v1 != INT_MIN) if (v1 < 0 && v2 >= 0) {
if (v1 != INT_MIN) {
if (v1-v2+1 < 0) // check if increasing v1's magnitude overflows if (v1-v2+1 < 0) // check if increasing v1's magnitude overflows
return -stb__div(v1-v2+1,-v2); // nope, so just compute it return -stb__div(v1-v2+1,-v2); // nope, so just compute it
else else
return -stb__div(-v1,v2) + (stb__mod(v1,-v2) ? -1 : 0); return -stb__div(-v1,v2) + (stb__mod(v1,-v2) ? -1 : 0);
else // it must be possible to compute -(v1+v2) without overflowing } else // it must be possible to compute -(v1+v2) without overflowing
return -stb__div(-(v1+v2),v2) + (stb__mod(-(v1+v2),v2) ? -2 : -1); return -stb__div(-(v1+v2),v2) + (stb__mod(-(v1+v2),v2) ? -2 : -1);
else } else
return v1/v2; // same sign, so expect truncation return v1/v2; // same sign, so expect truncation
#endif #endif
} }

View File

@ -168,7 +168,7 @@ RECENT REVISION HISTORY:
// If compiling for Windows and you wish to use Unicode filenames, compile // If compiling for Windows and you wish to use Unicode filenames, compile
// with // with
// #define STBI_WINDOWS_UTF8 // #define STBI_WINDOWS_UTF8
// and pass utf8-encoded filenames. Call stbiw_convert_wchar_to_utf8 to convert // and pass utf8-encoded filenames. Call stbi_convert_wchar_to_utf8 to convert
// Windows wchar_t filenames to utf8. // Windows wchar_t filenames to utf8.
// //
// =========================================================================== // ===========================================================================

View File

@ -1061,8 +1061,9 @@ stbte_tilemap *stbte_create_map(int map_x, int map_y, int map_layers, int spacin
void stbte_set_background_tile(stbte_tilemap *tm, short id) void stbte_set_background_tile(stbte_tilemap *tm, short id)
{ {
int i; int i;
STBTE_ASSERT(id >= -1 && id < 32768); STBTE_ASSERT(id >= -1);
if (id >= 32768 || id < -1) // STBTE_ASSERT(id < 32768);
if (id < -1)
return; return;
for (i=0; i < STBTE_MAX_TILEMAP_X * STBTE_MAX_TILEMAP_Y; ++i) for (i=0; i < STBTE_MAX_TILEMAP_X * STBTE_MAX_TILEMAP_Y; ++i)
if (tm->data[0][i][0] == -1) if (tm->data[0][i][0] == -1)
@ -1222,7 +1223,8 @@ void stbte_set_tile(stbte_tilemap *tm, int x, int y, int layer, signed short til
{ {
STBTE_ASSERT(x >= 0 && x < tm->max_x && y >= 0 && y < tm->max_y); STBTE_ASSERT(x >= 0 && x < tm->max_x && y >= 0 && y < tm->max_y);
STBTE_ASSERT(layer >= 0 && layer < tm->num_layers); STBTE_ASSERT(layer >= 0 && layer < tm->num_layers);
STBTE_ASSERT(tile >= -1 && tile < 32768); STBTE_ASSERT(tile >= -1);
//STBTE_ASSERT(tile < 32768);
if (x < 0 || x >= STBTE_MAX_TILEMAP_X || y < 0 || y >= STBTE_MAX_TILEMAP_Y) if (x < 0 || x >= STBTE_MAX_TILEMAP_X || y < 0 || y >= STBTE_MAX_TILEMAP_Y)
return; return;
if (layer < 0 || layer >= tm->num_layers || tile < -1) if (layer < 0 || layer >= tm->num_layers || tile < -1)

View File

@ -243,19 +243,6 @@
// recommend it. // recommend it.
// //
// //
// SOURCE STATISTICS (based on v0.6c, 2050 LOC)
//
// Documentation & header file 520 LOC )___ 660 LOC documentation
// Sample code 140 LOC )
// Truetype parsing 620 LOC ---- 620 LOC TrueType
// Software rasterization 240 LOC )
// Curve tessellation 120 LOC )___ 550 LOC Bitmap creation
// Bitmap management 100 LOC )
// Baked bitmap interface 70 LOC )
// Font name matching & access 150 LOC ---- 150
// C runtime library abstraction 60 LOC ---- 60
//
//
// PERFORMANCE MEASUREMENTS FOR 1.06: // PERFORMANCE MEASUREMENTS FOR 1.06:
// //
// 32-bit 64-bit // 32-bit 64-bit

View File

@ -2370,16 +2370,16 @@ static unsigned short stbvox_face_visible[STBVOX_FT_count] =
{ {
// we encode the table by listing which cases cause *obscuration*, and bitwise inverting that // we encode the table by listing which cases cause *obscuration*, and bitwise inverting that
// table is pre-shifted by 5 to save a shift when it's accessed // table is pre-shifted by 5 to save a shift when it's accessed
(unsigned short) ((~0x07ff )<<5), // none is completely obscured by everything (unsigned short) ((~0x07ffu )<<5), // none is completely obscured by everything
(unsigned short) ((~((1<<STBVOX_FT_solid) | (1<<STBVOX_FT_upper) ))<<5), // upper (unsigned short) ((~((1u<<STBVOX_FT_solid) | (1<<STBVOX_FT_upper) ))<<5), // upper
(unsigned short) ((~((1<<STBVOX_FT_solid) | (1<<STBVOX_FT_lower) ))<<5), // lower (unsigned short) ((~((1u<<STBVOX_FT_solid) | (1<<STBVOX_FT_lower) ))<<5), // lower
(unsigned short) ((~((1<<STBVOX_FT_solid) ))<<5), // solid is only completely obscured only by solid (unsigned short) ((~((1u<<STBVOX_FT_solid) ))<<5), // solid is only completely obscured only by solid
(unsigned short) ((~((1<<STBVOX_FT_solid) | (1<<STBVOX_FT_diag_013)))<<5), // diag012 matches diag013 (unsigned short) ((~((1u<<STBVOX_FT_solid) | (1<<STBVOX_FT_diag_013)))<<5), // diag012 matches diag013
(unsigned short) ((~((1<<STBVOX_FT_solid) | (1<<STBVOX_FT_diag_123)))<<5), // diag023 matches diag123 (unsigned short) ((~((1u<<STBVOX_FT_solid) | (1<<STBVOX_FT_diag_123)))<<5), // diag023 matches diag123
(unsigned short) ((~((1<<STBVOX_FT_solid) | (1<<STBVOX_FT_diag_012)))<<5), // diag013 matches diag012 (unsigned short) ((~((1u<<STBVOX_FT_solid) | (1<<STBVOX_FT_diag_012)))<<5), // diag013 matches diag012
(unsigned short) ((~((1<<STBVOX_FT_solid) | (1<<STBVOX_FT_diag_023)))<<5), // diag123 matches diag023 (unsigned short) ((~((1u<<STBVOX_FT_solid) | (1<<STBVOX_FT_diag_023)))<<5), // diag123 matches diag023
(unsigned short) ((~0 )<<5), // force is always rendered regardless, always forces neighbor (unsigned short) ((~0u )<<5), // force is always rendered regardless, always forces neighbor
(unsigned short) ((~((1<<STBVOX_FT_solid) ))<<5), // partial is only completely obscured only by solid (unsigned short) ((~((1u<<STBVOX_FT_solid) ))<<5), // partial is only completely obscured only by solid
}; };
// the vertex heights of the block types, in binary vertex order (zyx): // the vertex heights of the block types, in binary vertex order (zyx):