Ejemplo n.º 1
0
static void textinput_render(component *c) {
    textinput *tb = widget_get_obj(c);
    int chars = strlen(tb->buf);

    video_render_sprite(&tb->sur, c->x + (c->w - tb->sur.w)/2, c->y - 2, BLEND_ALPHA, 0);

    if(component_is_selected(c)) {
        if(chars > 0) {
            tb->tconf.cforeground = color_create(80, 220, 80, 255);
            tb->buf[chars] = '\x7F';
            tb->buf[chars+1] = 0;
            text_render(&tb->tconf, c->x, c->y, c->w, c->h, tb->buf);
            tb->buf[chars] = 0;
        }
    } else if(component_is_disabled(c)) {
        if(chars > 0) {
            tb->tconf.cforeground = color_create(121, 121, 121, 255);
            text_render(&tb->tconf, c->x, c->y, c->w, c->h, tb->buf);
        }
    } else {
        if(chars > 0) {
            tb->tconf.cforeground = color_create(0, 121, 0, 255);
            text_render(&tb->tconf, c->x, c->y, c->w, c->h, tb->buf);
        }
    }
    if(chars == 0) {
        tb->tconf.cforeground = color_create(121, 121, 121, 255);
        text_render(&tb->tconf, c->x, c->y, c->w, c->h, tb->buf);
    }
}
Ejemplo n.º 2
0
static void render()
{

    text_render(&view.titlebox, TEXT_COLOR_TITLE, TEXT_ALIGN_LEFT, view.app->name);
    text_render(&view.shortbox, TEXT_COLOR_NORMAL, TEXT_ALIGN_LEFT, view.app->shortdescription);
    menu_render(&view.menu, &view.menubox);

}
Ejemplo n.º 3
0
void draw_ui(void)
{
	int i;
	char cbuf[256];
	float av_dt, s_dt;
	if(inGame){

		for(i=0;i<nbTeams;i++){
			sprintf(cbuf, "%2.2i", teams[i].points);
			text_render(sprite_global.display, 0, big_font, 60+100*(i), sprite_global.display->h - 90, ALIGN_LEFT, ALIGN_BOTTOM, cbuf);
		}

		for(i=0;i<nbPlayers;i++){
			if(players[i].sprite){
				sprintf(cbuf, "%s", players[i].name);
				text_render(sprite_global.display, 0, medium_font,  players[i].sprite->x, players[i].sprite->y-20, ALIGN_LEFT, ALIGN_BOTTOM, cbuf);
			}
		}
		int t = (timeToStop-sprite_global.game_clock)/1000;
		if(t>900){t=0;}
		sprintf(cbuf, "%d", t);
		text_render(sprite_global.display, 0, big_font,  sprite_global.display->w-100, sprite_global.display->h - 90, ALIGN_LEFT, ALIGN_BOTTOM, cbuf);

	}else{
		for (i = 0; i < playerCount; i++)
		{
			int x = 100+300*(players[i].team->id%5);
			int y = 100+30*players[i].id_in_team;
			if (players[i].team->id>4)
				y+=400;

			if (players[i].isConnected){
				sprintf(cbuf, "[%d]-%s",i,players[i].name);
			}else{
				sprintf(cbuf, "[%d]-_______", i);
			}
			text_render(sprite_global.display, 0, big_font, x,y, ALIGN_LEFT, ALIGN_TOP, cbuf);
		}
	}

	if (show_debug)
	{
		/* calculate frame time stats */
		av_dt = 0;
		s_dt = 0;
		for (i = 0; i < 32; i++)
			av_dt += frame_times[i];
		av_dt /= 32;
		fps=1000/av_dt;
		for (i = 0; i < 32; i++)
			s_dt += (frame_times[i] - av_dt) * (frame_times[i] - av_dt);
		s_dt = sqrt(s_dt / 32);
		sprintf(cbuf, "average dt = %3.2f (stddev = %3.2f)", av_dt, s_dt);
		text_render(sprite_global.display, 0, small_font, 10, 10, ALIGN_LEFT, ALIGN_TOP, cbuf);
	}
}
Ejemplo n.º 4
0
/**
 * Return an SDL Surface of the rendered text, at this point in time.
 */
SDL_Surface *
text_get_surface(Text *text)
{
	SDL_Surface *s;
	int width = text->width;
	int height = text->height;

	/* A text that has no width or height has no surface, yet */
	if (width < 1 || height < 1)
		return NULL;

	/* Make way for the wave! */
	if (text->effect & EFFECT_WAVE)
		height += 4;

	s = SDL_CreateRGBSurface(0, width, height, 
			screen->format->BitsPerPixel, 0, 0, 0, 0);
	SDL_FillRect(s, NULL, key);
	SDL_SetColorKey(s, SDL_SRCCOLORKEY|SDL_RLEACCEL, key);
	text_render(text, s);

	if (text->effect & EFFECT_FADEOUT) {
		text_effect_fadeout(text, s);
	}

	return s;
}
Ejemplo n.º 5
0
static GimpValueArray *
text_fontname_invoker (GimpProcedure         *procedure,
                       Gimp                  *gimp,
                       GimpContext           *context,
                       GimpProgress          *progress,
                       const GimpValueArray  *args,
                       GError               **error)
{
  gboolean success = TRUE;
  GimpValueArray *return_vals;
  GimpImage *image;
  GimpDrawable *drawable;
  gdouble x;
  gdouble y;
  const gchar *text;
  gint32 border;
  gboolean antialias;
  gdouble size;
  const gchar *fontname;
  GimpLayer *text_layer = NULL;

  image = gimp_value_get_image (gimp_value_array_index (args, 0), gimp);
  drawable = gimp_value_get_drawable (gimp_value_array_index (args, 1), gimp);
  x = g_value_get_double (gimp_value_array_index (args, 2));
  y = g_value_get_double (gimp_value_array_index (args, 3));
  text = g_value_get_string (gimp_value_array_index (args, 4));
  border = g_value_get_int (gimp_value_array_index (args, 5));
  antialias = g_value_get_boolean (gimp_value_array_index (args, 6));
  size = g_value_get_double (gimp_value_array_index (args, 7));
  fontname = g_value_get_string (gimp_value_array_index (args, 9));

  if (success)
    {
      if (drawable &&
          (! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), image,
                                        GIMP_PDB_ITEM_CONTENT, error) ||
           ! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)))
        success = FALSE;

      if (success)
        {
          gchar *real_fontname = g_strdup_printf ("%s %d", fontname, (gint) size);

          text_layer = text_render (image, drawable, context,
                                    x, y, real_fontname, text,
                                    border, antialias);

          g_free (real_fontname);
        }
    }

  return_vals = gimp_procedure_get_return_values (procedure, success,
                                                  error ? *error : NULL);

  if (success)
    gimp_value_set_layer (gimp_value_array_index (return_vals, 1), text_layer);

  return return_vals;
}
Ejemplo n.º 6
0
static GValueArray *
text_fontname_invoker (GimpProcedure     *procedure,
                       Gimp              *gimp,
                       GimpContext       *context,
                       GimpProgress      *progress,
                       const GValueArray *args)
{
  gboolean success = TRUE;
  GValueArray *return_vals;
  GimpImage *image;
  GimpDrawable *drawable;
  gdouble x;
  gdouble y;
  const gchar *text;
  gint32 border;
  gboolean antialias;
  gdouble size;
  gint32 size_type;
  const gchar *fontname;
  GimpLayer *text_layer = NULL;

  image = gimp_value_get_image (&args->values[0], gimp);
  drawable = gimp_value_get_drawable (&args->values[1], gimp);
  x = g_value_get_double (&args->values[2]);
  y = g_value_get_double (&args->values[3]);
  text = g_value_get_string (&args->values[4]);
  border = g_value_get_int (&args->values[5]);
  antialias = g_value_get_boolean (&args->values[6]);
  size = g_value_get_double (&args->values[7]);
  size_type = g_value_get_enum (&args->values[8]);
  fontname = g_value_get_string (&args->values[9]);

  if (success)
    {
      if (drawable && ! gimp_item_is_attached (GIMP_ITEM (drawable)))
        success = FALSE;

      if (success)
        {
          gchar *real_fontname = g_strdup_printf ("%s %d", fontname, (gint) size);

          text_layer = text_render (image, drawable, context,
                                    x, y, real_fontname, text,
                                    border, antialias);

          g_free (real_fontname);
        }
    }

  return_vals = gimp_procedure_get_return_values (procedure, success);

  if (success)
    gimp_value_set_layer (&return_vals->values[1], text_layer);

  return return_vals;
}
Ejemplo n.º 7
0
static void spritebutton_render(component *c) {
    spritebutton *sb = widget_get_obj(c);
    sizer *s = component_get_obj(c->parent);
    if(sb->active > 0) {
        video_render_sprite(sb->img, c->x, c->y, BLEND_ALPHA, 0);
    }
    if(sb->text) {
        sb->tconf.opacity = clamp(s->opacity * 255, 0, 255);
        text_render(&sb->tconf, c->x, c->y, c->w, c->h, sb->text);
    }
}
Ejemplo n.º 8
0
/* Display the message and wait for a keypress */
void message_mode(char *message)
{
	sprite_start_frame();
	sprite_group_draw2(mech_group);
	sprite_group_draw(bullet_group);
	sprite_group_draw(bomb_group);
	sprite_group_draw(effects_group);
	sprite_group_draw(foreground_group);
	sprite_group_draw(ui_group);
	text_render(sprite_global.display, 0, big_font, sprite_global.display->w / 2, sprite_global.display->h / 2, ALIGN_CENTER, ALIGN_CENTER, message);
	sprite_end_frame();
	sprite_dirty_all();
	wait_for_key();
}
Ejemplo n.º 9
0
void message_time(char *message,int duration)
{
	sprite_start_frame();
	sprite_group_draw2(mech_group);
	sprite_group_draw(bomb_group);
	sprite_group_draw(bullet_group);
	sprite_group_draw(effects_group);
	sprite_group_draw(foreground_group);
	sprite_group_draw(ui_group);
	text_render(sprite_global.display, 0, big_font, sprite_global.display->w / 2, sprite_global.display->h / 2, ALIGN_CENTER, ALIGN_CENTER, message);
	draw_ui();
	sprite_end_frame();
	sprite_dirty_all();
	sleep(duration);
}
Ejemplo n.º 10
0
static void textbutton_render(component *c) {
    textbutton *tb = widget_get_obj(c);

    // Select color and render
    if(component_is_selected(c)) {
        int t = tb->ticks / 2;
        tb->tconf.cforeground = color_create(80 - t, 220 - t*2, 80 - t, 255);
    } else if (component_is_disabled(c)) {
        tb->tconf.cforeground = color_create(121, 121, 121, 255);
    } else {
        tb->tconf.cforeground = color_create(0, 121, 0, 255);
    }
    text_render(&tb->tconf, c->x, c->y, c->w, c->h, tb->text);

    // Border
    if(tb->border_enabled) {
        video_render_sprite(&tb->border, c->x-2, c->y-2, BLEND_ALPHA, 0);
    }
}
Ejemplo n.º 11
0
void text_create_and_render(Shader *shader, Font *font, int size,
		const char *fmt, ...)
{
	char *string;
	va_list va;
	Text *text;

	va_start(va, fmt);
	string = ralloc_vasprintf(NULL, fmt, va);
	va_end(va);

	if (string == NULL)
		return;

	text = text_create(font, string, size);
	ralloc_free(string);
	if (text ==	NULL)
		return;

	text_upload_to_gpu(shader, text);
	text_render(shader, text);
	text_destroy(text);
}
Ejemplo n.º 12
0
static void DrawRightLabel(gl_context_t* context, char const* label) {
    point2d_t point = point_make(192, rect_top(context->screen_bounds) - 22);
    char font_path[PATH_MAX];
    bundle_resource_path(font_path, sizeof(font_path), "fonts/GillSans.ttc");
    text_render(context, label, font_path, 20, point, rgba_make(1,1,1,0)); 
}
Ejemplo n.º 13
0
void cutscene_render_overlay(scene *scene) {
    cutscene_local *local = scene_get_userdata(scene);
    text_render(&local->text_conf, local->text_x, local->text_y, local->text_width, 200, local->current);
}
Ejemplo n.º 14
0
void DebugRenderer::render(sf::RenderTarget& window)
{
    fps_counter++;
    if (fps_counter > 30)
    {
        fps = fps_counter / fps_timer.restart().asSeconds();
        fps_counter = 0;
    }
    string text = "";
    if (show_fps)
        text = text + "FPS: " + string(fps) + "\n";
    
    if (show_datarate && game_server)
    {
        text = text + string(game_server->getSendDataRate() / 1000, 1) + " kb per second\n";
        text = text + string(game_server->getSendDataRatePerClient() / 1000, 1) + " kb per client\n";
    }
    if (show_timing_graph)
    {
        if (timing_graph_points.size() > window.getView().getSize().x)
            timing_graph_points.clear();
        timing_graph_points.push_back(engine->getEngineTiming());
        sf::VertexArray update_points(sf::LinesStrip, timing_graph_points.size());
        sf::VertexArray collision_points(sf::LinesStrip, timing_graph_points.size());
        sf::VertexArray render_points(sf::LinesStrip, timing_graph_points.size());
        for(unsigned int n=0; n<timing_graph_points.size(); n++)
        {
            update_points[n].position.x = float(n);
            update_points[n].position.y = window.getView().getSize().y - timing_graph_points[n].update * 10000;
            collision_points[n].position.x = float(n);
            collision_points[n].position.y = window.getView().getSize().y - (timing_graph_points[n].update + timing_graph_points[n].collision) * 10000;
            render_points[n].position.x = float(n);
            render_points[n].position.y = window.getView().getSize().y - (timing_graph_points[n].render + timing_graph_points[n].update + timing_graph_points[n].collision) * 10000;
            
            update_points[n].color = sf::Color::Red;
            collision_points[n].color = sf::Color::Cyan;
            render_points[n].color = sf::Color::Green;
        }
        window.draw(update_points);
        window.draw(collision_points);
        window.draw(render_points);
        
        sf::Text text_update("Update: " + string(timing_graph_points.back().update * 1000) + "ms", *mainFont, 18);
        sf::Text text_collision("Collision: " + string(timing_graph_points.back().collision * 1000) + "ms", *mainFont, 18);
        sf::Text text_render("Render: " + string(timing_graph_points.back().render * 1000) + "ms", *mainFont, 18);

        sf::VertexArray fps60_line(sf::LinesStrip, 2);
        fps60_line[0].position = sf::Vector2f(0, window.getView().getSize().y - 166);
        fps60_line[1].position = sf::Vector2f(window.getView().getSize().x, window.getView().getSize().y - 166);
        fps60_line[0].color = sf::Color(255, 255, 255, 128);
        fps60_line[1].color = sf::Color(255, 255, 255, 128);
        window.draw(fps60_line);
        
        text_update.setPosition(0, window.getView().getSize().y - 18 * 3 - 170);
        text_collision.setPosition(0, window.getView().getSize().y - 18 * 2 - 170);
        text_render.setPosition(0, window.getView().getSize().y - 18 - 170);
        text_update.setColor(sf::Color::Red);
        text_collision.setColor(sf::Color::Cyan);
        text_render.setColor(sf::Color::Green);
        window.draw(text_update);
        window.draw(text_collision);
        window.draw(text_render);
    }

    sf::Text textElement(text, *mainFont, 18);
    textElement.setPosition(0, 0);
    window.draw(textElement);
}