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); } }
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); }
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); } }
/** * 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; }
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; }
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; }
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); } }
/* 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(); }
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); }
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); } }
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); }
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)); }
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); }
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); }