DAO_DLL int DaoGraph_OnLoad( DaoVmSpace *vmSpace, DaoNamespace *ns ) { daox_node_template_type = DaoNamespace_WrapType( ns, & daoNodeCore, DAO_CSTRUCT, 0 ); daox_edge_template_type = DaoNamespace_WrapType( ns, & daoEdgeCore, DAO_CSTRUCT, 0 ); daox_graph_template_type = DaoNamespace_WrapType( ns, & daoGraphCore, DAO_CSTRUCT, 0 ); daox_graph_data_type = DaoNamespace_WrapType( ns, & daoGraphDataCore, DAO_CSTRUCT, 0 ); daox_graph_maxflow_type = DaoNamespace_WrapType( ns, & daoGraphMaxFlowCore, DAO_CSTRUCT, 0 ); return 0; }
DAO_DLL int DaoSync_OnLoad( DaoVmSpace *vmSpace, DaoNamespace *ns ) { dao_type_mutex = DaoNamespace_WrapType( ns, & mutexTyper, 0 ); dao_type_condvar = DaoNamespace_WrapType( ns, & condvTyper, 0 ); dao_type_sema = DaoNamespace_WrapType( ns, & semaTyper, 0 ); daox_type_DaoState = DaoNamespace_WrapType( ns, &stateTyper, 0 ); daox_type_DaoQueue = DaoNamespace_WrapType( ns, &queueTyper, 0 ); return 0; }
DAO_DLL int DaoFont_OnLoad( DaoVmSpace *vmSpace, DaoNamespace *ns ) { DaoxFont *font; daox_type_font = DaoNamespace_WrapType( ns, & DaoxFont_Typer, 0 ); daox_type_glyph = DaoNamespace_WrapType( ns, & DaoxGlyph_Typer, 0 ); daox_default_font = font = DaoxFont_New(); DaoNamespace_AddConstValue( ns, "DefaultFont", (DaoValue*) font ); if( stbtt_InitFont( & font->info, daox_courier_code_roman_font_data, 0 ) == 0 ) return 1; stbtt_GetFontVMetrics( & font->info, & font->ascent, & font->descent, & font->lineSpace ); font->fontHeight = font->ascent - font->descent; font->lineSpace += font->fontHeight; return 0; }
DAO_DLL_EXPORT int DaoStream_OnLoad( DaoVmSpace *vmSpace, DaoNamespace *ns ) { DaoNamespace *ions = DaoVmSpace_GetNamespace( vmSpace, "io" ); daoFileStreamCore.bases[0] = DaoType_GetTypeCore( dao_type_stream ); daoPipeStreamCore.bases[0] = DaoType_GetTypeCore( dao_type_stream ); daoStringStreamCore.bases[0] = DaoType_GetTypeCore( dao_type_stream ); daoSeekableDeviceCore.bases[0] = DaoType_GetTypeCore( dao_type_io_device ); dao_type_file_stream = DaoNamespace_WrapType( ions, & daoFileStreamCore, DAO_CSTRUCT, 0 ); dao_type_pipe_stream = DaoNamespace_WrapType( ions, & daoPipeStreamCore, DAO_CSTRUCT, 0 ); dao_type_string_stream = DaoNamespace_WrapType( ions, & daoStringStreamCore, DAO_CSTRUCT, 0 ); DaoNamespace_WrapInterface( ions, & daoSeekableDeviceCore ); DaoNamespace_WrapFunctions( ions, dao_io_methods ); #define DAO_API_INIT #include"dao_api.h" return 0; }
int DaoOnLoad( DaoVmSpace *vms, DaoNamespace *ns ) { __daoVmSpace = vms; DaoNamespace *SDL = DaoVmSpace_LinkModule( vms, ns, "SDL" ); if( SDL == NULL ) SDL = DaoVmSpace_LinkModule( vms, ns, "DaoSDL" ); if( SDL == NULL ) return 1; DaoNamespace_AddConstNumbers( ns, dao__Nums ); dao_type_CommonState = DaoNamespace_WrapType( ns, dao_CommonState_Typer, 1 ); DaoNamespace_TypeDefines( ns, dao__Aliases ); DaoNamespace_WrapFunctions( ns, dao__Funcs ); return 0; }
DAO_DLL int DaoWindow_OnLoad( DaoVmSpace *vmSpace, DaoNamespace *ns ) { dao_vmspace_graphics = vmSpace; if( glfwInit() == 0 ) return 1; glfwWindowHint(GLFW_VISIBLE, 0); glfwWindowHint(GLFW_SAMPLES, 8); glfwWindowHint(GLFW_DOUBLEBUFFER, 1); glfwWindowHint(GLFW_DEPTH_BITS, 24); glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2); #ifdef MACOSX glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); /*Not for Linux with Mesa;*/ glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); #endif glfwSetErrorCallback( DaoxGLFW_Error ); daox_type_window = DaoNamespace_WrapType( ns, & DaoxWindow_Typer, 0 ); return 0; }
DAO_DLL int DaoOnLoad( DaoVmSpace *vmSpace, DaoNamespace *ns ) { __daoVmSpace = vmSpace; printf( "DaoGraphics3D_OnLoad\n" ); ns = DaoVmSpace_GetNamespace( vmSpace, "Graphics" ); daox_type_mesh_unit = DaoNamespace_WrapType( ns, & DaoxMeshUnit_Typer, 0 ); daox_type_mesh = DaoNamespace_WrapType( ns, & DaoxMesh_Typer, 0 ); daox_type_texture = DaoNamespace_WrapType( ns, & DaoxTexture_Typer, 0 ); daox_type_material = DaoNamespace_WrapType( ns, & DaoxMaterial_Typer, 0 ); daox_type_scene_node = DaoNamespace_WrapType( ns, & DaoxSceneNode_Typer, 0 ); daox_type_camera = DaoNamespace_WrapType( ns, & DaoxCamera_Typer, 0 ); daox_type_light = DaoNamespace_WrapType( ns, & DaoxLight_Typer, 0 ); daox_type_model = DaoNamespace_WrapType( ns, & DaoxModel_Typer, 0 ); daox_type_scene = DaoNamespace_WrapType( ns, & DaoxScene_Typer, 0 ); daox_type_painter = DaoNamespace_WrapType( ns, & DaoxPainter_Typer, 0 ); daox_type_renderer = DaoNamespace_WrapType( ns, & DaoxRenderer_Typer, 0 ); daox_type_resource = DaoNamespace_WrapType( ns, & DaoxResource_Typer, 0 ); DaoVectorGraphics_OnLoad( vmSpace, ns ); DaoGLUT_OnLoad( vmSpace, ns ); //Test(); return 0; }
DAO_DLL int DaoUsertype_OnLoad( DaoVmSpace *vmSpace, DaoNamespace *ns ) { daox_type_user_type = DaoNamespace_WrapType( ns, & userTypeTyper, DAO_CSTRUCT, DAO_CTYPE_INVAR ); return 0; }
DAO_DLL int DaoTriangulator_OnLoad( DaoVmSpace *vmSpace, DaoNamespace *ns ) { daox_type_triangulator = DaoNamespace_WrapType( ns, & DaoxTriangulator_Typer, 1 ); return 0; }
DAO_DLL int DaoSys_OnLoad( DaoVmSpace *vmSpace, DaoNamespace *ns ) { daox_type_buffer = DaoNamespace_WrapType( ns, & bufferTyper, 0 ); DaoNamespace_WrapType( ns, & modSysCoreTyper, 1 ); return 0; }
DAO_DLL int DaoCoroutine_OnLoad( DaoVmSpace *vmSpace, DaoNamespace *ns ) { daox_type_coroutine = DaoNamespace_WrapType( ns, & daoCoroutineCore, DAO_CSTRUCT, 0 ); return 0; }