mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-01 18:58:10 +02:00
invert Y axis with the viewport transformation to put things right side up
This commit is contained in:
parent
584c076201
commit
f1637e89de
1 changed files with 14 additions and 1 deletions
|
|
@ -189,11 +189,24 @@ static void i915_set_viewport_state( struct pipe_context *pipe,
|
|||
const struct pipe_viewport_state *viewport )
|
||||
{
|
||||
struct i915_context *i915 = i915_context(pipe);
|
||||
float sy, ty;
|
||||
|
||||
i915->viewport = *viewport; /* struct copy */
|
||||
|
||||
/* Negate Y scale to flip image vertically.
|
||||
* The NDC Y coords prior to viewport transformation are in the range
|
||||
* [y=-1=bottom, y=1=top]
|
||||
* Intel window coords are in the range [y=0=top, y=H-1=bottom] where H
|
||||
* is the window height.
|
||||
* Use the viewport transformation to invert Y.
|
||||
*/
|
||||
sy = viewport->scale[1];
|
||||
ty = viewport->translate[1];
|
||||
i915->viewport.scale[1] = -sy;
|
||||
i915->viewport.translate[1] = i915->framebuffer.cbufs[0]->height - ty;
|
||||
|
||||
/* pass the viewport info to the draw module */
|
||||
draw_set_viewport_state(i915->draw, viewport);
|
||||
draw_set_viewport_state(i915->draw, &i915->viewport);
|
||||
|
||||
/* Using tnl/ and vf/ modules is temporary while getting started.
|
||||
* Full pipe will have vertex shader, vertex fetch of its own.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue