Struct glium::draw_parameters::DrawParameters
[−]
[src]
pub struct DrawParameters<'a> {
pub depth_test: DepthTest,
pub depth_write: bool,
pub depth_range: (f32, f32),
pub stencil_test_clockwise: StencilTest,
pub stencil_reference_value_clockwise: i32,
pub stencil_write_mask_clockwise: u32,
pub stencil_fail_operation_clockwise: StencilOperation,
pub stencil_pass_depth_fail_operation_clockwise: StencilOperation,
pub stencil_depth_pass_operation_clockwise: StencilOperation,
pub stencil_test_counter_clockwise: StencilTest,
pub stencil_reference_value_counter_clockwise: i32,
pub stencil_write_mask_counter_clockwise: u32,
pub stencil_fail_operation_counter_clockwise: StencilOperation,
pub stencil_pass_depth_fail_operation_counter_clockwise: StencilOperation,
pub stencil_depth_pass_operation_counter_clockwise: StencilOperation,
pub blending_function: Option<BlendingFunction>,
pub color_mask: (bool, bool, bool, bool),
pub line_width: Option<f32>,
pub point_size: Option<f32>,
pub backface_culling: BackfaceCullingMode,
pub polygon_mode: PolygonMode,
pub multisampling: bool,
pub dithering: bool,
pub viewport: Option<Rect>,
pub scissor: Option<Rect>,
pub draw_primitives: bool,
pub samples_passed_query: Option<SamplesQueryParam<'a>>,
pub time_elapsed_query: Option<&'a TimeElapsedQuery>,
pub primitives_generated_query: Option<&'a PrimitivesGeneratedQuery>,
pub transform_feedback_primitives_written_query: Option<&'a TransformFeedbackPrimitivesWrittenQuery>,
pub condition: Option<ConditionalRendering<'a>>,
pub transform_feedback: Option<&'a TransformFeedbackSession<'a>>,
pub smooth: Option<Smooth>,
}Represents the parameters to use when drawing.
Example:
let params = glium::DrawParameters { depth_test: glium::DepthTest::IfLess, depth_write: true, .. Default::default() };
Fields
depth_test | The function that the GPU will use to determine whether to write over an existing pixel
on the target. Don't forget to set See the The default is |
depth_write | Sets whether the GPU will write the depth values on the depth buffer if they pass the depth test. The default is If you pass |
depth_range | The range of possible Z values in surface coordinates. Just like OpenGL turns X and Y coordinates between The two values must be between The first value of the tuple must be the "near" value, where |
stencil_test_clockwise | A comparaison against the existing value in the stencil buffer. Only relevant for faces that are clockwise on the target surface. Other faces, points and
lines use The default value is |
stencil_reference_value_clockwise | Reference value that is used by |
stencil_write_mask_clockwise | Allows specifying a mask when writing data on the stencil buffer. Only relevant for faces that are clockwise on the target surface. Other faces, points and
lines use The default value is |
stencil_fail_operation_clockwise | Specifies the operation to do when a fragment fails the stencil test. The stencil test is the test specified by Only relevant for faces that are clockwise on the target surface. Other faces, points and
lines use The default value is |
stencil_pass_depth_fail_operation_clockwise | Specifies the operation to do when a fragment passes the stencil test but fails the depth test. The stencil test is the test specified by Only relevant for faces that are clockwise on the target surface. Other faces, points and
lines use The default value is |
stencil_depth_pass_operation_clockwise | Specifies the operation to do when a fragment passes both the stencil and depth tests. The stencil test is the test specified by Only relevant for faces that are clockwise on the target surface. Other faces, points and
lines use The default value is |
stencil_test_counter_clockwise | A comparaison against the existing value in the stencil buffer. Only relevant for points, lines and faces that are counter-clockwise on the target surface.
Other faces use The default value is |
stencil_reference_value_counter_clockwise | Reference value that is used by |
stencil_write_mask_counter_clockwise | Allows specifying a mask when writing data on the stencil buffer. Only relevant for points, lines and faces that are counter-clockwise on the target surface.
Other faces use The default value is |
stencil_fail_operation_counter_clockwise | Specifies the operation to do when a fragment fails the stencil test. The stencil test is the test specified by Only relevant for faces that are counter-clockwise on the target surface. Other faces
use The default value is |
stencil_pass_depth_fail_operation_counter_clockwise | Specifies the operation to do when a fragment passes the stencil test but fails the depth test. The stencil test is the test specified by Only relevant for faces that are counter-clockwise on the target surface. Other faces
use The default value is |
stencil_depth_pass_operation_counter_clockwise | Specifies the operation to do when a fragment passes both the stencil and depth tests. The stencil test is the test specified by Only relevant for faces that are counter-clockwise on the target surface. Other faces
use The default value is |
blending_function | The function that the GPU will use to merge the existing pixel with the pixel that is being written.
|
color_mask | Allows you to disable some color components. This affects all attachments to the framebuffer. It's at the same level as the blending function. The parameters are in order: red, green, blue, alpha. |
line_width | Width in pixels of the lines to draw when drawing lines.
|
point_size | Diameter in pixels of the points to draw when drawing points.
|
backface_culling | Whether or not the GPU should filter out some faces. After the vertex shader stage, the GPU will try to remove the faces that aren't facing the camera. See the |
polygon_mode | How to render polygons. The default value is See the documentation of |
multisampling | Whether multisample antialiasing (MSAA) should be used. Default value is Note that you will need to set the appropriate option when creating the window.
The recommended way to do is to leave this to |
dithering | Whether dithering is activated. Default value is Dithering will smoothen the transition between colors in your color buffer. |
viewport | The viewport to use when drawing. The X and Y positions of your vertices are mapped to the viewport so that You can specify a viewport greater than the target if you want to stretch the image.
|
scissor | If specified, only pixels in this rect will be displayed. Default is This is different from a viewport. The image will stretch to fill the viewport, but not the scissor box. |
draw_primitives | If If If This parameter may seem pointless, but it can be useful when you use transform feedback or if you just use your shaders to write to a buffer. |
samples_passed_query | If set, each sample (ie. usually each pixel) written to the output adds one to the
counter of the |
time_elapsed_query | If set, the time it took for the GPU to execute this draw command is added to the total
stored inside the |
primitives_generated_query | If set, the number of primitives generated is added to the total stored inside the query. |
transform_feedback_primitives_written_query | If set, the number of vertices written by transform feedback. |
condition | If set, the commands will only be executed if the specified query contains |
transform_feedback | If set, then the generated primitives will be written back to a buffer. |
smooth | If set, then the generated primitives will be smoothed. Note that blending needs to be enabled for this to work. |
Methods
impl<'a> DrawParameters<'a>
fn new<F>(facade: &'a F) -> DrawParametersBuilder<'a> where F: Facade
Start building draw parameters.