Ejemplo n.º 1
0
static void glui_render_quad(gl_t *gl, int x, int y, int w, int h,
      float r, float g, float b, float a)
{
   unsigned width, height;
   struct gfx_coords coords;
   GRfloat color[16], tex_coord[8], vertex[8];
   menu_handle_t *menu = menu_driver_get_ptr();
   glui_handle_t *glui = (glui_handle_t*)menu->userdata;

   vertex[0] = 0;
   vertex[1] = 0;
   vertex[2] = 1;
   vertex[3] = 0;
   vertex[4] = 0;
   vertex[5] = 1;
   vertex[6] = 1;
   vertex[7] = 1;

   tex_coord[0] = 0;
   tex_coord[1] = 1;
   tex_coord[2] = 1;
   tex_coord[3] = 1;
   tex_coord[4] = 0;
   tex_coord[5] = 0;
   tex_coord[6] = 1;
   tex_coord[7] = 0;

   color[ 0]    = r;
   color[ 1]    = g;
   color[ 2]    = b;
   color[ 3]    = a;
   color[ 4]    = r;
   color[ 5]    = g;
   color[ 6]    = b;
   color[ 7]    = a;
   color[ 8]    = r;
   color[ 9]    = g;
   color[10]    = b;
   color[11]    = a;
   color[12]    = r;
   color[13]    = g;
   color[14]    = b;
   color[15]    = a;

   video_driver_get_size(&width, &height);

   glViewport(x, height - y - h, w, h);

   coords.vertices      = 4;
   coords.vertex        = vertex;
   coords.tex_coord     = tex_coord;
   coords.lut_tex_coord = tex_coord;

   coords.color = color;

   menu_video_draw_frame(gl->shader, &coords,
         &gl->mvp_no_rot, true, glui->textures.white);

   gl->coords.color = gl->white_color_ptr;
}
Ejemplo n.º 2
0
static void glui_render_quad(gl_t *gl, int x, int y, int w, int h,
      unsigned width, unsigned height,
      GRfloat *coord_color)
{
   struct gfx_coords coords;
   menu_handle_t *menu = menu_driver_get_ptr();
   glui_handle_t *glui = (glui_handle_t*)menu->userdata;

   coords.vertices      = 4;
   coords.vertex        = glui_vertexes;
   coords.tex_coord     = glui_tex_coords;
   coords.lut_tex_coord = glui_tex_coords;
   coords.color         = coord_color;

   menu_video_draw_frame(
         x,
         height - y - h,
         w,
         h,
         gl->shader, &coords,
         &gl->mvp_no_rot, true, glui->textures.white);

   gl->coords.color     = gl->white_color_ptr;
}
Ejemplo n.º 3
0
void menu_video_frame_background(
      menu_handle_t *menu,
      settings_t *settings,
      gl_t *gl,
      GLuint texture,
      float handle_alpha,
      float alpha,
      bool force_transparency)
{
   struct gfx_coords coords;
   GRfloat color[16], black_color[16],
           vertex[8], tex_coord[8];

   global_t *global = global_get_ptr();

   vertex[0] = 0;
   vertex[1] = 0;
   vertex[2] = 1;
   vertex[3] = 0;
   vertex[4] = 0;
   vertex[5] = 1;
   vertex[6] = 1;
   vertex[7] = 1;

   tex_coord[0] = 0;
   tex_coord[1] = 1;
   tex_coord[2] = 1;
   tex_coord[3] = 1;
   tex_coord[4] = 0;
   tex_coord[5] = 0;
   tex_coord[6] = 1;
   tex_coord[7] = 0;

   color[ 0] = 1.0f;
   color[ 1] = 1.0f;
   color[ 2] = 1.0f;
   color[ 3] = handle_alpha;
   color[ 4] = 1.0f;
   color[ 5] = 1.0f;
   color[ 6] = 1.0f;
   color[ 7] = handle_alpha;
   color[ 8] = 1.0f;
   color[ 9] = 1.0f;
   color[10] = 1.0f;
   color[11] = handle_alpha;
   color[12] = 1.0f;
   color[13] = 1.0f;
   color[14] = 1.0f;
   color[15] = handle_alpha;

   if (alpha > handle_alpha)
      alpha = handle_alpha;

   black_color[ 0] = 0.0f;
   black_color[ 1] = 0.0f;
   black_color[ 2] = 0.0f;
   black_color[ 3] = alpha;
   black_color[ 4] = 0.0f;
   black_color[ 5] = 0.0f;
   black_color[ 6] = 0.0f;
   black_color[ 7] = alpha;
   black_color[ 8] = 0.0f;
   black_color[ 9] = 0.0f;
   black_color[10] = 0.0f;
   black_color[11] = alpha;
   black_color[12] = 0.0f;
   black_color[13] = 0.0f;
   black_color[14] = 0.0f;
   black_color[15] = alpha;

   coords.vertices      = 4;
   coords.vertex        = vertex;
   coords.tex_coord     = tex_coord;
   coords.lut_tex_coord = tex_coord;
   coords.color         = black_color;

   if (gl->shader && gl->shader->use)
      gl->shader->use(gl, GL_SHADER_STOCK_BLEND);

   menu_display_set_viewport();

   if ((settings->menu.pause_libretro
      || !global->main_is_init || (global->core_type == CORE_TYPE_DUMMY))
      && !force_transparency
      && texture)
      coords.color = color;

   menu_video_draw_frame(gl->shader, &coords,
         &gl->mvp_no_rot, true, texture);

   gl->coords.color = gl->white_color_ptr;
}