Add alpha to wlr_render_with_matrix

so we can use the alpha channel to e.g. blend in textures
This commit is contained in:
Guido Günther 2018-02-21 23:20:09 +01:00
parent e6ca78b0e4
commit d08792bfff
11 changed files with 18 additions and 17 deletions

View file

@ -33,12 +33,13 @@ struct wlr_texture *wlr_render_texture_create(struct wlr_renderer *r);
* float projection[16];
* float matrix[16];
* wlr_texture_get_matrix(texture, &matrix, &projection, 123, 321);
* wlr_render_with_matrix(renderer, texture, &matrix);
* wlr_render_with_matrix(renderer, texture, &matrix, 0.5f);
*
* This will render the texture at <123, 321>.
* This will render the texture at <123, 321> with an alpha channel of 0.5.
*/
bool wlr_render_with_matrix(struct wlr_renderer *r,
struct wlr_texture *texture, const float (*matrix)[16]);
struct wlr_texture *texture, const float (*matrix)[16], float alpha);
/**
* Renders a solid quad in the specified color.
*/

View file

@ -22,7 +22,7 @@ struct wlr_renderer_impl {
void (*scissor)(struct wlr_renderer *renderer, struct wlr_box *box);
struct wlr_texture *(*texture_create)(struct wlr_renderer *renderer);
bool (*render_with_matrix)(struct wlr_renderer *renderer,
struct wlr_texture *texture, const float (*matrix)[16]);
struct wlr_texture *texture, const float (*matrix)[16], float alpha);
void (*render_quad)(struct wlr_renderer *renderer,
const float (*color)[4], const float (*matrix)[16]);
void (*render_ellipse)(struct wlr_renderer *renderer,