X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=src%2Fwrapped.h;h=2518025c937a03d414ca0040a567c3aeffc20077;hb=205969fe1c437850b377aa7ad715a927c3d5430b;hp=2412d7eab0907ab46d02c098457d8eeedf73fb93;hpb=2dfe078cf4082caf641c96449907f36a9029b486;p=guile-irrlicht.git
diff --git a/src/wrapped.h b/src/wrapped.h
index 2412d7e..2518025 100644
--- a/src/wrapped.h
+++ b/src/wrapped.h
@@ -19,54 +19,18 @@
.
*/
+#ifndef __GUILE_IRRLICHT_WRAPPED_H_INCLUDED__
+#define __GUILE_IRRLICHT_WRAPPED_H_INCLUDED__
+
+#include
#include
-#define DECLARE_WRAPPED_TYPE(TYPE, INIT, PRED, WRAP, UNWRAP) \
- void \
- INIT (void); \
- \
- SCM \
- WRAP (TYPE foreign_obj); \
- \
- TYPE \
- UNWRAP (SCM wrapped_obj); \
- \
- bool \
- PRED (SCM wrapped_obj);
+using namespace irr;
+
+SCM
+scm_from_irr_pointer (const char* class_name, void* pointer);
+void*
+scm_to_irr_pointer (SCM obj);
-#define DEFINE_WRAPPED_TYPE(TYPE, PRINT_NAME, INIT, PRED, WRAP, UNWRAP) \
- static SCM wrapped_type; \
- \
- void \
- INIT (void) \
- { \
- SCM name, slots; \
- scm_t_struct_finalize finalizer; \
- \
- name = scm_from_utf8_symbol (PRINT_NAME); \
- slots = scm_list_1 (scm_from_utf8_symbol ("data")); \
- finalizer = NULL; \
- \
- wrapped_type = \
- scm_make_foreign_object_type (name, slots, finalizer); \
- } \
- \
- SCM \
- WRAP (TYPE foreign_obj) \
- { \
- return scm_make_foreign_object_1 (wrapped_type, foreign_obj); \
- } \
- \
- TYPE \
- UNWRAP (SCM wrapped_obj) \
- { \
- scm_assert_foreign_object_type (wrapped_type, wrapped_obj); \
- return (TYPE)scm_foreign_object_ref (wrapped_obj, 0); \
- } \
- \
- bool \
- PRED (SCM wrapped_obj) \
- { \
- return SCM_IS_A_P (wrapped_obj, wrapped_type); \
- }
+#endif