mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-06 11:00:11 +01:00
cso: add new cso_set_viewport_dims() helper
To simplify some viewport setting code in the state tracker. Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
This commit is contained in:
parent
f88c859cd3
commit
f7af12ae85
2 changed files with 20 additions and 0 deletions
|
|
@ -674,6 +674,24 @@ void cso_set_viewport(struct cso_context *ctx,
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Setup viewport state for given width and height (position is always (0,0)).
|
||||
* Invert the Y axis if 'invert' is true.
|
||||
*/
|
||||
void
|
||||
cso_set_viewport_dims(struct cso_context *ctx,
|
||||
float width, float height, boolean invert)
|
||||
{
|
||||
struct pipe_viewport_state vp;
|
||||
vp.scale[0] = width * 0.5f;
|
||||
vp.scale[1] = height * (invert ? -0.5f : 0.5f);
|
||||
vp.scale[2] = 0.5f;
|
||||
vp.translate[0] = 0.5f * width;
|
||||
vp.translate[1] = 0.5f * height;
|
||||
vp.translate[2] = 0.5f;
|
||||
cso_set_viewport(ctx, &vp);
|
||||
}
|
||||
|
||||
void cso_save_viewport(struct cso_context *ctx)
|
||||
{
|
||||
ctx->vp_saved = ctx->vp;
|
||||
|
|
|
|||
|
|
@ -163,6 +163,8 @@ void cso_restore_framebuffer(struct cso_context *cso);
|
|||
|
||||
void cso_set_viewport(struct cso_context *cso,
|
||||
const struct pipe_viewport_state *vp);
|
||||
void cso_set_viewport_dims(struct cso_context *ctx,
|
||||
float width, float height, boolean invert);
|
||||
void cso_save_viewport(struct cso_context *cso);
|
||||
void cso_restore_viewport(struct cso_context *cso);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue