gl-renderer: add BUFFER_TYPE_SOLID

Add a new buffer type identifying the solid color contents which do not
have a real buffer.

Solid color surfaces now pretend to have 1x1 pixel content data.

This helps the future surface_get_data_size() implementation.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Tested-by: Nobuhiko Tanibata <NOBUHIKO_TANIBATA@xddp.denso.co.jp>
Reviewed-by: Daniel Stone <daniels@collabora.com>
dev
Pekka Paalanen 10 years ago
parent 312fe5f445
commit aeb917ee5d
  1. 4
      src/gl-renderer.c

@ -79,6 +79,7 @@ struct gl_output_state {
enum buffer_type { enum buffer_type {
BUFFER_TYPE_NULL, BUFFER_TYPE_NULL,
BUFFER_TYPE_SOLID, /* internal solid color surfaces without a buffer */
BUFFER_TYPE_SHM, BUFFER_TYPE_SHM,
BUFFER_TYPE_EGL BUFFER_TYPE_EGL
}; };
@ -1355,6 +1356,9 @@ gl_renderer_surface_set_color(struct weston_surface *surface,
gs->color[1] = green; gs->color[1] = green;
gs->color[2] = blue; gs->color[2] = blue;
gs->color[3] = alpha; gs->color[3] = alpha;
gs->buffer_type = BUFFER_TYPE_SOLID;
gs->pitch = 1;
gs->height = 1;
gs->shader = &gr->solid_shader; gs->shader = &gr->solid_shader;
} }

Loading…
Cancel
Save