00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00024
00025
00027
00028
00030 #include <stdio.h>
00031
00032 #ifndef NDEBUG
00033
00034 #define CSFML_CHECK(Object) \
00035 if (Object == NULL) \
00036 { \
00037 fprintf(stderr, "SFML warning : trying to use a null " #Object " object\n"); \
00038 return; \
00039 }
00040
00041 #define CSFML_CALL(Object, Function) \
00042 if (Object) \
00043 { \
00044 (Object->This.Function); \
00045 } \
00046 else \
00047 { \
00048 fprintf(stderr, "SFML warning : trying to use a null " #Object " object\n"); \
00049 } \
00050
00051 #define CSFML_CALL_PTR(Object, Function) \
00052 if (Object) \
00053 { \
00054 (Object->This->Function); \
00055 } \
00056 else \
00057 { \
00058 fprintf(stderr, "SFML warning : trying to use a null " #Object " object\n"); \
00059 } \
00060
00061 #define CSFML_CHECK_RETURN(Object, Default) \
00062 if (Object == NULL) \
00063 { \
00064 fprintf(stderr, "SFML warning : trying to use a null " #Object " object\n"); \
00065 return Default; \
00066 }
00067
00068 #define CSFML_CALL_RETURN(Object, Function, Default) \
00069 if (Object) \
00070 { \
00071 return (Object->This.Function); \
00072 } \
00073 else \
00074 { \
00075 fprintf(stderr, "SFML warning : trying to use a null " #Object " object\n"); \
00076 return Default; \
00077 } \
00078
00079 #define CSFML_CALL_PTR_RETURN(Object, Function, Default) \
00080 if (Object) \
00081 { \
00082 return (Object->This->Function); \
00083 } \
00084 else \
00085 { \
00086 fprintf(stderr, "SFML warning : trying to use a null " #Object " object\n"); \
00087 return Default; \
00088 } \
00089
00090 #else
00091
00092 #define CSFML_CHECK(Object)
00093
00094 #define CSFML_CALL(Object, Function) (Object->This.Function);
00095
00096 #define CSFML_CALL_PTR(Object, Function) (Object->This->Function);
00097
00098 #define CSFML_CHECK_RETURN(Object, Default)
00099
00100 #define CSFML_CALL_RETURN(Object, Function, Default) return (Object->This.Function);
00101
00102 #define CSFML_CALL_PTR_RETURN(Object, Function, Default) return (Object->This->Function);
00103
00104 #endif