SDL_GPURasterizerState(3type)

πŸ’… SDL_GPURasterizerState πŸ’…

okay bestie, welcome to the SDL_GPURasterizerState page β€” it's a 3type from the SDL3 DATATYPES crew, and it's literally the glow-up your graphics pipeline's rasterizer needs. ✨

🌸 NAME 🌸

SDL_GPURasterizerState β€” a structure specifying the parameters of the graphics pipeline rasterizer state.

no cap, that's the whole vibe. it's the lil' bundle of settings that tells the rasterizer how to turn your triangles into actual pixels. πŸŽ€


✨ SYNOPSIS ✨

#include <SDL3/SDL_gpu.h>

typedef struct SDL_GPURasterizerState
{
    SDL_GPUFillMode fill_mode;         /**< Whether polygons will be filled in or drawn as lines. */
    SDL_GPUCullMode cull_mode;         /**< The facing direction in which triangles will be culled. */
    SDL_GPUFrontFace front_face;       /**< The vertex winding that will cause a triangle to be determined as front-facing. */
    float depth_bias_constant_factor;  /**< A scalar factor controlling the depth value added to each fragment. */
    float depth_bias_clamp;            /**< The maximum depth bias of a fragment. */
    float depth_bias_slope_factor;     /**< A scalar factor applied to a fragment's slope in depth calculations. */
    bool enable_depth_bias;            /**< true to bias fragment depth values. */
    bool enable_depth_clip;            /**< true to enable depth clip, false to enable depth clamp. */
    Uint8 padding1;
    Uint8 padding2;
} SDL_GPURasterizerState;

look at those fields. every single one is pulling its weight. we love a struct with range. πŸ‘‘


πŸ¦‹ DESCRIPTION πŸ¦‹

So here's the tea, and it's important tea:

note that SDL_GPU_FILLMODE_LINE is not supported on many Android devices. for those devices, the fill mode will automatically fall back to FILL. so like, if you're on Android and you asked for lines, bestie… you're getting fills. it's giving "the device said no". 😭

Also, another thing you gotta know (this one is a whole plot twist):

the D3D12 driver will enable depth clamping even if enable_depth_clip is true. yes, even if. if you need this clamp+clip behavior, consider enabling depth clip and then manually clamping depth in your fragment shaders on Metal and Vulkan. iykyk. πŸ’…

🌈 AVAILABILITY 🌈

This struct is available since SDL 3.2.0. so it's not new-new, but it's also not ancient. it's in its prime. main character era. 🫢


πŸ‘‘ SEE ALSO πŸ‘‘


and that's the whole page, bestie!! go forth and rasterize responsibly. πŸ’–βœ¨πŸŽ€πŸ¦‹πŸŒΈ

this lil' rewrite was brought to you by Simple Directmedia Layer, version SDL 3.4.18. mwah. πŸ’‹

πŸ“¦ where this page comes from