Loading...
Searching...
No Matches
GPUState

#include <Ultralight/platform/GPUDriver.h>

Overview

The state of the GPU for a given draw command.

This structure describes the current state of the GPU for a given draw command.

See also
Command::gpu_state

Public Attributes

uint32_t viewport_width
 Viewport width in pixels.
 
uint32_t viewport_height
 Viewport height in pixels.
 
Matrix4x4 transform
 Transform matrix– you should multiply this with the screen-space orthographic projection matrix then pass to the vertex shader.
 
bool enable_texturing
 Whether or not we should enable texturing for the current draw command.
 
bool enable_blend
 Whether or not we should enable blending for the current draw command.
 
ShaderType shader_type
 The vertex/pixel shader program pair to use for the current draw command.
 
uint32_t render_buffer_id
 The render buffer to use for the current draw command.
 
uint32_t texture_1_id
 The texture id to bind to slot #1. (Will be 0 if none)
 
uint32_t texture_2_id
 The texture id to bind to slot #2. (Will be 0 if none)
 
uint32_t texture_3_id
 The texture id to bind to slot #3. (Will be 0 if none)
 
float uniform_scalar [8]
 The uniform scalars (passed to the pixel shader via uniforms).
 
vec4 uniform_vector [8]
 The uniform vectors (passed to the pixel shader via uniforms).
 
uint8_t clip_size
 The clip size (passed to the pixel shader via uniforms).
 
Matrix4x4 clip [8]
 The clip stack (passed to the pixel shader via uniforms).
 
bool enable_scissor
 Whether or not scissor testing should be used for the current draw command.
 
IntRect scissor_rect
 The scissor rect to use for scissor testing (units in pixels)
 

Member Data Documentation

◆ clip

Matrix4x4 clip[8]

The clip stack (passed to the pixel shader via uniforms).

◆ clip_size

uint8_t clip_size

The clip size (passed to the pixel shader via uniforms).

◆ enable_blend

bool enable_blend

Whether or not we should enable blending for the current draw command.

If blending is disabled, any drawn pixels should overwrite existing. This is mainly used so we can modify alpha values of the RenderBuffer during scissored clears.

◆ enable_scissor

bool enable_scissor

Whether or not scissor testing should be used for the current draw command.

◆ enable_texturing

bool enable_texturing

Whether or not we should enable texturing for the current draw command.

◆ render_buffer_id

uint32_t render_buffer_id

The render buffer to use for the current draw command.

◆ scissor_rect

IntRect scissor_rect

The scissor rect to use for scissor testing (units in pixels)

◆ shader_type

ShaderType shader_type

The vertex/pixel shader program pair to use for the current draw command.

◆ texture_1_id

uint32_t texture_1_id

The texture id to bind to slot #1. (Will be 0 if none)

◆ texture_2_id

uint32_t texture_2_id

The texture id to bind to slot #2. (Will be 0 if none)

◆ texture_3_id

uint32_t texture_3_id

The texture id to bind to slot #3. (Will be 0 if none)

◆ transform

Matrix4x4 transform

Transform matrix– you should multiply this with the screen-space orthographic projection matrix then pass to the vertex shader.

◆ uniform_scalar

float uniform_scalar[8]

The uniform scalars (passed to the pixel shader via uniforms).

◆ uniform_vector

vec4 uniform_vector[8]

The uniform vectors (passed to the pixel shader via uniforms).

◆ viewport_height

uint32_t viewport_height

Viewport height in pixels.

◆ viewport_width

uint32_t viewport_width

Viewport width in pixels.


The documentation for this struct was generated from the following file: