mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-11-02 09:01:38 -05:00
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:
parent
e6ca78b0e4
commit
d08792bfff
11 changed files with 18 additions and 17 deletions
|
|
@ -171,7 +171,7 @@ static void draw_quad() {
|
|||
}
|
||||
|
||||
static bool wlr_gles2_render_texture(struct wlr_renderer *wlr_renderer,
|
||||
struct wlr_texture *texture, const float (*matrix)[16]) {
|
||||
struct wlr_texture *texture, const float (*matrix)[16], float alpha) {
|
||||
if (!texture || !texture->valid) {
|
||||
wlr_log(L_ERROR, "attempt to render invalid texture");
|
||||
return false;
|
||||
|
|
@ -179,12 +179,12 @@ static bool wlr_gles2_render_texture(struct wlr_renderer *wlr_renderer,
|
|||
|
||||
wlr_texture_bind(texture);
|
||||
GL_CALL(glUniformMatrix4fv(0, 1, GL_FALSE, *matrix));
|
||||
// TODO: source alpha from somewhere else I guess
|
||||
GL_CALL(glUniform1f(2, 1.0f));
|
||||
GL_CALL(glUniform1f(2, alpha));
|
||||
draw_quad();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
static void wlr_gles2_render_quad(struct wlr_renderer *wlr_renderer,
|
||||
const float (*color)[4], const float (*matrix)[16]) {
|
||||
GL_CALL(glUseProgram(shaders.quad));
|
||||
|
|
|
|||
|
|
@ -36,8 +36,8 @@ struct wlr_texture *wlr_render_texture_create(struct wlr_renderer *r) {
|
|||
}
|
||||
|
||||
bool wlr_render_with_matrix(struct wlr_renderer *r,
|
||||
struct wlr_texture *texture, const float (*matrix)[16]) {
|
||||
return r->impl->render_with_matrix(r, texture, matrix);
|
||||
struct wlr_texture *texture, const float (*matrix)[16], float alpha) {
|
||||
return r->impl->render_with_matrix(r, texture, matrix, alpha);
|
||||
}
|
||||
|
||||
void wlr_render_colored_quad(struct wlr_renderer *r,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue