no warnings when compiling /W3
compiling all test cases and compilers in test.sbm Compilers: 32-bit: VS2015 VS2013 VS2008 VC6 (1998) clang-cl 9.0.1 64-bit VS2015 clang-cl 9.0.1
This commit is contained in:
parent
96b4748d57
commit
a0b521fcf2
@ -514,7 +514,7 @@ static int stb__clex_parse_string(stb_lexer *lexer, char *p, int type)
|
||||
}
|
||||
*out = 0;
|
||||
lexer->string = lexer->string_storage;
|
||||
lexer->string_len = out - lexer->string_storage;
|
||||
lexer->string_len = (int) (out - lexer->string_storage);
|
||||
return stb__clex_token(lexer, type, start, p);
|
||||
}
|
||||
|
||||
@ -824,7 +824,7 @@ int stb_c_lexer_get_token(stb_lexer *lexer)
|
||||
#endif // STB_C_LEXER_IMPLEMENTATION
|
||||
|
||||
#ifdef STB_C_LEXER_SELF_TEST
|
||||
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
@ -884,11 +884,12 @@ void dummy(void)
|
||||
{
|
||||
double some_floats[] = {
|
||||
1.0501, -10.4e12, 5E+10,
|
||||
#if 0 // not support in C++ or C-pre-99, so don't try to compile it
|
||||
#if 0 // not supported in C++ or C-pre-99, so don't try to compile it, but let our parser test it
|
||||
0x1.0p+24, 0xff.FP-8, 0x1p-23,
|
||||
#endif
|
||||
4.
|
||||
};
|
||||
(void) sizeof(some_floats);
|
||||
|
||||
printf("test %d",1); // https://github.com/nothings/stb/issues/13
|
||||
}
|
||||
@ -897,7 +898,7 @@ int main(int argc, char **argv)
|
||||
{
|
||||
FILE *f = fopen("stb_c_lexer.h","rb");
|
||||
char *text = (char *) malloc(1 << 20);
|
||||
int len = f ? fread(text, 1, 1<<20, f) : -1;
|
||||
int len = f ? (int) fread(text, 1, 1<<20, f) : -1;
|
||||
stb_lexer lex;
|
||||
if (len < 0) {
|
||||
fprintf(stderr, "Error opening file\n");
|
||||
|
@ -709,7 +709,7 @@ static void stbcc__remove_clump_connection(stbcc_grid *g, int x1, int y1, int x2
|
||||
|
||||
static void stbcc__add_connections_to_adjacent_cluster(stbcc_grid *g, int cx, int cy, int dx, int dy)
|
||||
{
|
||||
unsigned char connected[STBCC__MAX_EDGE_CLUMPS_PER_CLUSTER][STBCC__MAX_EDGE_CLUMPS_PER_CLUSTER/8] = { 0 };
|
||||
unsigned char connected[STBCC__MAX_EDGE_CLUMPS_PER_CLUSTER][STBCC__MAX_EDGE_CLUMPS_PER_CLUSTER/8] = { { 0 } };
|
||||
int x = cx * STBCC__CLUSTER_SIZE_X;
|
||||
int y = cy * STBCC__CLUSTER_SIZE_Y;
|
||||
int step_x, step_y=0, i, j, k, n;
|
||||
@ -751,6 +751,7 @@ static void stbcc__add_connections_to_adjacent_cluster(stbcc_grid *g, int cx, in
|
||||
n = STBCC__CLUSTER_SIZE_X;
|
||||
} else {
|
||||
assert(0);
|
||||
return;
|
||||
}
|
||||
|
||||
for (k=0; k < n; ++k) {
|
||||
@ -772,7 +773,7 @@ static void stbcc__add_connections_to_adjacent_cluster(stbcc_grid *g, int cx, in
|
||||
|
||||
static void stbcc__remove_connections_to_adjacent_cluster(stbcc_grid *g, int cx, int cy, int dx, int dy)
|
||||
{
|
||||
unsigned char disconnected[STBCC__MAX_EDGE_CLUMPS_PER_CLUSTER][STBCC__MAX_EDGE_CLUMPS_PER_CLUSTER/8] = { 0 };
|
||||
unsigned char disconnected[STBCC__MAX_EDGE_CLUMPS_PER_CLUSTER][STBCC__MAX_EDGE_CLUMPS_PER_CLUSTER/8] = { { 0 } };
|
||||
int x = cx * STBCC__CLUSTER_SIZE_X;
|
||||
int y = cy * STBCC__CLUSTER_SIZE_Y;
|
||||
int step_x, step_y=0, i, j, k, n;
|
||||
@ -811,6 +812,7 @@ static void stbcc__remove_connections_to_adjacent_cluster(stbcc_grid *g, int cx,
|
||||
n = STBCC__CLUSTER_SIZE_X;
|
||||
} else {
|
||||
assert(0);
|
||||
return;
|
||||
}
|
||||
|
||||
for (k=0; k < n; ++k) {
|
||||
@ -954,13 +956,14 @@ static void stbcc__build_clumps_for_cluster(stbcc_grid *g, int cx, int cy)
|
||||
for (j=1; j < STBCC__CLUSTER_SIZE_Y-1; ++j) {
|
||||
for (i=1; i < STBCC__CLUSTER_SIZE_X-1; ++i) {
|
||||
stbcc__tinypoint p = cbi.parent[j][i];
|
||||
if (p.x == i && p.y == j)
|
||||
if (p.x == i && p.y == j) {
|
||||
if (STBCC__MAP_OPEN(g,x+i,y+j))
|
||||
cbi.label[j][i] = label++;
|
||||
else
|
||||
cbi.label[j][i] = STBCC__NULL_CLUMPID;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// label all other nodes
|
||||
for (j=0; j < STBCC__CLUSTER_SIZE_Y; ++j) {
|
||||
|
15
stb_ds.h
15
stb_ds.h
@ -308,6 +308,10 @@ CREDITS
|
||||
Per Vognsen -- idea for hash table API/implementation
|
||||
*/
|
||||
|
||||
#ifdef STBDS_UNIT_TESTS
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
#endif
|
||||
|
||||
#ifndef INCLUDE_STB_DS_H
|
||||
#define INCLUDE_STB_DS_H
|
||||
|
||||
@ -593,6 +597,7 @@ template<class T> static T * stbds_shmode_func_wrapper(T *, size_t elemsize, int
|
||||
#include <string.h>
|
||||
|
||||
#ifndef STBDS_ASSERT
|
||||
#define STBDS_ASSERT_WAS_UNDEFINED
|
||||
#define STBDS_ASSERT(x) ((void) 0)
|
||||
#endif
|
||||
|
||||
@ -1442,6 +1447,9 @@ void stbds_strreset(stbds_string_arena *a)
|
||||
|
||||
#ifdef STBDS_UNIT_TESTS
|
||||
#include <stdio.h>
|
||||
#ifdef STBDS_ASSERT_WAS_UNDEFINED
|
||||
#undef STBDS_ASSERT
|
||||
#endif
|
||||
#ifndef STBDS_ASSERT
|
||||
#define STBDS_ASSERT assert
|
||||
#include <assert.h>
|
||||
@ -1452,7 +1460,11 @@ typedef struct { int key,b,c,d; } stbds_struct;
|
||||
static char buffer[256];
|
||||
char *strkey(int n)
|
||||
{
|
||||
#if defined(_WIN32) && defined(__STDC_WANT_SECURE_LIB__)
|
||||
sprintf_s(buffer, sizeof(buffer), "test_%d", n);
|
||||
#else
|
||||
sprintf(buffer, "test_%d", n);
|
||||
#endif
|
||||
return buffer;
|
||||
}
|
||||
|
||||
@ -1595,9 +1607,10 @@ void stbds_unit_tests(void)
|
||||
|
||||
for (i=0; i < testsize; i += 1) {
|
||||
stbds_struct s = { i,i*2,i*3,i*4 };
|
||||
stbds_struct t = { i,i*2,i*3,i*4 };
|
||||
stbds_struct t = { i,i*2,i*3+1,i*4 };
|
||||
if (i & 1) STBDS_ASSERT(hmgets(map2, s.key).d == 0);
|
||||
else STBDS_ASSERT(hmgets(map2, s.key).d == i*4);
|
||||
STBDS_ASSERT(hmget(map, t) == 0);
|
||||
}
|
||||
hmfree(map2);
|
||||
#endif
|
||||
|
@ -166,7 +166,7 @@ int main(int argc, char **argv)
|
||||
typedef struct stbhw_tileset stbhw_tileset;
|
||||
|
||||
// returns description of last error produced by any function (not thread-safe)
|
||||
STBHW_EXTERN char *stbhw_get_last_error(void);
|
||||
STBHW_EXTERN const char *stbhw_get_last_error(void);
|
||||
|
||||
// build a tileset from an image that conforms to a template created by this
|
||||
// library. (you allocate storage for stbhw_tileset and function fills it out;
|
||||
@ -345,10 +345,10 @@ static signed char c_color[STB_HBWANG_MAX_Y+6][STB_HBWANG_MAX_X+6];
|
||||
static signed char v_color[STB_HBWANG_MAX_Y+6][STB_HBWANG_MAX_X+5];
|
||||
static signed char h_color[STB_HBWANG_MAX_Y+5][STB_HBWANG_MAX_X+6];
|
||||
|
||||
static char *stbhw_error;
|
||||
STBHW_EXTERN char *stbhw_get_last_error(void)
|
||||
static const char *stbhw_error;
|
||||
STBHW_EXTERN const char *stbhw_get_last_error(void)
|
||||
{
|
||||
char *temp = stbhw_error;
|
||||
const char *temp = stbhw_error;
|
||||
stbhw_error = 0;
|
||||
return temp;
|
||||
}
|
||||
@ -717,7 +717,7 @@ STBHW_EXTERN int stbhw_generate_image(stbhw_tileset *ts, int **weighting, unsign
|
||||
// to avoid really obvious repetition (which happens easily with extreme weights)
|
||||
for (j=0; j < ymax-3; ++j) {
|
||||
for (i=0; i < xmax-3; ++i) {
|
||||
int p = (i-j+1) & 3; // corner type
|
||||
//int p = (i-j+1) & 3; // corner type // unused, not sure what the intent was so commenting it out
|
||||
STB_HBWANG_ASSERT(i+3 < STB_HBWANG_MAX_X+6);
|
||||
STB_HBWANG_ASSERT(j+3 < STB_HBWANG_MAX_Y+6);
|
||||
if (stbhw__match(i,j) && stbhw__match(i,j+1) && stbhw__match(i,j+2)
|
||||
@ -747,7 +747,7 @@ STBHW_EXTERN int stbhw_generate_image(stbhw_tileset *ts, int **weighting, unsign
|
||||
} else {
|
||||
i = phase-4;
|
||||
}
|
||||
for (i;; i += 4) {
|
||||
for (;; i += 4) {
|
||||
int xpos = i * sidelen;
|
||||
if (xpos >= w)
|
||||
break;
|
||||
@ -798,7 +798,7 @@ STBHW_EXTERN int stbhw_generate_image(stbhw_tileset *ts, int **weighting, unsign
|
||||
} else {
|
||||
i = phase-4;
|
||||
}
|
||||
for (i;; i += 4) {
|
||||
for (;; i += 4) {
|
||||
int xpos = i * sidelen;
|
||||
if (xpos >= w)
|
||||
break;
|
||||
|
@ -339,11 +339,13 @@ typedef unsigned short stbi_us;
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifndef STBIDEF
|
||||
#ifdef STB_IMAGE_STATIC
|
||||
#define STBIDEF static
|
||||
#else
|
||||
#define STBIDEF extern
|
||||
#endif
|
||||
#endif
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
@ -1182,7 +1184,7 @@ STBI_EXTERN __declspec(dllimport) int __stdcall WideCharToMultiByte(unsigned int
|
||||
#if defined(_MSC_VER) && defined(STBI_WINDOWS_UTF8)
|
||||
STBIDEF int stbi_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t* input)
|
||||
{
|
||||
return WideCharToMultiByte(65001 /* UTF8 */, 0, input, -1, buffer, bufferlen, NULL, NULL);
|
||||
return WideCharToMultiByte(65001 /* UTF8 */, 0, input, -1, buffer, (int) bufferlen, NULL, NULL);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -193,6 +193,7 @@ typedef uint16_t stbir_uint16;
|
||||
typedef uint32_t stbir_uint32;
|
||||
#endif
|
||||
|
||||
#ifndef STBIRDEF
|
||||
#ifdef STB_IMAGE_RESIZE_STATIC
|
||||
#define STBIRDEF static
|
||||
#else
|
||||
@ -202,7 +203,7 @@ typedef uint32_t stbir_uint32;
|
||||
#define STBIRDEF extern
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
@ -2324,8 +2325,9 @@ static int stbir__resize_allocated(stbir__info *info,
|
||||
if (alpha_channel < 0)
|
||||
flags |= STBIR_FLAG_ALPHA_USES_COLORSPACE | STBIR_FLAG_ALPHA_PREMULTIPLIED;
|
||||
|
||||
if (!(flags&STBIR_FLAG_ALPHA_USES_COLORSPACE) || !(flags&STBIR_FLAG_ALPHA_PREMULTIPLIED))
|
||||
if (!(flags&STBIR_FLAG_ALPHA_USES_COLORSPACE) || !(flags&STBIR_FLAG_ALPHA_PREMULTIPLIED)) {
|
||||
STBIR_ASSERT(alpha_channel >= 0 && alpha_channel < info->channels);
|
||||
}
|
||||
|
||||
if (alpha_channel >= info->channels)
|
||||
return 0;
|
||||
|
@ -299,7 +299,7 @@ STBIW_EXTERN __declspec(dllimport) int __stdcall WideCharToMultiByte(unsigned in
|
||||
|
||||
STBIWDEF int stbiw_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t* input)
|
||||
{
|
||||
return WideCharToMultiByte(65001 /* UTF8 */, 0, input, -1, buffer, bufferlen, NULL, NULL);
|
||||
return WideCharToMultiByte(65001 /* UTF8 */, 0, input, -1, buffer, (int) bufferlen, NULL, NULL);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -736,8 +736,8 @@ static int stbi_write_hdr_core(stbi__write_context *s, int x, int y, int comp, f
|
||||
char header[] = "#?RADIANCE\n# Written by stb_image_write.h\nFORMAT=32-bit_rle_rgbe\n";
|
||||
s->func(s->context, header, sizeof(header)-1);
|
||||
|
||||
#ifdef STBI_MSC_SECURE_CRT
|
||||
len = sprintf_s(buffer, "EXPOSURE= 1.0000000000000\n\n-Y %d +X %d\n", y, x);
|
||||
#ifdef __STDC_WANT_SECURE_LIB__
|
||||
len = sprintf_s(buffer, sizeof(buffer), "EXPOSURE= 1.0000000000000\n\n-Y %d +X %d\n", y, x);
|
||||
#else
|
||||
len = sprintf(buffer, "EXPOSURE= 1.0000000000000\n\n-Y %d +X %d\n", y, x);
|
||||
#endif
|
||||
|
@ -971,7 +971,7 @@ struct stbte_tilemap
|
||||
short *undo_buffer;
|
||||
};
|
||||
|
||||
static char *default_category = "[unassigned]";
|
||||
static char *default_category = (char*) "[unassigned]";
|
||||
|
||||
static void stbte__init_gui(void)
|
||||
{
|
||||
@ -1172,7 +1172,9 @@ void stbte_set_property(stbte_tilemap *tm, int x, int y, int n, float val)
|
||||
tm->props[y][x][n] = val;
|
||||
}
|
||||
|
||||
#ifdef STBTE_ALLOW_LINK
|
||||
static void stbte__set_link(stbte_tilemap *tm, int src_x, int src_y, int dest_x, int dest_y, int undo_mode);
|
||||
#endif
|
||||
|
||||
enum
|
||||
{
|
||||
@ -1254,7 +1256,7 @@ static int stbte__strequal(char *p, char *q)
|
||||
|
||||
static void stbte__compute_tileinfo(stbte_tilemap *tm)
|
||||
{
|
||||
int i,j,n=0;
|
||||
int i,j;
|
||||
|
||||
tm->num_categories=0;
|
||||
|
||||
@ -1649,6 +1651,7 @@ static void stbte__draw_rect(int x0, int y0, int x1, int y1, unsigned int color)
|
||||
STBTE_DRAW_RECT(x0,y0,x1,y1, color);
|
||||
}
|
||||
|
||||
#ifdef STBTE_ALLOW_LINK
|
||||
static void stbte__draw_line(int x0, int y0, int x1, int y1, unsigned int color)
|
||||
{
|
||||
int temp;
|
||||
@ -1662,6 +1665,7 @@ static void stbte__draw_link(int x0, int y0, int x1, int y1, unsigned int color)
|
||||
stbte__draw_line(x0,y0,x0,y1, color);
|
||||
stbte__draw_line(x0,y1,x1,y1, color);
|
||||
}
|
||||
#endif
|
||||
|
||||
static void stbte__draw_frame(int x0, int y0, int x1, int y1, unsigned int color)
|
||||
{
|
||||
@ -1671,12 +1675,6 @@ static void stbte__draw_frame(int x0, int y0, int x1, int y1, unsigned int color
|
||||
stbte__draw_rect(x0,y0+1,x0+1,y1,color);
|
||||
}
|
||||
|
||||
static void stbte__draw_halfframe(int x0, int y0, int x1, int y1, unsigned int color)
|
||||
{
|
||||
stbte__draw_rect(x0,y0,x1,y0+1,color);
|
||||
stbte__draw_rect(x0,y0+1,x0+1,y1,color);
|
||||
}
|
||||
|
||||
static int stbte__get_char_width(int ch)
|
||||
{
|
||||
return stbte__fontdata[ch-16];
|
||||
@ -1817,15 +1815,13 @@ static void stbte__draw_textbox(int x0, int y0, int x1, int y1, char *text, int
|
||||
stbte__draw_text(x0+xoff,y0+yoff, text, x1-x0-xoff-1, stbte__color_table[colormode][STBTE__text][colorindex]);
|
||||
}
|
||||
|
||||
static int stbte__button(int colormode, char *label, int x, int y, int textoff, int width, int id, int toggled, int disabled)
|
||||
static int stbte__button(int colormode, const char *label, int x, int y, int textoff, int width, int id, int toggled, int disabled)
|
||||
{
|
||||
int x0=x,y0=y, x1=x+width,y1=y+STBTE__BUTTON_HEIGHT;
|
||||
int s = STBTE__BUTTON_INTERNAL_SPACING;
|
||||
|
||||
int over = !disabled && stbte__hittest(x0,y0,x1,y1,id);
|
||||
|
||||
if (stbte__ui.event == STBTE__paint)
|
||||
stbte__draw_textbox(x0,y0,x1,y1, label,s+textoff,s, colormode, STBTE__INDEX_FOR_ID(id,disabled,toggled));
|
||||
stbte__draw_textbox(x0,y0,x1,y1, (char*) label,s+textoff,s, colormode, STBTE__INDEX_FOR_ID(id,disabled,toggled));
|
||||
if (disabled)
|
||||
return 0;
|
||||
return (stbte__button_core(id) == 1);
|
||||
@ -1836,8 +1832,6 @@ static int stbte__button_icon(int colormode, char ch, int x, int y, int width, i
|
||||
int x0=x,y0=y, x1=x+width,y1=y+STBTE__BUTTON_HEIGHT;
|
||||
int s = STBTE__BUTTON_INTERNAL_SPACING;
|
||||
|
||||
int over = stbte__hittest(x0,y0,x1,y1,id);
|
||||
|
||||
if (stbte__ui.event == STBTE__paint) {
|
||||
char label[2] = { ch, 0 };
|
||||
int pad = (9 - stbte__get_char_width(ch))/2;
|
||||
@ -1851,7 +1845,6 @@ static int stbte__button_icon(int colormode, char ch, int x, int y, int width, i
|
||||
static int stbte__minibutton(int colormode, int x, int y, int ch, int id)
|
||||
{
|
||||
int x0 = x, y0 = y, x1 = x+8, y1 = y+7;
|
||||
int over = stbte__hittest(x0,y0,x1,y1,id);
|
||||
if (stbte__ui.event == STBTE__paint) {
|
||||
char str[2] = { (char)ch, 0 };
|
||||
stbte__draw_textbox(x0,y0,x1,y1, str,1,0,colormode, STBTE__INDEX_FOR_ID(id,0,0));
|
||||
@ -1862,7 +1855,6 @@ static int stbte__minibutton(int colormode, int x, int y, int ch, int id)
|
||||
static int stbte__layerbutton(int x, int y, int ch, int id, int toggled, int disabled, int colormode)
|
||||
{
|
||||
int x0 = x, y0 = y, x1 = x+10, y1 = y+11;
|
||||
int over = !disabled && stbte__hittest(x0,y0,x1,y1,id);
|
||||
if (stbte__ui.event == STBTE__paint) {
|
||||
char str[2] = { (char)ch, 0 };
|
||||
int off = (9-stbte__get_char_width(ch))/2;
|
||||
@ -1876,7 +1868,6 @@ static int stbte__layerbutton(int x, int y, int ch, int id, int toggled, int dis
|
||||
static int stbte__microbutton(int x, int y, int size, int id, int colormode)
|
||||
{
|
||||
int x0 = x, y0 = y, x1 = x+size, y1 = y+size;
|
||||
int over = stbte__hittest(x0,y0,x1,y1,id);
|
||||
if (stbte__ui.event == STBTE__paint) {
|
||||
stbte__draw_box(x0,y0,x1,y1, colormode, STBTE__INDEX_FOR_ID(id,0,0));
|
||||
}
|
||||
@ -1886,7 +1877,6 @@ static int stbte__microbutton(int x, int y, int size, int id, int colormode)
|
||||
static int stbte__microbutton_dragger(int x, int y, int size, int id, int *pos)
|
||||
{
|
||||
int x0 = x, y0 = y, x1 = x+size, y1 = y+size;
|
||||
int over = stbte__hittest(x0,y0,x1,y1,id);
|
||||
switch (stbte__ui.event) {
|
||||
case STBTE__paint:
|
||||
stbte__draw_box(x0,y0,x1,y1, STBTE__cexpander, STBTE__INDEX_FOR_ID(id,0,0));
|
||||
@ -1912,15 +1902,13 @@ static int stbte__microbutton_dragger(int x, int y, int size, int id, int *pos)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int stbte__category_button(char *label, int x, int y, int width, int id, int toggled)
|
||||
static int stbte__category_button(const char *label, int x, int y, int width, int id, int toggled)
|
||||
{
|
||||
int x0=x,y0=y, x1=x+width,y1=y+STBTE__BUTTON_HEIGHT;
|
||||
int s = STBTE__BUTTON_INTERNAL_SPACING;
|
||||
|
||||
int over = stbte__hittest(x0,y0,x1,y1,id);
|
||||
|
||||
if (stbte__ui.event == STBTE__paint)
|
||||
stbte__draw_textbox(x0,y0,x1,y1, label, s,s, STBTE__ccategory_button, STBTE__INDEX_FOR_ID(id,0,toggled));
|
||||
stbte__draw_textbox(x0,y0,x1,y1, (char*) label, s,s, STBTE__ccategory_button, STBTE__INDEX_FOR_ID(id,0,toggled));
|
||||
|
||||
return (stbte__button_core(id) == 1);
|
||||
}
|
||||
@ -1938,7 +1926,6 @@ static int stbte__slider(int x0, int w, int y, int range, int *value, int id)
|
||||
{
|
||||
int x1 = x0+w;
|
||||
int pos = *value * w / (range+1);
|
||||
int over = stbte__hittest(x0,y-2,x1,y+3,id);
|
||||
int event_mouse_move = STBTE__change;
|
||||
switch (stbte__ui.event) {
|
||||
case STBTE__paint:
|
||||
@ -1969,15 +1956,22 @@ static int stbte__slider(int x0, int w, int y, int range, int *value, int id)
|
||||
return STBTE__none;
|
||||
}
|
||||
|
||||
static int stbte__float_control(int x0, int y0, int w, float minv, float maxv, float scale, char *fmt, float *value, int colormode, int id)
|
||||
#if defined(_WIN32) && defined(__STDC_WANT_SECURE_LIB__)
|
||||
#define stbte__sprintf sprintf_s
|
||||
#define stbte__sizeof(s) , sizeof(s)
|
||||
#else
|
||||
#define stbte__sprintf sprintf
|
||||
#define stbte__sizeof(s)
|
||||
#endif
|
||||
|
||||
static int stbte__float_control(int x0, int y0, int w, float minv, float maxv, float scale, const char *fmt, float *value, int colormode, int id)
|
||||
{
|
||||
int x1 = x0+w;
|
||||
int y1 = y0+11;
|
||||
int over = stbte__hittest(x0,y0,x1,y1,id);
|
||||
switch (stbte__ui.event) {
|
||||
case STBTE__paint: {
|
||||
char text[32];
|
||||
sprintf(text, fmt ? fmt : "%6.2f", *value);
|
||||
stbte__sprintf(text stbte__sizeof(text), fmt ? fmt : "%6.2f", *value);
|
||||
stbte__draw_textbox(x0,y0,x1,y1, text, 1,2, colormode, STBTE__INDEX_FOR_ID(id,0,0));
|
||||
break;
|
||||
}
|
||||
@ -2283,7 +2277,6 @@ static void stbte__alert(const char *msg)
|
||||
|
||||
static void stbte__brush_predict(stbte_tilemap *tm, short result[])
|
||||
{
|
||||
int layer_to_paint = tm->cur_layer;
|
||||
stbte__tileinfo *ti;
|
||||
int i;
|
||||
|
||||
@ -2322,7 +2315,6 @@ static void stbte__brush_predict(stbte_tilemap *tm, short result[])
|
||||
|
||||
static void stbte__brush(stbte_tilemap *tm, int x, int y)
|
||||
{
|
||||
int layer_to_paint = tm->cur_layer;
|
||||
stbte__tileinfo *ti;
|
||||
|
||||
// find lowest legit layer to paint it on, and put it there
|
||||
@ -2634,7 +2626,6 @@ static void stbte__clear_stack(stbte_tilemap *tm, short result[])
|
||||
static void stbte__fillrect(stbte_tilemap *tm, int x0, int y0, int x1, int y1, int fill)
|
||||
{
|
||||
int i,j;
|
||||
int x=x0,y=y0;
|
||||
|
||||
stbte__begin_undo(tm);
|
||||
if (x0 > x1) i=x0,x0=x1,x1=i;
|
||||
@ -2734,6 +2725,7 @@ static int stbte__in_rect(int x, int y, int x0, int y0, int w, int h)
|
||||
return x >= x0 && x < x0+w && y >= y0 && y < y0+h;
|
||||
}
|
||||
|
||||
#ifdef STBTE_ALLOW_LINK
|
||||
static int stbte__in_src_rect(int x, int y)
|
||||
{
|
||||
return stbte__in_rect(x,y, stbte__ui.copy_src_x, stbte__ui.copy_src_y, stbte__ui.copy_width, stbte__ui.copy_height);
|
||||
@ -2743,6 +2735,7 @@ static int stbte__in_dest_rect(int x, int y, int destx, int desty)
|
||||
{
|
||||
return stbte__in_rect(x,y, destx, desty, stbte__ui.copy_width, stbte__ui.copy_height);
|
||||
}
|
||||
#endif
|
||||
|
||||
static void stbte__paste(stbte_tilemap *tm, int mapx, int mapy)
|
||||
{
|
||||
@ -2934,9 +2927,6 @@ static void stbte__tile_paint(stbte_tilemap *tm, int sx, int sy, int mapx, int m
|
||||
{
|
||||
int i;
|
||||
int id = STBTE__IDMAP(mapx,mapy);
|
||||
int x0=sx, y0=sy;
|
||||
int x1=sx+tm->spacing_x, y1=sy+tm->spacing_y;
|
||||
int over = stbte__hittest(x0,y0,x1,y1, id);
|
||||
short *data = tm->data[mapy][mapx];
|
||||
short temp[STBTE_MAX_LAYERS];
|
||||
|
||||
@ -3366,7 +3356,7 @@ static int stbte__info_value(const char *label, int x, int y, int val, int digit
|
||||
if (stbte__ui.event == STBTE__paint) {
|
||||
int off = 9-stbte__get_char_width(label[0]);
|
||||
char text[16];
|
||||
sprintf(text, label, digits, val);
|
||||
stbte__sprintf(text stbte__sizeof(text), label, digits, val);
|
||||
stbte__draw_text_core(x+off,y, text, 999, STBTE__TEXTCOLOR(STBTE__cpanel),1);
|
||||
}
|
||||
if (id) {
|
||||
@ -3414,7 +3404,7 @@ static void stbte__info(stbte_tilemap *tm, int x0, int y0, int w, int h)
|
||||
|
||||
static void stbte__layers(stbte_tilemap *tm, int x0, int y0, int w, int h)
|
||||
{
|
||||
static char *propmodes[3] = {
|
||||
static const char *propmodes[3] = {
|
||||
"default", "always", "never"
|
||||
};
|
||||
int num_rows;
|
||||
@ -3449,7 +3439,7 @@ static void stbte__layers(stbte_tilemap *tm, int x0, int y0, int w, int h)
|
||||
int disabled = (tm->solo_layer >= 0 && tm->solo_layer != i);
|
||||
if (i-tm->layer_scroll >= 0 && i-tm->layer_scroll < num_rows) {
|
||||
if (str == NULL)
|
||||
sprintf(str=text, "%2d", i+1);
|
||||
stbte__sprintf(str=text stbte__sizeof(text), "%2d", i+1);
|
||||
if (stbte__button(STBTE__clayer_button, str, x0,y,(i+1<10)*2,xoff-2, STBTE__ID(STBTE__layer,i), tm->cur_layer==i,0))
|
||||
tm->cur_layer = (tm->cur_layer == i ? -1 : i);
|
||||
if (stbte__layerbutton(x0+xoff + 0,y+1,'H',STBTE__ID(STBTE__hide,i), tm->layerinfo[i].hidden,disabled,STBTE__clayer_hide))
|
||||
@ -3501,10 +3491,7 @@ static void stbte__categories(stbte_tilemap *tm, int x0, int y0, int w, int h)
|
||||
|
||||
static void stbte__tile_in_palette(stbte_tilemap *tm, int x, int y, int slot)
|
||||
{
|
||||
stbte__tileinfo *t = &tm->tiles[slot];
|
||||
int x0=x, y0=y, x1 = x+tm->palette_spacing_x - 1, y1 = y+tm->palette_spacing_y;
|
||||
int id = STBTE__ID(STBTE__palette, slot);
|
||||
int over = stbte__hittest(x0,y0,x1,y1, id);
|
||||
switch (stbte__ui.event) {
|
||||
case STBTE__paint:
|
||||
stbte__draw_rect(x,y,x+tm->palette_spacing_x-1,y+tm->palette_spacing_x-1, STBTE_COLOR_TILEPALETTE_BACKGROUND);
|
||||
@ -3561,15 +3548,10 @@ static void stbte__palette_of_tiles(stbte_tilemap *tm, int x0, int y0, int w, in
|
||||
stbte__scrollbar(x1-4, y0+6, y1-2, &tm->palette_scroll, 0, num_total_rows, num_vis_rows, STBTE__ID(STBTE__scrollbar_id, STBTE__palette));
|
||||
}
|
||||
|
||||
static float stbte__linear_remap(float n, float x0, float x1, float y0, float y1)
|
||||
{
|
||||
return (n-x0)/(x1-x0)*(y1-y0) + y0;
|
||||
}
|
||||
|
||||
static float stbte__saved;
|
||||
static void stbte__props_panel(stbte_tilemap *tm, int x0, int y0, int w, int h)
|
||||
{
|
||||
int x1 = x0+w, y1 = y0+h;
|
||||
int x1 = x0+w;
|
||||
int i;
|
||||
int y = y0 + 5, x = x0+2;
|
||||
int slider_width = 60;
|
||||
@ -3585,8 +3567,8 @@ static void stbte__props_panel(stbte_tilemap *tm, int x0, int y0, int w, int h)
|
||||
for (i=0; i < STBTE_MAX_PROPERTIES; ++i) {
|
||||
unsigned int n = STBTE_PROP_TYPE(i, data, p);
|
||||
if (n) {
|
||||
char *s = STBTE_PROP_NAME(i, data, p);
|
||||
if (s == NULL) s = "";
|
||||
char *s = (char*) STBTE_PROP_NAME(i, data, p);
|
||||
if (s == NULL) s = (char*) "";
|
||||
switch (n & 3) {
|
||||
case STBTE_PROP_bool: {
|
||||
int flag = (int) p[i];
|
||||
|
@ -4990,7 +4990,13 @@ stb_vorbis * stb_vorbis_open_file(FILE *file, int close_on_free, int *error, con
|
||||
|
||||
stb_vorbis * stb_vorbis_open_filename(const char *filename, int *error, const stb_vorbis_alloc *alloc)
|
||||
{
|
||||
FILE *f = fopen(filename, "rb");
|
||||
FILE *f;
|
||||
#if defined(_WIN32) && defined(__STDC_WANT_SECURE_LIB__)
|
||||
if (0 != fopen_s(&f, filename, "rb"))
|
||||
f = NULL;
|
||||
#else
|
||||
f = fopen(filename, "rb");
|
||||
#endif
|
||||
if (f)
|
||||
return stb_vorbis_open_file(f, TRUE, error, alloc);
|
||||
if (error) *error = VORBIS_file_open_failure;
|
||||
|
@ -3552,7 +3552,7 @@ void stbvox_set_buffer(stbvox_mesh_maker *mm, int mesh, int slot, void *buffer,
|
||||
stbvox_bring_up_to_date(mm);
|
||||
mm->output_buffer[mesh][slot] = (char *) buffer;
|
||||
mm->output_cur [mesh][slot] = (char *) buffer;
|
||||
mm->output_len [mesh][slot] = len;
|
||||
mm->output_len [mesh][slot] = (int) len;
|
||||
mm->output_end [mesh][slot] = (char *) buffer + len;
|
||||
for (i=0; i < STBVOX_MAX_MESH_SLOTS; ++i) {
|
||||
if (mm->output_buffer[mesh][i]) {
|
||||
@ -3568,7 +3568,7 @@ void stbvox_set_default_mesh(stbvox_mesh_maker *mm, int mesh)
|
||||
|
||||
int stbvox_get_quad_count(stbvox_mesh_maker *mm, int mesh)
|
||||
{
|
||||
return (mm->output_cur[mesh][0] - mm->output_buffer[mesh][0]) / mm->output_size[mesh][0];
|
||||
return (int) ((mm->output_cur[mesh][0] - mm->output_buffer[mesh][0]) / mm->output_size[mesh][0]);
|
||||
}
|
||||
|
||||
stbvox_input_description *stbvox_get_input_description(stbvox_mesh_maker *mm)
|
||||
|
@ -113,7 +113,7 @@ int main(int argc, char **argv)
|
||||
printf("FAILED 4\n");
|
||||
}
|
||||
} else {
|
||||
int i, nope=0;
|
||||
int i;
|
||||
#ifdef PNGSUITE_PRIMARY
|
||||
char **files = stb_readdir_files("pngsuite/primary");
|
||||
#else
|
||||
|
@ -1,3 +1,6 @@
|
||||
#ifdef __clang__
|
||||
#define STBIWDEF static inline
|
||||
#endif
|
||||
#define STB_IMAGE_WRITE_STATIC
|
||||
#define STB_IMAGE_WRITE_IMPLEMENTATION
|
||||
#include "stb_image_write.h"
|
||||
|
@ -1,3 +1,4 @@
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
@ -56,8 +57,11 @@ void stbir_progress(float p)
|
||||
STBIR_ASSERT(p >= 0 && p <= 1);
|
||||
}
|
||||
|
||||
#define STBIR_PROGRESS_REPORT stbir_progress
|
||||
#ifdef __clang__
|
||||
#define STBIRDEF static inline
|
||||
#endif
|
||||
|
||||
#define STBIR_PROGRESS_REPORT stbir_progress
|
||||
#define STB_IMAGE_RESIZE_IMPLEMENTATION
|
||||
#define STB_IMAGE_RESIZE_STATIC
|
||||
#include "stb_image_resize.h"
|
||||
@ -127,7 +131,7 @@ inline float mtfrand()
|
||||
return (float)(mtrand() % ninenine)/ninenine;
|
||||
}
|
||||
|
||||
static void resizer(int argc, char **argv)
|
||||
void resizer(int argc, char **argv)
|
||||
{
|
||||
unsigned char* input_pixels;
|
||||
unsigned char* output_pixels;
|
||||
@ -144,7 +148,7 @@ static void resizer(int argc, char **argv)
|
||||
exit(0);
|
||||
}
|
||||
|
||||
static void performance(int argc, char **argv)
|
||||
void performance(int argc, char **argv)
|
||||
{
|
||||
unsigned char* input_pixels;
|
||||
unsigned char* output_pixels;
|
||||
|
62
tests/stb.c
62
tests/stb.c
@ -2,6 +2,7 @@
|
||||
* Unit tests for "stb.h"
|
||||
*/
|
||||
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
//#include <windows.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
@ -110,8 +111,8 @@ void test_classes(void)
|
||||
while ((psize % s) > (psize >> 3)) {
|
||||
psize += kPageSize;
|
||||
}
|
||||
class_to_pages[cl] = psize >> kPageShift;
|
||||
wasted_pages += psize;
|
||||
class_to_pages[cl] = (int) (psize >> kPageShift);
|
||||
wasted_pages += (int) psize;
|
||||
}
|
||||
|
||||
printf("TCMalloc can waste as much as %d memory on one-shot allocations\n", wasted_pages);
|
||||
@ -356,10 +357,10 @@ void test_threads2(void)
|
||||
|
||||
char tc[] = "testing compression test quick test voila woohoo what the hell";
|
||||
|
||||
char storage1[1 << 23];
|
||||
int test_compression(char *buffer, int length)
|
||||
unsigned char storage1[1 << 23];
|
||||
int test_compression(unsigned char *buffer, int length)
|
||||
{
|
||||
char *storage2;
|
||||
unsigned char *storage2;
|
||||
int c_len = stb_compress(storage1, buffer, length);
|
||||
int dc_len;
|
||||
printf("Compressed %d to %d\n", length, c_len);
|
||||
@ -421,7 +422,7 @@ stb_uint stb_adler32_old(stb_uint adler32, stb_uchar *buffer, stb_uint buflen)
|
||||
return (s2 << 16) + s1;
|
||||
}
|
||||
|
||||
static int sample_test[3][5] =
|
||||
int sample_test[3][5] =
|
||||
{
|
||||
{ 1,2,3,4,5 },
|
||||
{ 6,7,8,9,10, },
|
||||
@ -1579,10 +1580,10 @@ struct
|
||||
char *digest;
|
||||
} sha1_tests[] =
|
||||
{
|
||||
24,
|
||||
{ 24,
|
||||
"616263",
|
||||
"a9993e364706816aba3e25717850c26c9cd0d89d",
|
||||
|
||||
},{
|
||||
1304,
|
||||
"ec29561244ede706b6eb30a1c371d74450a105c3f9735f7fa9fe38cf67f304a5736a106e"
|
||||
"92e17139a6813b1c81a4f3d3fb9546ab4296fa9f722826c066869edacd73b25480351858"
|
||||
@ -1590,7 +1591,7 @@ struct
|
||||
"e31cb413ae29810fd794cad5dfaf29ec43cb38d198fe4ae1da2359780221405bd6712a53"
|
||||
"05da4b1b737fce7cd21c0eb7728d08235a9011",
|
||||
"970111c4e77bcc88cc20459c02b69b4aa8f58217",
|
||||
|
||||
},{
|
||||
2096,
|
||||
"5fc2c3f6a7e79dc94be526e5166a238899d54927ce470018fbfd668fd9dd97cbf64e2c91"
|
||||
"584d01da63be3cc9fdff8adfefc3ac728e1e335b9cdc87f069172e323d094b47fa1e652a"
|
||||
@ -1601,7 +1602,7 @@ struct
|
||||
"e485050e4bbb6235574fc0102be8f7a306d6e8de6ba6becf80f37415b57f9898a5824e77"
|
||||
"414197422be3d36a6080",
|
||||
"0423dc76a8791107d14e13f5265b343f24cc0f19",
|
||||
|
||||
},{
|
||||
2888,
|
||||
"0f865f46a8f3aed2da18482aa09a8f390dc9da07d51d1bd10fe0bf5f3928d5927d08733d"
|
||||
"32075535a6d1c8ac1b2dc6ba0f2f633dc1af68e3f0fa3d85e6c60cb7b56c239dc1519a00"
|
||||
@ -1615,7 +1616,7 @@ struct
|
||||
"6afbb27dbbd300477d70c371e7b8963812f5ed4fb784fb2f3bd1d3afe883cdd47ef32bea"
|
||||
"ea",
|
||||
"6692a71d73e00f27df976bc56df4970650d90e45",
|
||||
|
||||
},{
|
||||
3680,
|
||||
"4893f1c763625f2c6ce53aacf28026f14b3cd8687e1a1d3b60a81e80fcd1e2b038f9145a"
|
||||
"b64a0718f948f7c3c9ac92e3d86fb669a5257da1a18c776291653688338210a3242120f1"
|
||||
@ -1631,7 +1632,7 @@ struct
|
||||
"73c30b39920e726fe861b72483a3f886269ab7a8eefe952f35d25c4eb7f443f4f3f26e43"
|
||||
"d51fb54591e6a6dad25fcdf5142033084e5624bdd51435e77dea86b8",
|
||||
"dc5859dd5163c4354d5d577b855fa98e37f04384",
|
||||
|
||||
},{
|
||||
4472,
|
||||
"cf494c18a4e17bf03910631471bca5ba7edea8b9a63381e3463517961749848eb03abefd"
|
||||
"4ce676dece3740860255f57c261a558aa9c7f11432f549a9e4ce31d8e17c79450ce2ccfc"
|
||||
@ -1650,7 +1651,7 @@ struct
|
||||
"317746270599424b9248791a0780449c1eabbb9459cc1e588bfd74df9b1b711c85c09d8a"
|
||||
"a171b309281947e8f4b6ac438753158f4f36fa",
|
||||
"4c17926feb6e87f5bca7890d8a5cde744f231dab",
|
||||
|
||||
},{
|
||||
5264,
|
||||
"8236153781bd2f1b81ffe0def1beb46f5a70191142926651503f1b3bb1016acdb9e7f7ac"
|
||||
"ced8dd168226f118ff664a01a8800116fd023587bfba52a2558393476f5fc69ce9c65001"
|
||||
@ -1672,7 +1673,7 @@ struct
|
||||
"5cf62845c2009980a4dfa69fbc7e5a0b1bb20a5958ca967aec68eb31dd8fccca9afcd30a"
|
||||
"26bab26279f1bf6724ff",
|
||||
"11863b483809ef88413ca9b0084ac4a5390640af",
|
||||
|
||||
},{
|
||||
6056,
|
||||
"31ec3c3636618c7141441294fde7e72366a407fa7ec6a64a41a7c8dfda150ca417fac868"
|
||||
"1b3c5be253e3bff3ab7a5e2c01b72790d95ee09b5362be835b4d33bd20e307c3c702aa15"
|
||||
@ -1697,7 +1698,7 @@ struct
|
||||
"386719b28a09a8e5934722202beb3429899b016dfeb972fee487cdd8d18f8a681042624f"
|
||||
"51",
|
||||
"f43937922444421042f76756fbed0338b354516f",
|
||||
|
||||
},{
|
||||
6848,
|
||||
"21b9a9686ec200456c414f2e6963e2d59e8b57e654eced3d4b57fe565b51c9045c697566"
|
||||
"44c953178f0a64a6e44d1b46f58763c6a71ce4c373b0821c0b3927a64159c32125ec916b"
|
||||
@ -1724,7 +1725,7 @@ struct
|
||||
"aac4130293f6f62ae6d50c0d0c3b9876f0728923a94843785966a27555dd3ce68602e7d9"
|
||||
"0f7c7c552f9bda4969ec2dc3e30a70620db6300e822a93e633ab9a7a",
|
||||
"5d4d18b24b877092188a44be4f2e80ab1d41e795",
|
||||
|
||||
},{
|
||||
7640,
|
||||
"1c87f48f4409c3682e2cf34c63286dd52701b6c14e08669851a6dc8fa15530ad3bef692c"
|
||||
"7d2bf02238644561069df19bdec3bccae5311fce877afc58c7628d08d32d9bd2dc1df0a6"
|
||||
@ -1754,7 +1755,7 @@ struct
|
||||
"e147c723aca999015230d22c917730b935e902092f83e0a8e6db9a75d2626e0346e67e40"
|
||||
"8d5b815439dab8ccb8ea23f828fff6916c4047",
|
||||
"32e0f5d40ceec1fbe45ddd151c76c0b3fef1c938",
|
||||
|
||||
},{
|
||||
8432,
|
||||
"084f04f8d44b333dca539ad2f45f1d94065fbb1d86d2ccf32f9486fe98f7c64011160ec0"
|
||||
"cd66c9c7478ed74fde7945b9c2a95cbe14cedea849978cc2d0c8eb0df48d4834030dfac2"
|
||||
@ -1787,7 +1788,7 @@ struct
|
||||
"b5200b7892554b59532ac63af3bdef590b57bd5df4fbf38d2b3fa540fa5bf89455802963"
|
||||
"036bd173fe3967ed1b7d",
|
||||
"ee976e4ad3cad933b283649eff9ffdb41fcccb18",
|
||||
|
||||
},{
|
||||
9224,
|
||||
"bd8320703d0cac96a96aeefa3abf0f757456bf42b3e56f62070fc03e412d3b8f4e4e427b"
|
||||
"c47c4600bb423b96de6b4910c20bc5c476c45feb5b429d4b35088813836fa5060ceb26db"
|
||||
@ -1823,7 +1824,7 @@ struct
|
||||
"42a756a3e22123cbf38c429373c6a8663130c24b24b2690b000013960b1c46a32d1d5397"
|
||||
"47",
|
||||
"2df09b10933afedfcd3f2532dfd29e7cb6213859",
|
||||
|
||||
},{
|
||||
10016,
|
||||
"7a94978bec7f5034b12c96b86498068db28cd2726b676f54d81d8d7350804cc106bead8a"
|
||||
"252b465a1f413b1c41e5697f8cece49ec0dea4dfb9fa7b1bfe7a4a00981875b420d094bb"
|
||||
@ -1861,7 +1862,7 @@ struct
|
||||
"5740090c1b165ecae7dec0b341d60a88f46d7ad8624aac231a90c93fad61fcfbbea12503"
|
||||
"59fcd203862a6b0f1d71ac43db6c58a6b60c2c546edc12dd658998e8",
|
||||
"f32e70862a16e3e8b199e9d81a9949d66f812cad",
|
||||
|
||||
},{
|
||||
10808,
|
||||
"88dd7f273acbe799219c23184782ac0b07bade2bc46b4f8adbd25ed3d59c0fd3e2931638"
|
||||
"837d31998641bbb7374c7f03d533ca60439ac4290054ff7659cc519bdda3dff2129a7bdb"
|
||||
@ -1902,7 +1903,7 @@ struct
|
||||
"1fd561274392ee6ee1a14424d5c134a69bcb4333079400f03615952fc4c99bf03f5733a8"
|
||||
"dc71524269fc5c648371f5f3098314d9d10258",
|
||||
"08632c75676571a5db5971f5d99cb8de6bf1792a",
|
||||
|
||||
},{
|
||||
11600,
|
||||
"85d43615942fcaa449329fd1fe9efb17545eb252cac752228f1e9d90955a3cf4e72cb116"
|
||||
"3c3d8e93ccb7e4826206ff58b3e05009ee82ab70943db3f18a32925d6d5aed1525c91673"
|
||||
@ -1946,7 +1947,7 @@ struct
|
||||
"b16dcde529248a477628067d13d0cb3bf51776f4d39fb3fbc5f669e91019323e40360e4b"
|
||||
"78b6584f077bf9e03b66",
|
||||
"ab7213f6becb980d40dc89fbda0ca39f225a2d33",
|
||||
|
||||
},{
|
||||
12392,
|
||||
"7ae3ca60b3a96be914d24980fb5652eb68451fed5fa47abe8e771db8301fbd5331e64753"
|
||||
"93d96a4010d6551701e5c23f7ecb33bec7dd7bade21381e9865d410c383a139cb4863082"
|
||||
@ -1993,7 +1994,7 @@ struct
|
||||
"09d1af296eb3121d782650e7d038063bab5fa854aac77de5ffebeb53d263f521e3fc02ac"
|
||||
"70",
|
||||
"b0e15d39025f5263e3efa255c1868d4a37041382",
|
||||
|
||||
},{
|
||||
13184,
|
||||
"fa922061131282d91217a9ff07463843ae34ff7f8c28b6d93b23f1ea031d5020aa92f660"
|
||||
"8c3d3df0ee24a8958fd41af880ee454e36e26438defb2de8f09c018607c967d2f0e8b80a"
|
||||
@ -2042,7 +2043,7 @@ struct
|
||||
"b409cc322354672a21ea383e870d047551a3af71aaf2f44f49a859cf001e61b592dd036f"
|
||||
"c6625bf7b91ea0fb78c1563cceb8c4345bf4a9fbe6ee2b6bf5e81083",
|
||||
"8b6d59106f04300cb57c7c961945cd77f3536b0a",
|
||||
|
||||
},{
|
||||
13976,
|
||||
"162cca41155de90f6e4b76a34261be6666ef65bdb92b5831b47604ce42e0c6c8d2eda265"
|
||||
"ab9a3716809bf2e745e7831a41768d0f6349a268d9ac6e6adfb832a5d51b75d7951cf60e"
|
||||
@ -2094,7 +2095,7 @@ struct
|
||||
"7635eed03558ac673d17280769b2368056276d5d72f5dbc75525f8a7558bd90b544aa6cb"
|
||||
"dd964e6c70be79441969bfdf471f17a2dc0c92",
|
||||
"6144c4786145852e2a01b20604c369d1b9721019",
|
||||
|
||||
},{
|
||||
14768,
|
||||
"c9bed88d93806b89c2d028866842e6542ab88c895228c96c1f9f05125f8697c7402538b0"
|
||||
"6465b7ae33daef847500f73d20c598c86e4804e633e1c4466e61f3ed1e9baadc5723bbed"
|
||||
@ -2149,6 +2150,7 @@ struct
|
||||
"f5e1f03c2280e71c6e1ae21312d4ff163eee16ebb1fdee8e887bb0d453829b4e6ed5fa70"
|
||||
"8f2053f29b81e277be46",
|
||||
"a757ead499a6ec3d8ab9814f839117354ae563c8"
|
||||
}
|
||||
};
|
||||
|
||||
void test_sha1(void)
|
||||
@ -2257,14 +2259,14 @@ void do_compressor(int argc,char**argv)
|
||||
{
|
||||
char *p;
|
||||
size_t slen;
|
||||
int len;
|
||||
unsigned int len;
|
||||
|
||||
int window;
|
||||
if (argc == 2) {
|
||||
p = stb_file(argv[1], &slen);
|
||||
len = (int) slen;
|
||||
len = (unsigned int) slen;
|
||||
if (p) {
|
||||
int dlen, clen = stb_compress_tofile("data/dummy.bin", p, len);
|
||||
unsigned int dlen, clen = stb_compress_tofile("data/dummy.bin", p, len);
|
||||
char *q = stb_decompress_fromfile("data/dummy.bin", &dlen);
|
||||
|
||||
if (len != dlen) {
|
||||
@ -2398,7 +2400,7 @@ done:
|
||||
|
||||
|
||||
|
||||
|
||||
#if 0 // parser generator
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// stb_parser
|
||||
@ -2946,7 +2948,7 @@ void test_parser_generator(void)
|
||||
parser_destroy(p);
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // parser generator
|
||||
|
||||
#if 0
|
||||
// stb_threadtest.c
|
||||
|
@ -11,7 +11,7 @@
|
||||
//#include "stb_file.h"
|
||||
|
||||
int count;
|
||||
void c(int truth, char *error)
|
||||
void c(int truth, const char *error)
|
||||
{
|
||||
if (!truth) {
|
||||
fprintf(stderr, "Test failed: %s\n", error);
|
||||
@ -19,7 +19,7 @@ void c(int truth, char *error)
|
||||
}
|
||||
}
|
||||
|
||||
char *expects(stb_matcher *m, char *s, int result, int len, char *str)
|
||||
char *expects(stb_matcher *m, char *s, int result, int len, const char *str)
|
||||
{
|
||||
int res2,len2=0;
|
||||
res2 = stb_lex(m, s, &len2);
|
||||
@ -31,7 +31,7 @@ void test_lex(void)
|
||||
{
|
||||
stb_matcher *m = stb_lex_matcher();
|
||||
// tok_en5 .3 20.1 20. .20 .1
|
||||
char *s = "tok_en5.3 20.1 20. .20.1";
|
||||
char *s = (char*) "tok_en5.3 20.1 20. .20.1";
|
||||
|
||||
stb_lex_item(m, "[a-zA-Z_][a-zA-Z0-9_]*", 1 );
|
||||
stb_lex_item(m, "[0-9]*\\.?[0-9]*" , 2 );
|
||||
@ -53,22 +53,22 @@ void test_lex(void)
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
char *p;
|
||||
p = "abcdefghijklmnopqrstuvwxyz";
|
||||
p = (char*) "abcdefghijklmnopqrstuvwxyz";
|
||||
c(stb_ischar('c', p), "stb_ischar 1");
|
||||
c(stb_ischar('x', p), "stb_ischar 2");
|
||||
c(!stb_ischar('#', p), "stb_ischar 3");
|
||||
c(!stb_ischar('X', p), "stb_ischar 4");
|
||||
p = "0123456789";
|
||||
p = (char*) "0123456789";
|
||||
c(!stb_ischar('c', p), "stb_ischar 5");
|
||||
c(!stb_ischar('x', p), "stb_ischar 6");
|
||||
c(!stb_ischar('#', p), "stb_ischar 7");
|
||||
c(!stb_ischar('X', p), "stb_ischar 8");
|
||||
p = "#####";
|
||||
p = (char*) "#####";
|
||||
c(!stb_ischar('c', p), "stb_ischar a");
|
||||
c(!stb_ischar('x', p), "stb_ischar b");
|
||||
c(stb_ischar('#', p), "stb_ischar c");
|
||||
c(!stb_ischar('X', p), "stb_ischar d");
|
||||
p = "xXyY";
|
||||
p = (char*) "xXyY";
|
||||
c(!stb_ischar('c', p), "stb_ischar e");
|
||||
c(stb_ischar('x', p), "stb_ischar f");
|
||||
c(!stb_ischar('#', p), "stb_ischar g");
|
||||
|
@ -1 +1,7 @@
|
||||
#include "stretchy_buffer.h"
|
||||
|
||||
void test_sb(void)
|
||||
{
|
||||
char *x = NULL;
|
||||
sb_push(x, 'x');
|
||||
}
|
37
tests/test.sbm
Normal file
37
tests/test.sbm
Normal file
@ -0,0 +1,37 @@
|
||||
[compilers]
|
||||
VS2015 for x64, vcvars_2015_x64
|
||||
VC6 , vcvars_vc6
|
||||
VS2008 for x86, vcvars_2008_x86
|
||||
VS2013 for x86, vcvars_2013_x86
|
||||
VS2015 for x86, vcvars_2015_x86
|
||||
clang-cl for x64, vcvars_2015_x64, clang-cl
|
||||
clang-cl for x86, vcvars_2015_x86, clang32-cl
|
||||
#these batch files don't work on my machine
|
||||
#VS2008 for x64, vcvars_2008_x64
|
||||
#VS2013 for x64, vcvars_2013_x64
|
||||
|
||||
[args]
|
||||
-I .. -W3 -WX -D_DEBUG
|
||||
|
||||
[link]
|
||||
advapi32.lib
|
||||
|
||||
[projects]
|
||||
c_lexer_test.c
|
||||
image_test.c image_write_test.c
|
||||
test_cpp_compilation.cpp stb_cpp.cpp ../stb_vorbis.c
|
||||
resample_test.cpp
|
||||
-DTT_TEST test_c_compilation.c test_truetype.c
|
||||
main.c stb.c
|
||||
main.c stretchy_buffer_test.c
|
||||
main.c test_c_compilation.c
|
||||
main.c test_c_lexer.c
|
||||
main.c test_dxt.c
|
||||
main.c test_easyfont.c
|
||||
main.c test_image.c
|
||||
main.c test_image_write.c
|
||||
main.c test_perlin.c
|
||||
main.c test_sprintf.c
|
||||
main.c test_vorbis.c ../stb_vorbis.c
|
||||
main.c test_voxel.c
|
||||
main.c textedit_sample.c
|
@ -3,6 +3,7 @@
|
||||
#include "stb_sprintf.h"
|
||||
|
||||
#define STB_IMAGE_WRITE_STATIC
|
||||
#define STBIWDEF static inline
|
||||
|
||||
#define STB_IMAGE_WRITE_IMPLEMENTATION
|
||||
#define STB_TRUETYPE_IMPLEMENTATION
|
||||
@ -57,9 +58,18 @@ void my_free(void *) { }
|
||||
#define STB_IMAGE_RESIZE_IMPLEMENTATION
|
||||
#include "stb_image_resize.h"
|
||||
|
||||
#include "stretchy_buffer.h"
|
||||
//#include "stretchy_buffer.h" // deprecating
|
||||
|
||||
|
||||
// avoid unused-function complaints
|
||||
void dummy2(void)
|
||||
{
|
||||
stb_easy_font_spacing(1.0);
|
||||
stb_easy_font_print(0,0,NULL,NULL,NULL,0);
|
||||
stb_easy_font_width(NULL);
|
||||
stb_easy_font_height(NULL);
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
//
|
||||
@ -113,7 +123,7 @@ int insert_chars(STB_TEXTEDIT_STRING *str, int pos, STB_TEXTEDIT_CHARTYPE *newte
|
||||
|
||||
// define all the #defines needed
|
||||
|
||||
#define KEYDOWN_BIT 0x80000000
|
||||
#define KEYDOWN_BIT 0x40000000
|
||||
|
||||
#define STB_TEXTEDIT_STRINGLEN(tc) ((tc)->stringlen)
|
||||
#define STB_TEXTEDIT_LAYOUTROW layout_func
|
||||
@ -125,8 +135,8 @@ int insert_chars(STB_TEXTEDIT_STRING *str, int pos, STB_TEXTEDIT_CHARTYPE *newte
|
||||
#define STB_TEXTEDIT_DELETECHARS delete_chars
|
||||
#define STB_TEXTEDIT_INSERTCHARS insert_chars
|
||||
|
||||
#define STB_TEXTEDIT_K_SHIFT 0x40000000
|
||||
#define STB_TEXTEDIT_K_CONTROL 0x20000000
|
||||
#define STB_TEXTEDIT_K_SHIFT 0x20000000
|
||||
#define STB_TEXTEDIT_K_CONTROL 0x10000000
|
||||
#define STB_TEXTEDIT_K_LEFT (KEYDOWN_BIT | 1) // actually use VK_LEFT, SDLK_LEFT, etc
|
||||
#define STB_TEXTEDIT_K_RIGHT (KEYDOWN_BIT | 2) // VK_RIGHT
|
||||
#define STB_TEXTEDIT_K_UP (KEYDOWN_BIT | 3) // VK_UP
|
||||
@ -149,3 +159,12 @@ int insert_chars(STB_TEXTEDIT_STRING *str, int pos, STB_TEXTEDIT_CHARTYPE *newte
|
||||
#include "stb_textedit.h"
|
||||
|
||||
|
||||
void dummy3(void)
|
||||
{
|
||||
stb_textedit_click(0,0,0,0);
|
||||
stb_textedit_drag(0,0,0,0);
|
||||
stb_textedit_cut(0,0);
|
||||
stb_textedit_key(0,0,0);
|
||||
stb_textedit_initialize_state(0,0);
|
||||
stb_textedit_paste(0,0,0,0);
|
||||
}
|
||||
|
@ -1 +1,10 @@
|
||||
#include "stb_easy_font.h"
|
||||
|
||||
void ef_dummy(void)
|
||||
{
|
||||
// suppress unsused-function warning
|
||||
stb_easy_font_spacing(0);
|
||||
stb_easy_font_print(0,0,0,0,0,0);
|
||||
stb_easy_font_width(0);
|
||||
stb_easy_font_height(0);
|
||||
}
|
@ -1,3 +1,7 @@
|
||||
#ifdef __clang__
|
||||
#define STBIDEF static inline
|
||||
#endif
|
||||
|
||||
#define STB_IMAGE_STATIC
|
||||
#define STB_IMAGE_IMPLEMENTATION
|
||||
#include "stb_image.h"
|
@ -1,3 +1,7 @@
|
||||
#ifdef __clang__
|
||||
#define STBIWDEF static inline
|
||||
#endif
|
||||
|
||||
#define STB_IMAGE_WRITE_IMPLEMENTATION
|
||||
#define STB_IMAGE_WRITE_STATIC
|
||||
#include "stb_image_write.h"
|
@ -1,7 +1,3 @@
|
||||
#define STB_IMAGE_STATIC
|
||||
#define STB_IMAGE_IMPLEMENTATION
|
||||
#include "stb_image.h"
|
||||
|
||||
#define STB_VORBIS_HEADER_ONLY
|
||||
#include "stb_vorbis.c"
|
||||
#include "stb.h"
|
||||
|
@ -82,3 +82,13 @@ int insert_chars(STB_TEXTEDIT_STRING *str, int pos, STB_TEXTEDIT_CHARTYPE *newte
|
||||
|
||||
#define STB_TEXTEDIT_IMPLEMENTATION
|
||||
#include "stb_textedit.h"
|
||||
|
||||
void dummy3(void)
|
||||
{
|
||||
stb_textedit_click(0,0,0,0);
|
||||
stb_textedit_drag(0,0,0,0);
|
||||
stb_textedit_cut(0,0);
|
||||
stb_textedit_key(0,0,0);
|
||||
stb_textedit_initialize_state(0,0);
|
||||
stb_textedit_paste(0,0,0,0);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user