viewport state
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
c8f730b786
commit
3d3f10fd97
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
title: "Vertex Input State"
|
title: "Vertex Input State"
|
||||||
date: 2021-01-28T12:55:51-08:00
|
date: 2021-01-28T12:55:51-08:00
|
||||||
weight: 8
|
weight: 9
|
||||||
---
|
---
|
||||||
|
|
||||||
Our vertex input state will tell the graphics pipeline how to interpret the vertex data in a buffer so that it can pass this data to the vertex shader.
|
Our vertex input state will tell the graphics pipeline how to interpret the vertex data in a buffer so that it can pass this data to the vertex shader.
|
||||||
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
---
|
||||||
|
title: "ViewportState"
|
||||||
|
date: 2021-01-28T13:20:55-08:00
|
||||||
|
weight: 8
|
||||||
|
---
|
||||||
|
|
||||||
|
The viewport state describes the dimensions of the viewport, which is an area of the framebuffer that will be rendered to.
|
||||||
|
|
||||||
|
You define a viewport array like so:
|
||||||
|
|
||||||
|
```cs
|
||||||
|
var myViewport = new Viewport
|
||||||
|
{
|
||||||
|
X = 0,
|
||||||
|
Y = 0,
|
||||||
|
W = 1280,
|
||||||
|
H = 720,
|
||||||
|
MinDepth = 0,
|
||||||
|
MaxDepth = 1
|
||||||
|
};
|
||||||
|
|
||||||
|
var myViewports = new Viewport[] { myViewport };
|
||||||
|
```
|
||||||
|
|
||||||
|
This creates a 1280x720 viewport originating at the top-left corner with depth ranging from 0 to 1.
|
||||||
|
|
||||||
|
You may provide multiple viewports. This can be handy for cases like, for example, rendering a picture-in-picture style mode. Postmodern!
|
||||||
|
|
||||||
|
You also need to provide a "scissor rectangle". This is another way to reduce the number of pixels that will be rendered. When you define a scissor rectangle, any pixels outside of the rectangle are discarded.
|
||||||
|
|
||||||
|
In this example, we want to render to the entire viewport, so we define a scissor rectangle with the same dimensions as the viewport.
|
||||||
|
|
||||||
|
```cs
|
||||||
|
var myScissorRectangle = new Rect
|
||||||
|
{
|
||||||
|
X = 0,
|
||||||
|
Y = 0,
|
||||||
|
W = 1280,
|
||||||
|
H = 720
|
||||||
|
};
|
||||||
|
|
||||||
|
var myScissors = new Rect[] { myScissorRectangle };
|
||||||
|
```
|
||||||
|
|
||||||
|
Finally we hand off these arrays to the ViewportState struct:
|
||||||
|
|
||||||
|
```cs
|
||||||
|
var myViewportState = new ViewportState
|
||||||
|
{
|
||||||
|
Viewports = myViewports,
|
||||||
|
Scissors = myScissors;
|
||||||
|
}
|
||||||
|
```
|
Loading…
Reference in New Issue