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; }
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; }
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; }