diff options
| author | Erik Reider <[email protected]> | 2023-07-27 07:02:25 +0200 | 
|---|---|---|
| committer | GitHub <[email protected]> | 2023-07-27 01:02:25 -0400 | 
| commit | 67103a7c47ffcbedd876eeba2d0aa439616359e3 (patch) | |
| tree | 05fc2d2595958b68232ac0b2db83954439558f22 /render | |
| parent | 4d988e489fa651c09ccd4df2175485301056a42f (diff) | |
feat: add corner radius parameter (#10)
Diffstat (limited to 'render')
| -rw-r--r-- | render/fx_renderer/fx_renderer.c | 14 | 
1 files changed, 6 insertions, 8 deletions
diff --git a/render/fx_renderer/fx_renderer.c b/render/fx_renderer/fx_renderer.c index c30108a..014be33 100644 --- a/render/fx_renderer/fx_renderer.c +++ b/render/fx_renderer/fx_renderer.c @@ -282,8 +282,10 @@ void fx_renderer_scissor(struct wlr_box *box) {  	}  } -bool fx_render_subtexture_with_matrix(struct fx_renderer *renderer, struct wlr_texture *wlr_texture, -		const struct wlr_fbox *src_box, const struct wlr_box *dst_box, const float matrix[static 9]) { +bool fx_render_subtexture_with_matrix(struct fx_renderer *renderer, +		struct wlr_texture *wlr_texture, const struct wlr_fbox *src_box, +		const struct wlr_box *dst_box, const float matrix[static 9], +		float opacity, int corner_radius) {  	assert(wlr_texture_is_gles2(wlr_texture));  	struct wlr_gles2_texture_attribs texture_attrs; @@ -320,12 +322,8 @@ bool fx_render_subtexture_with_matrix(struct fx_renderer *renderer, struct wlr_t  	// to GL_FALSE  	wlr_matrix_transpose(gl_matrix, gl_matrix); -	// TODO: accept me as params! -	float alpha = 1.0; -	int corner_radius = 0; -  	// if there's no opacity or rounded corners we don't need to blend -	if (!texture_attrs.has_alpha && alpha == 1.0 && !corner_radius) { +	if (!texture_attrs.has_alpha && opacity == 1.0 && !corner_radius) {  		glDisable(GL_BLEND);  	} else {  		glEnable(GL_BLEND); @@ -344,7 +342,7 @@ bool fx_render_subtexture_with_matrix(struct fx_renderer *renderer, struct wlr_t  	glUniform1i(shader->tex, 0);  	glUniform2f(shader->size, dst_box->width, dst_box->height);  	glUniform2f(shader->position, dst_box->x, dst_box->y); -	glUniform1f(shader->alpha, alpha); +	glUniform1f(shader->alpha, opacity);  	glUniform1f(shader->radius, corner_radius);  	const GLfloat x1 = src_box->x / wlr_texture->width;  | 
