Пример #1
0
static void
glw_text_bitmap_render(glw_t *w, const glw_rctx_t *rc)
{
  glw_text_bitmap_t *gtb = (glw_text_bitmap_t *)w;
  float alpha;
  float blur = 1 - (rc->rc_sharpness * w->glw_sharpness);

  if(glw_is_focusable_or_clickable(w))
    glw_store_matrix(w, rc);

  alpha = rc->rc_alpha * w->glw_alpha;

  if(alpha < GLW_ALPHA_EPSILON)
    return;

  if(glw_is_tex_inited(&gtb->gtb_texture) && gtb->gtb_image != NULL) {
    glw_renderer_draw(&gtb->gtb_text_renderer, w->glw_root, rc,
		      &gtb->gtb_texture, NULL,
		      &gtb->gtb_color, NULL, alpha, blur, NULL);
  }

  if(gtb->gtb_paint_cursor) {
    glw_root_t *gr = w->glw_root;
    float a = cos((gr->gr_frames & 2047) * (360.0f / 2048.0f)) * 0.5f + 0.5f;

    glw_rctx_t rc0 = *rc;
    glw_zinc(&rc0);

    glw_renderer_draw(&gtb->gtb_cursor_renderer, w->glw_root, &rc0,
		      NULL, NULL, NULL, NULL, alpha * a, blur, NULL);
  }
}
Пример #2
0
static void
glw_slider_render_y(glw_t *w, const glw_rctx_t *rc)
{
  glw_slider_t *s = (glw_slider_t *)w;
  glw_t *c;
  glw_rctx_t rc0;

  if(glw_is_focusable_or_clickable(w))
    glw_store_matrix(w, rc);

  if((c = TAILQ_FIRST(&w->glw_childs)) == NULL)
    return;

  rc0 = *rc;
  rc0.rc_alpha *= w->glw_alpha;

  glw_reposition(&rc0,
		 0,
		 s->knob_pos_px + s->knob_size_px / 2,
		 rc->rc_width,
		 s->knob_pos_px - s->knob_size_px / 2);

  glw_render0(c, &rc0);
}