t_screen *screen_default(const char *name, void (* draw)(t_screen *s)) { t_context *C=ctx_get(); t_node *node=scene_add(C->scene,dt_screen,name); t_screen *screen=node->data; screen->keymap=keymap_generic; screen->draw=draw; // Add to UI Screens lst_add(C->ui->screens,node,name); // Lst t_node *node_lst = scene_add( C->scene, dt_list, "lst"); t_lst *lst = node_lst->data; screen->viewports = lst; // Viewport t_node *node_viewport = scene_add( C->scene, dt_viewport, name); t_viewport *viewport = node_viewport->data; // Camera t_node *node_camera = scene_add( C->scene, dt_camera, name); t_camera *camera = node_camera->data; viewport->camera = camera; lst_add(screen->viewports, viewport, name); return screen; }
// Initializes the scene list, the scenes, and push them into the list. void nov_scene_list_init() { on_level = __level_load_event; // Open the scene list. scene_new(); // Creates the scene nodes. day[0] = scene_data_new("Fragment #1", // Name of the chapter. _chr(game_asset_get_scene("fragment1.wmb")), // Internal name of the chapter. (scene name) NULL, // Name of the thumbnail image. NULL, // Sun color. NULL, // Fog color. NULL, // Fog range. 150.0); // Sun light intensity. day[1] = scene_data_new("Fragment #2", _chr(game_asset_get_scene("fragment2.wmb")), NULL, NULL, NULL, NULL, 150.0); day[2] = scene_data_new("Fragment #3", _chr(game_asset_get_scene("fragment3.wmb")), NULL, NULL, NULL, NULL, 150.0); day[3] = scene_data_new("Fragment #4", _chr(game_asset_get_scene("fragment4.wmb")), NULL, NULL, NULL, NULL, 150.0); day[4] = scene_data_new("Fragment #5", _chr(game_asset_get_scene("fragment5.wmb")), NULL, NULL, NULL, NULL, 150.0); day[5] = scene_data_new("Fragment #6", _chr(game_asset_get_scene("fragment6.wmb")), NULL, NULL, NULL, NULL, 150.0); day[6] = scene_data_new("Fragment #7", _chr(game_asset_get_scene("empty.wmb")), NULL, NULL, NULL, NULL, 150.0); int i = 0; for(; i < TOTAL_DAYS; i++) scene_add( day[i] ); }
t_node *op_texture_add(const char *path) { t_context *C = ctx_get(); t_node *node_file = scene_add(C->scene,dt_file,path); t_file *file = ( t_file *) node_file->data; char *ext=file->ext; if(*ext) { if(is(ext,"jpg")) { #ifdef HAVE_JPG op_texture_jpg_add(file); #endif } else if(is(ext,"png")) { #ifdef HAVE_PNG op_texture_png_add(file); #endif } else { printf("[ERROR:op_texture_add] Unknonw extension:%s\n",file->ext); } } else { printf("[ERROR:op_texture_add] No extension\n"); return NULL; } return node_file; }
t_node *block_make(const char *name,const char *type) { t_context *C=ctx_get(); t_node *n_block=scene_add(C->scene,nt_block,name); t_node *n_list=scene_add(C->scene,nt_list,name); t_block *block=n_block->data; set_name(block->type,type); block_init(C->scene,block); block->cls->link(block,n_list); return n_block; }
t_screen *screen_add_3d(const char *name, void (* draw)(t_screen *s)) { t_context *C=ctx_get(); t_node *node=scene_add(C->scene,dt_screen,name); t_screen *screen=node->data; screen->keymap=keymap_generic; screen->draw=draw; lst_add(C->ui->screens,node,name); // Lst t_node *node_lst = scene_add( C->scene, dt_list, "lst_screen"); t_lst *lst = node_lst->data; screen->viewports = lst; // Viewport t_node *node_viewport = scene_add( C->scene, dt_viewport, "viewport"); t_viewport *viewport = node_viewport->data; // Camera t_node *node_camera = scene_add( C->scene, dt_camera, name); t_camera *camera = node_camera->data; camera_add_controls( camera); viewport->camera = camera; viewport_add_controls( viewport); screen->width = C->app->window->width; screen->height = C->app->window->height; viewport->width = C->app->window->width; viewport->height = C->app->window->height; list_add_data(screen->viewports, viewport); return screen; }
void glint_add_module_startup( t_context *C, t_module_method f) { t_module_startup *mod = ( t_module_startup *) malloc( sizeof( t_module_startup)); mod->done = 0; mod->method = f; t_node *node = scene_add( C->scene, dt_module, "startup"); t_module *module = ( t_module *) node->data; module->update = glint_module_startup; module->data = mod; lst_add( C->mode->modules, module, module->id.name); }
void screen_block_add(t_screen *screen, t_block *block) { t_context *C = ctx_get(); if(screen->blocks) { list_add_data(screen->blocks, block); } else { t_node *node = scene_add(C->scene, dt_lst, "lst"); t_lst *lst = node->data; screen->blocks = lst; screen_block_add(screen, block); } }
t_node *op_texture_png_add(t_file *file) { t_context *C = ctx_get(); t_node *node = scene_add( C->scene, dt_texture, file->id.name); t_texture *texture = ( t_texture *) node->data; t_image *image = img_read_png( file->path); if(image) { texture_image_bind( texture, image); } op_texture_store(texture); return node; }
t_vlst *vlst_make( const char *name, t_data_type type, int length, int count, void *data) { t_context *C=ctx_get(); t_node *node_vlst=scene_add(C->scene,dt_vlst,name); t_vlst *vlst=node_vlst->data; vlst->type = type; vlst->length = length; vlst->count=count; vlst->count_new=vlst->count; if(type == dt_int) vlst->size = sizeof(int); else if(type == dt_uint) vlst->size = sizeof(unsigned int); else if(type == dt_float) vlst->size = sizeof(float); else if(type == dt_uchar) vlst->size = sizeof(unsigned char); else printf("[ERROR vlst_make] Unknown type %s\n",data_name_get(type)); if( !data && length && count) { vlst->data=mem_malloc((vlst->size)*(vlst->length)*(vlst->count)); if(C->scene->store) { scene_add_data_var(C->scene,"vlst_data","v_data",((vlst->size)*(vlst->length)*(vlst->count)),vlst->data); } } else { vlst->data = data; } if(C->ui->add_bricks && C->ui->add_bricks_data) { t_node *node_block=add_block(C,"vlst"); t_block *block=node_block->data; add_part_vlst(C,block,dt_vlst,"vlst",vlst); vlst->ref = block; } return vlst; }
Scene *BKE_scene_add(Main *bmain, const char *name) { return scene_add(bmain, name); }