void apply_bottom_right(char** map, int x, int y, t_pos** pos) { y = y + 1; x = x + 1; while (map[y][x] != *pos[y][x].player) { g_signal_handlers_destroy(pos[y][x].area); if (*pos[y][x].player == 1) { color_black(pos[y][x].area, 0); g_signal_connect(G_OBJECT(pos[y][x].area), "expose_event", G_CALLBACK(color_black), 0); map[y][x] = 1; } if (*pos[y][x].player == 2) { color_white(pos[y][x].area, 0); g_signal_connect(G_OBJECT(pos[y][x].area), "expose_event", G_CALLBACK(color_white), 0); map[y][x] = 2; } y = y + 1; x = x + 1; } }
design_defaults_s *design_defaults_create(void) { design_defaults_s *d; d = (design_defaults_s *)malloc(sizeof(design_defaults_s)); memset(d, 0, sizeof(design_defaults_s)); d->units = units_type_mm; d->line_weight = 1.0; d->line_style = strdup("solid"); d->fill_style = strdup("NONE"); d->dimension_text_size = 4.0; d->dimension_precision = 2; d->angular_gap = 5.0; d->angular_extension = 25.0; d->linear_gap = 6.0; d->linear_extension_above = 12.0; d->linear_extension_below = 6.0; d->tolerance_text_size = 4.0; d->tolerance_plus = 0.0; d->tolerance_minus = 0.0; d->tolerance_precision = 2; d->background_color = color_create(); color_set_tag(d->background_color, "background-color"); color_white(d->background_color); d->element_color = color_create(); color_set_tag(d->element_color, "element-color"); color_black(d->element_color); // Return RETVAL return d; }
const SDL_Color& get_color_from_name(std::string name) { if(get_color_cache().empty()) { color_cache_init(); } std::map<std::string,boost::function<const SDL_Color&()> >::iterator it = get_color_cache().find(name); if(it != get_color_cache().end()) { return it->second(); } ASSERT_LOG(false, "Color \"" << name << "\" not known!"); return color_black(); }
static View* create_title_view(Window* window) { if (!window) return NULL; Rect title_view_frame = rect_make(point_make(0, 0), size_make(window->frame.size.width, WINDOW_TITLE_VIEW_HEIGHT)); View* title_view = create_view(title_view_frame); title_view->background_color = window->border_color; Button* close_button = create_button(rect_make(point_zero(), size_make(CHAR_WIDTH * 2, title_view->frame.size.height)), "X"); close_button->mousedown_handler = (event_handler)&close_button_clicked; add_button(title_view, close_button); Button* minimize_button = create_button(rect_make(point_make(rect_max_x(close_button->frame), 0), size_make(CHAR_WIDTH * 2, title_view->frame.size.height)), "-"); minimize_button->mousedown_handler = (event_handler)&minimize_button_clicked; add_button(title_view, minimize_button); //add title label to title view int label_length = 20 * CHAR_WIDTH; Rect label_frame = rect_make(point_make(rect_max_x(minimize_button->frame) + 15, title_view_frame.size.height / 2 - (CHAR_HEIGHT / 2)), size_make(label_length, CHAR_HEIGHT)); Label* title_label = create_label(label_frame, window->title); title_label->text_color = color_black(); add_sublabel(title_view, title_label); Bmp* dots = create_bmp(title_view_frame, create_layer(title_view_frame.size)); uint8_t* ref = dots->layer->raw; for (int y = 0; y < dots->frame.size.height; y++) { for (int x = 0; x < dots->frame.size.width; x++) { if (!((x + y) % 2)) { *ref++ = 50; *ref++ = 50; *ref++ = 50; } else { *ref++ = 200; *ref++ = 160; *ref++ = 90; } } } add_bmp(title_view, dots); return title_view; }
bool draw_window(Window* window) { if (window->user_backed) { return true; } //blit_layer(window->layer, window->content_view->layer, rect_make(window->content_view->frame.origin, window->layer->size), rect_make(point_zero(), window->content_view->frame.size)); //return; //if window is invisible, don't bother drawing if (!window->layer->alpha) return false; //if window has a redraw handler, call it if (window->redraw_handler) { //draw_rect(window->content_view->layer, rect_make(point_zero(), window->content_view->frame.size), window->content_view->background_color, THICKNESS_FILLED); event_handler redraw = window->redraw_handler; redraw(window, NULL); blit_layer(window->layer, window->content_view->layer, rect_make(window->content_view->frame.origin, window->layer->size), rect_make(point_zero(), window->content_view->frame.size)); window->last_draw_timestamp = time(); return true; } //if window doesn't need to be redrawn, no work to do if (window->layer->alpha == 1.0 && !window->needs_redraw) { return false; } //dirtied = 1; //paint window draw_rect(window->layer, rect_make(point_zero(), window->frame.size), window->border_color, window->border_width); //only draw a title bar if title_view exists if (window->title_view) { //update title label of window Label* title_label = (Label*)array_m_lookup(window->title_view->labels, 0); title_label->text = window->title; draw_view(window->title_view); blit_layer(window->layer, window->title_view->layer, rect_make(point_zero(), window->layer->size), window->title_view->frame); draw_rect(window->layer, window->title_view->frame, color_gray(), 2); } //only draw the content view if content_view exists if (window->content_view) { draw_view(window->content_view); //if there's a redraw callback, call it if (window->redraw_handler) { event_handler redraw = window->redraw_handler; redraw(window, NULL); } blit_layer(window->layer, window->content_view->layer, rect_make(window->content_view->frame.origin, window->layer->size), rect_make(point_zero(), window->content_view->frame.size)); //draw dividing border between window border and other content if (window->border_width) { //inner border draw_rect(window->content_view->layer, rect_make(point_zero(), window->content_view->frame.size), color_gray(), window->border_width); } } //draw window border draw_rect(window->layer, rect_make(point_zero(), window->frame.size), color_black(), 1); window->needs_redraw = 0; window->last_draw_timestamp = time(); return true; }
/** * Start rendering a scene. * \param s Scene to render. * \param * \param pixmap Pointer to pixel map with result. * Must be large enough to hold #y0 - #y1 rows. */ void renderer_render(const struct scene *s, const struct renderer_chunk *chunk, struct color *pixmap){ unsigned ymax = chunk->top + chunk->height; // How many meters per pixel. float inc = s->sensorWidth / (float)(s->width - 1); float yy = inc * ((float)(s->height) / 2 - chunk->top); float focus = s->focus / s->focalLength; #if MEASUREMENTS_WITH_WARMUP MEASUREMENTS_WARMUP(); #endif MEASUREMENTS_START(); for(unsigned y = chunk->top; y < ymax; ++y){ float xx = - s->sensorWidth / 2; for(unsigned x = 0; x < s->width; ++x){ color_black(pixmap); for(unsigned i = 0; i < s->raysPerPx; ++i){ struct ray r; // filmPoint = { // -xx - random_number(0, inc), // -yy - random_number(0, inc), // -s->focalLength // } // focusPoint = - (lensCenter - filmPoint) * (s->focus / filmPoint.z) vector_t focusPoint = vector_set( focus * (xx + random_number(0, inc)), focus * (yy + random_number(0, inc)), s->focus); vector_t lensPoint = vector_multiply(vector_random_in_circle(), s->apertureDiameter); ray_from_points(&r, lensPoint, focusPoint); #ifndef MEASUREMENTS_KD_TREE_STATS struct photon p; photon_random_init(&p); p.energy = render_ray(s, &r, p.wavelength, 0); photon_add_to_color(&p, pixmap); #else struct object *obj; MEASUREMENTS_RAY_SCENE_INTERSECTION(); kd_tree_ray_intersection(&(s->tree), &r, &obj); pixmap->r += measurementsObjectIntersectionCounter; pixmap->g += measurementsTreeTraversalCounter; #endif } color_scale(pixmap, 1.0f / s->raysPerPx); //printf("x = %i y = %i pixmap->r = %.2f\n", x, y ,pixmap->r); ++pixmap; xx += inc; } yy -= inc; } MEASUREMENTS_PRINT(); }