void veta_render(){ box b; b.x0=b.y0=0; b.w=WIDTH; b.h=HEIGHT; draw_box(WIDTH,HEIGHT,0,0,0,0,0); if(selection_mode==ZOOM){ cell *deepest=get_deepest_cell(root_cell); render_cell(deepest,&b); }else{ render_cell(root_cell,&b); } render_ui2(); // FIXME: Cleanup and and add configuration options vo_screenshot("var not used!", WIDTH, HEIGHT); #ifdef DEBUG rgb black=(rgb){0,0,0}; rgb white=(rgb){0xff,0xff,0xff}; draw_text_box(BUILD,650,40,20,HEIGHT-45,white,black); #endif }
void render_world(world w, SDL_Renderer* renderer, camera cam) { int i; int centerX = cam.w/2; // Center viewport int centerY = cam.h/2; // position int oX1, oY1, oX2, oY2; // Draw Cells for(i=0 ; i < w->cells_counter ; i++) { render_cell(w->cells[i], cam, renderer); } // Draw world center SDL_SetRenderDrawColor(renderer, 231, 231, 131, 255); oX1 = convert_coord(-1, centerX, cam.x, cam.zoom); oY1 = convert_coord(-1, centerY, cam.y, cam.zoom); oX2 = convert_coord(1, centerX, cam.x, cam.zoom); oY2 = convert_coord(1, centerY, cam.y, cam.zoom); SDL_RenderDrawLine(renderer, oX1, oY1, oX2, oY2); SDL_RenderDrawLine(renderer, oX1, oY2, oX2, oY1); // Draw sight SDL_SetRenderDrawColor(renderer, 1, 1, 1, 255); SDL_RenderDrawLine(renderer, -3+centerX, 1+centerY, 3+centerX, 1+centerY); SDL_RenderDrawLine(renderer, -3+centerX, -1+centerY, 3+centerX, -1+centerY); SDL_RenderDrawLine(renderer, 1+centerX, -3+centerY, 1+centerX, 3+centerY); SDL_RenderDrawLine(renderer, -1+centerX, -3+centerY, -1+centerX, 3+centerY); SDL_SetRenderDrawColor(renderer, 231, 231, 231, 255); SDL_RenderDrawLine(renderer, -3+centerX, 0+centerY, 3+centerX, 0+centerY); SDL_RenderDrawLine(renderer, 0+centerX, -3+centerY, 0+centerX, 3+centerY); }
int render_cell(cell *cell,void *data){ assert(cell != NULL); assert(data != NULL); box *ob=(box *)data; box nb; assert(cell); if(cell->level>1){ if(cell->symbol->name){ rgb fg={255,255,255}; rgb bg={0,0,0}; // FIXME this should handle an arbitrary level int is_selected=cell->selected || (cell->parent && cell->parent->selected); if(selection_mode==HIGHLIGHT) bg=is_selected?cell->color_selected:cell->color; else if(ui2_is_selected(cell->symbol)) bg=cell->color_selected; else bg=cell->color; draw_text_box(cell->symbol->name,ob->w,ob->h,ob->x0,ob->y0,fg,bg); }else{ } } else { // draw_box(WIDTH,HEIGHT,0,0,0,0,0); } int n_cols=conf_get_int("n_columns",CELLS_W); int n_rows=conf_get_int("n_rows",CELLS_H); int innerWidth=(ob->w/n_cols)*0.9; int innerHeight=(ob->h/n_rows)*0.9; nb.w=(ob->w/n_cols)*0.9; nb.h=(ob->h/n_rows)*0.9; int pleft=0.1*(ob->w/n_cols); int ptop=0.1*(ob->h/n_rows); for(int i=0;i<cell->nchildren ;i++){ nb.x0=nb.w*(i%n_cols)+ob->x0+pleft; nb.y0=nb.h*(i/n_cols)+ob->y0+ptop; render_cell(cell->children[i],&nb); } return 0; }