#ifndef PICOINTERNAL_H
#define PICOINTERNAL_H
+#include "globaldefs.h"
+
#ifdef __cplusplus
extern "C"
{
#include "picomodel.h"
-/* os dependant replacements */
-#if WIN32 || _WIN32
+/* os dependent replacements */
+#if GDEF_OS_WINDOWS
#define _pico_stricmp stricmp
#define _pico_strnicmp strnicmp
#else
#define PICO_IOEOF 1
#define PICO_IOERR 2
+extern const picoColor_t picoColor_white;
+
/* types */
+#ifndef byte
+ typedef unsigned char byte;
+#endif
+
typedef struct picoParser_s
{
- char *buffer;
+ const char *buffer;
int bufSize;
- char *token;
+ char *token;
int tokenSize;
int tokenMax;
- char *cursor;
- char *max;
+ const char *cursor;
+ const char *max;
int curLine;
}
picoParser_t;
typedef struct picoMemStream_s
{
- picoByte_t *buffer;
+ const picoByte_t *buffer;
int bufSize;
- picoByte_t *curPos;
+ const picoByte_t *curPos;
int flag;
}
picoMemStream_t;
extern void *( *_pico_ptr_malloc )( size_t );
extern void ( *_pico_ptr_free )( void* );
-extern void ( *_pico_ptr_load_file )( char*, unsigned char**, int* );
+extern void ( *_pico_ptr_load_file )( const char*, unsigned char**, int* );
extern void ( *_pico_ptr_free_file )( void* );
extern void ( *_pico_ptr_print )( int, const char* );
void *_pico_alloc( size_t size );
void *_pico_calloc( size_t num, size_t size );
void *_pico_realloc( void **ptr, size_t oldSize, size_t newSize );
-char *_pico_clone_alloc( char *str, int size );
+char *_pico_clone_alloc( const char *str );
void _pico_free( void *ptr );
/* files */
-void _pico_load_file( char *name, unsigned char **buffer, int *bufSize );
+void _pico_load_file( const char *name, unsigned char **buffer, int *bufSize );
void _pico_free_file( void *buffer );
/* strings */
+void _pico_first_token( char *str );
char *_pico_strltrim( char *str );
char *_pico_strrtrim( char *str );
int _pico_strchcount( char *str, int ch );
void _pico_printf( int level, const char *format, ... );
-char *_pico_stristr( char *str, const char *substr );
+const char *_pico_stristr( const char *str, const char *substr );
void _pico_unixify( char *path );
int _pico_nofname( const char *path, char *dest, int destSize );
-char *_pico_nopath( const char *path );
+const char *_pico_nopath( const char *path );
char *_pico_setfext( char *path, const char *ext );
int _pico_getline( char *buf, int bufsize, char *dest, int destsize );
char *_pico_strlwr( char *str );
+void _pico_deduce_shadernames( picoModel_t *model );
/* vectors */
void _pico_zero_bounds( picoVec3_t mins, picoVec3_t maxs );
void _pico_set_vec( picoVec3_t v, float a, float b, float c );
void _pico_set_vec4( picoVec4_t v, float a, float b, float c, float d );
void _pico_set_color( picoColor_t c, int r, int g, int b, int a );
-void _pico_copy_color( picoColor_t src, picoColor_t dest );
+void _pico_copy_color( const picoColor_t src, picoColor_t dest );
void _pico_copy_vec( picoVec3_t src, picoVec3_t dest );
void _pico_copy_vec2( picoVec2_t src, picoVec2_t dest );
picoVec_t _pico_normalize_vec( picoVec3_t vec );
float _pico_little_float( float src );
/* pico ascii parser */
-picoParser_t *_pico_new_parser( picoByte_t *buffer, int bufSize );
+picoParser_t *_pico_new_parser( const picoByte_t *buffer, int bufSize );
void _pico_free_parser( picoParser_t *p );
int _pico_parse_ex( picoParser_t *p, int allowLFs, int handleQuoted );
char *_pico_parse_first( picoParser_t *p );
int _pico_parse_vec4_def( picoParser_t *p, picoVec4_t out, picoVec4_t def );
/* pico memory stream */
-picoMemStream_t *_pico_new_memstream( picoByte_t *buffer, int bufSize );
+picoMemStream_t *_pico_new_memstream( const picoByte_t *buffer, int bufSize );
void _pico_free_memstream( picoMemStream_t *s );
int _pico_memstream_read( picoMemStream_t *s, void *buffer, int len );
int _pico_memstream_getc( picoMemStream_t *s );