コード例 #1
0
ファイル: apply_diago.c プロジェクト: kederiku/Reversi
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;
	}
}
コード例 #2
0
ファイル: design-defaults.c プロジェクト: PatrickHead/blue
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;
}
コード例 #3
0
ファイル: color_chart.cpp プロジェクト: gradonly/frogatto
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();
}
コード例 #4
0
ファイル: window.c プロジェクト: codyd51/axle
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;
}
コード例 #5
0
ファイル: window.c プロジェクト: codyd51/axle
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;
}
コード例 #6
0
ファイル: renderer.c プロジェクト: bluecube/bonsai-raytracer
/**
 * 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();
}