various fixes for clang
also fix a comment typo
This commit is contained in:
parent
5715e6faaf
commit
5fe7fb52f2
11
stb_divide.h
11
stb_divide.h
@ -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
|
||||||
}
|
}
|
||||||
|
@ -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.
|
||||||
//
|
//
|
||||||
// ===========================================================================
|
// ===========================================================================
|
||||||
|
@ -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)
|
||||||
|
@ -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
|
||||||
|
@ -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):
|
||||||
|
Loading…
Reference in New Issue
Block a user