compositor: Move fan_debug to gl-renderer
With the debug binding infrastructure, we can do this all inside gl-renderer.c.
This commit is contained in:
@@ -572,7 +572,6 @@ struct weston_compositor {
|
|||||||
struct wl_array indices; /* only used in compositor-wayland */
|
struct wl_array indices; /* only used in compositor-wayland */
|
||||||
struct wl_array vtxcnt;
|
struct wl_array vtxcnt;
|
||||||
struct weston_plane primary_plane;
|
struct weston_plane primary_plane;
|
||||||
int fan_debug;
|
|
||||||
|
|
||||||
uint32_t focus;
|
uint32_t focus;
|
||||||
|
|
||||||
|
|||||||
+20
-5
@@ -72,6 +72,7 @@ struct gl_surface_state {
|
|||||||
struct gl_renderer {
|
struct gl_renderer {
|
||||||
struct weston_renderer base;
|
struct weston_renderer base;
|
||||||
int fragment_shader_debug;
|
int fragment_shader_debug;
|
||||||
|
int fan_debug;
|
||||||
|
|
||||||
EGLDisplay egl_display;
|
EGLDisplay egl_display;
|
||||||
EGLContext egl_context;
|
EGLContext egl_context;
|
||||||
@@ -648,6 +649,7 @@ repaint_region(struct weston_surface *es, pixman_region32_t *region,
|
|||||||
pixman_region32_t *surf_region)
|
pixman_region32_t *surf_region)
|
||||||
{
|
{
|
||||||
struct weston_compositor *ec = es->compositor;
|
struct weston_compositor *ec = es->compositor;
|
||||||
|
struct gl_renderer *gr = get_renderer(ec);
|
||||||
GLfloat *v;
|
GLfloat *v;
|
||||||
unsigned int *vtxcnt;
|
unsigned int *vtxcnt;
|
||||||
int i, first, nfans;
|
int i, first, nfans;
|
||||||
@@ -675,7 +677,7 @@ repaint_region(struct weston_surface *es, pixman_region32_t *region,
|
|||||||
|
|
||||||
for (i = 0, first = 0; i < nfans; i++) {
|
for (i = 0, first = 0; i < nfans; i++) {
|
||||||
glDrawArrays(GL_TRIANGLE_FAN, first, vtxcnt[i]);
|
glDrawArrays(GL_TRIANGLE_FAN, first, vtxcnt[i]);
|
||||||
if (ec->fan_debug)
|
if (gr->fan_debug)
|
||||||
triangle_fan_debug(es, first, vtxcnt[i]);
|
triangle_fan_debug(es, first, vtxcnt[i]);
|
||||||
first += vtxcnt[i];
|
first += vtxcnt[i];
|
||||||
}
|
}
|
||||||
@@ -762,7 +764,7 @@ draw_surface(struct weston_surface *es, struct weston_output *output,
|
|||||||
|
|
||||||
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
|
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
|
|
||||||
if (ec->fan_debug) {
|
if (gr->fan_debug) {
|
||||||
use_shader(gr, &gr->solid_shader);
|
use_shader(gr, &gr->solid_shader);
|
||||||
shader_uniforms(&gr->solid_shader, es, output);
|
shader_uniforms(&gr->solid_shader, es, output);
|
||||||
}
|
}
|
||||||
@@ -1015,14 +1017,14 @@ gl_renderer_repaint_output(struct weston_output *output,
|
|||||||
/* if debugging, redraw everything outside the damage to clean up
|
/* if debugging, redraw everything outside the damage to clean up
|
||||||
* debug lines from the previous draw on this buffer:
|
* debug lines from the previous draw on this buffer:
|
||||||
*/
|
*/
|
||||||
if (compositor->fan_debug) {
|
if (gr->fan_debug) {
|
||||||
pixman_region32_t undamaged;
|
pixman_region32_t undamaged;
|
||||||
pixman_region32_init(&undamaged);
|
pixman_region32_init(&undamaged);
|
||||||
pixman_region32_subtract(&undamaged, &output->region,
|
pixman_region32_subtract(&undamaged, &output->region,
|
||||||
output_damage);
|
output_damage);
|
||||||
compositor->fan_debug = 0;
|
gr->fan_debug = 0;
|
||||||
repaint_surfaces(output, &undamaged);
|
repaint_surfaces(output, &undamaged);
|
||||||
compositor->fan_debug = 1;
|
gr->fan_debug = 1;
|
||||||
pixman_region32_fini(&undamaged);
|
pixman_region32_fini(&undamaged);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1887,6 +1889,17 @@ fragment_debug_binding(struct weston_seat *seat, uint32_t time, uint32_t key,
|
|||||||
weston_output_damage(output);
|
weston_output_damage(output);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
fan_debug_repaint_binding(struct weston_seat *seat, uint32_t time, uint32_t key,
|
||||||
|
void *data)
|
||||||
|
{
|
||||||
|
struct weston_compositor *compositor = data;
|
||||||
|
struct gl_renderer *gr = get_renderer(compositor);
|
||||||
|
|
||||||
|
gr->fan_debug = !gr->fan_debug;
|
||||||
|
weston_compositor_damage_all(compositor);
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
gl_renderer_setup(struct weston_compositor *ec, EGLSurface egl_surface)
|
gl_renderer_setup(struct weston_compositor *ec, EGLSurface egl_surface)
|
||||||
{
|
{
|
||||||
@@ -1986,6 +1999,8 @@ gl_renderer_setup(struct weston_compositor *ec, EGLSurface egl_surface)
|
|||||||
|
|
||||||
weston_compositor_add_debug_binding(ec, KEY_S,
|
weston_compositor_add_debug_binding(ec, KEY_S,
|
||||||
fragment_debug_binding, ec);
|
fragment_debug_binding, ec);
|
||||||
|
weston_compositor_add_debug_binding(ec, KEY_F,
|
||||||
|
fan_debug_repaint_binding, ec);
|
||||||
|
|
||||||
weston_log("GL ES 2 renderer features:\n");
|
weston_log("GL ES 2 renderer features:\n");
|
||||||
weston_log_continue(STAMP_SPACE "read-back format: %s\n",
|
weston_log_continue(STAMP_SPACE "read-back format: %s\n",
|
||||||
|
|||||||
-12
@@ -3901,16 +3901,6 @@ backlight_binding(struct weston_seat *seat, uint32_t time, uint32_t key,
|
|||||||
output->set_backlight(output, output->backlight_current);
|
output->set_backlight(output, output->backlight_current);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
fan_debug_repaint_binding(struct weston_seat *seat, uint32_t time, uint32_t key,
|
|
||||||
void *data)
|
|
||||||
{
|
|
||||||
struct desktop_shell *shell = data;
|
|
||||||
struct weston_compositor *compositor = shell->compositor;
|
|
||||||
compositor->fan_debug = !compositor->fan_debug;
|
|
||||||
weston_compositor_damage_all(compositor);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct debug_binding_grab {
|
struct debug_binding_grab {
|
||||||
struct weston_keyboard_grab grab;
|
struct weston_keyboard_grab grab;
|
||||||
struct weston_seat *seat;
|
struct weston_seat *seat;
|
||||||
@@ -4226,8 +4216,6 @@ shell_add_bindings(struct weston_compositor *ec, struct desktop_shell *shell)
|
|||||||
/* Debug bindings */
|
/* Debug bindings */
|
||||||
weston_compositor_add_key_binding(ec, KEY_SPACE, mod | MODIFIER_SHIFT,
|
weston_compositor_add_key_binding(ec, KEY_SPACE, mod | MODIFIER_SHIFT,
|
||||||
debug_binding, shell);
|
debug_binding, shell);
|
||||||
weston_compositor_add_debug_binding(ec, KEY_F,
|
|
||||||
fan_debug_repaint_binding, shell);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WL_EXPORT int
|
WL_EXPORT int
|
||||||
|
|||||||
Reference in New Issue
Block a user