7983
|
1 |
#ifndef _FPCRTL_MISC_H_
|
|
2 |
#define _FPCRTL_MISC_H_
|
|
3 |
|
|
4 |
#include "pas2c.h"
|
|
5 |
#include <assert.h>
|
|
6 |
#include <stdbool.h>
|
|
7 |
|
|
8 |
#ifdef EMSCRIPTEN
|
|
9 |
#include <GL/gl.h>
|
|
10 |
#else
|
|
11 |
#include <GL/glew.h>
|
|
12 |
#endif
|
|
13 |
|
|
14 |
#define VA_NUM_ARGS(...) VA_NUM_ARGS_IMPL(__VA_ARGS__, 5,4,3,2,1)
|
|
15 |
#define VA_NUM_ARGS_IMPL(_1,_2,_3,_4,_5,N,...) N
|
|
16 |
|
|
17 |
#define macro_dispatcher(func, ...) macro_dispatcher_(func, VA_NUM_ARGS(__VA_ARGS__))
|
|
18 |
#define macro_dispatcher_(func, nargs) macro_dispatcher__(func, nargs)
|
|
19 |
#define macro_dispatcher__(func, nargs) func ## nargs
|
|
20 |
|
|
21 |
#define FPCRTL_DEBUG
|
|
22 |
|
|
23 |
#define FIX_STRING(s) (s.str[s.len] = 0)
|
|
24 |
|
|
25 |
//#define fpcrtl_check_string(s) do{ if(strlen((s).str) != (s).len){ \
|
|
26 |
// printf("String %s internal inconsistency error. Length should be %d but actually is %d.\n", (s).str, strlen((s).str), (s).len); \
|
|
27 |
// assert(0);\
|
|
28 |
// }}while(0)
|
|
29 |
|
|
30 |
void fpcrtl_assert(int);
|
|
31 |
void fpcrtl_print_trace (void);
|
|
32 |
|
|
33 |
int fpcrtl_round(double number);
|
|
34 |
void fpcrtl_printf(const char* format, ...);
|
|
35 |
|
|
36 |
string255 fpcrtl_make_string(const char* s);
|
|
37 |
|
|
38 |
string255 fpcrtl_strconcat(string255 str1, string255 str2);
|
|
39 |
string255 fpcrtl_strappend(string255 s, char c);
|
|
40 |
string255 fpcrtl_strprepend(char c, string255 s);
|
|
41 |
string255 fpcrtl_chrconcat(char a, char b);
|
|
42 |
|
|
43 |
// return true if str1 == str2
|
|
44 |
bool fpcrtl_strcompare(string255 str1, string255 str2);
|
|
45 |
bool fpcrtl_strcomparec(string255 a, char b);
|
|
46 |
bool fpcrtl_strncompare(string255 a, string255 b);
|
|
47 |
|
|
48 |
#define fpcrtl__pchar(s) ((s).str)
|
|
49 |
string255 fpcrtl_pchar2str(char *s);
|
|
50 |
|
|
51 |
#define fpcrtl_TypeInfo sizeof // dummy
|
|
52 |
|
|
53 |
#ifdef EMSCRIPTEN
|
|
54 |
#define GLEW_OK 1
|
|
55 |
GLenum glewInit();
|
|
56 |
#endif
|
|
57 |
|
|
58 |
#endif
|