FastUIDraw
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
fastuidraw::PainterHeader Class Reference

A PainterHeader represents the values of the header for the shaders to read to draw data. The header holds data that is common for all vertices and fragments for an item to draw, including with what shader and the data for the shader. More...

#include <painter_header.hpp>

Public Types

enum  { drawing_occluder = ~0u }
 
enum  offset_t {
  clip_equations_location_offset, item_matrix_location_offset, brush_shader_data_location_offset, item_shader_data_location_offset,
  blend_shader_data_location_offset, item_shader_offset, brush_shader_offset, blend_shader_offset,
  z_offset, offset_to_deferred_coverage_x_offset, offset_to_deferred_coverage_y_offset, deferred_coverage_min_x_offset,
  deferred_coverage_min_y_offset, deferred_coverage_max_x_offset, deferred_coverage_max_y_offset, brush_adjust_location_offset,
  header_size
}
 Enumerations specifying how the contents of a PainterHeader are packed into a data store buffer (PainterDraw::m_store), offsets are in units of uint32_t (not uvec4). More...
 

Public Member Functions

void pack_data (c_array< uvec4 > dst) const
 

Static Public Member Functions

static unsigned int data_size (void)
 

Public Attributes

uint32_t m_blend_shader
 
uint32_t m_blend_shader_data_location
 
uint32_t m_brush_adjust_location
 
uint32_t m_brush_shader
 
uint32_t m_brush_shader_data_location
 
uint32_t m_clip_equations_location
 
ivec2 m_deferred_coverage_max
 
ivec2 m_deferred_coverage_min
 
uint32_t m_item_matrix_location
 
uint32_t m_item_shader
 
uint32_t m_item_shader_data_location
 
ivec2 m_offset_to_deferred_coverage
 
int32_t m_z
 

Detailed Description

A PainterHeader represents the values of the header for the shaders to read to draw data. The header holds data that is common for all vertices and fragments for an item to draw, including with what shader and the data for the shader.

Definition at line 39 of file painter_header.hpp.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
drawing_occluder 

When m_blend_shader_data_location is set to drawing_occluder, it indicates that the item being drawing is an occluder thus the color computation from the brush and item can be skipped.

Definition at line 42 of file painter_header.hpp.

◆ offset_t

Enumerations specifying how the contents of a PainterHeader are packed into a data store buffer (PainterDraw::m_store), offsets are in units of uint32_t (not uvec4).

Enumerator
clip_equations_location_offset 

offset to m_clip_equations_location

item_matrix_location_offset 

offset to m_item_matrix_location

brush_shader_data_location_offset 

offset to m_brush_shader_data_location

item_shader_data_location_offset 

offset to m_item_shader_data_location

blend_shader_data_location_offset 

offset to m_blend_shader_data_location

item_shader_offset 

offset to m_item_shader

brush_shader_offset 

offset to m_brush_shader

blend_shader_offset 

offset to m_blend_shader

z_offset 

offset to m_z

offset_to_deferred_coverage_x_offset 

offset to m_offset_to_deferred_coverage .x()

offset_to_deferred_coverage_y_offset 

offset to m_offset_to_deferred_coverage .y()

deferred_coverage_min_x_offset 

offset to m_deferred_coverage_min .x()

deferred_coverage_min_y_offset 

offset to m_deferred_coverage_min .y()

deferred_coverage_max_x_offset 

offset to m_deferred_coverage_max .x()

deferred_coverage_max_y_offset 

offset to m_deferred_coverage_max .y()

brush_adjust_location_offset 

Offset to m_brush_adjust_location

header_size 

size of header

Definition at line 59 of file painter_header.hpp.

Member Function Documentation

◆ data_size()

static unsigned int fastuidraw::PainterHeader::data_size ( void  )
inlinestatic

Returns the length of the data needed to encode the data.

Definition at line 209 of file painter_header.hpp.

◆ pack_data()

void fastuidraw::PainterHeader::pack_data ( c_array< uvec4 dst) const

Pack the values of this PainterHeader

Parameters
dstplace to which to pack data

Member Data Documentation

◆ m_blend_shader

uint32_t fastuidraw::PainterHeader::m_blend_shader

The ID of the blend shader (i.e. PainterBlendShader::ID()).

Definition at line 156 of file painter_header.hpp.

◆ m_blend_shader_data_location

uint32_t fastuidraw::PainterHeader::m_blend_shader_data_location

The location, in units of uvec4 tuples, to the location in the data store buffer (PainterDraw::m_store) for the blend shader data. I.e. the PainterBlendShaderData value is stored (packed) at the location

NOTE: if m_blend_shader_data_location is drawing_occluder this means that the item being drawing is an occluder thus the color computation from the brush and item can be skipped.

Definition at line 141 of file painter_header.hpp.

◆ m_brush_adjust_location

uint32_t fastuidraw::PainterHeader::m_brush_adjust_location

If non-zero, indicates that the brush position is to be adjusted in vertex shading before being fed the the brush shading. When non-zero, is an offset, in units of uvec4 tuples, to the location in the data store buffer (PainterDraw::m_store) for the value encoded by a PainterBrushAdjust packed at the location

Definition at line 195 of file painter_header.hpp.

◆ m_brush_shader

uint32_t fastuidraw::PainterHeader::m_brush_shader

The ID of the brush shader (i.e. PainterBrushShader::ID()).

Definition at line 151 of file painter_header.hpp.

◆ m_brush_shader_data_location

uint32_t fastuidraw::PainterHeader::m_brush_shader_data_location

The location, in units of uvec4 tuples, to the location in the data store buffer (PainterDraw::m_store) for the brush shader data. I.e. the data for a brush is stored (packed) at the location

Definition at line 115 of file painter_header.hpp.

◆ m_clip_equations_location

uint32_t fastuidraw::PainterHeader::m_clip_equations_location

The offset, in units of uvec4 tuples, to the location in the data store buffer (PainterDraw::m_store) for the clip equations. I.e. the PainterClipEquations value is stored (packed) at the location

Definition at line 93 of file painter_header.hpp.

◆ m_deferred_coverage_max

ivec2 fastuidraw::PainterHeader::m_deferred_coverage_max

Maximum value (in coverage buffer pixel coordinates) from which allowed to read the coverage buffer.

Definition at line 182 of file painter_header.hpp.

◆ m_deferred_coverage_min

ivec2 fastuidraw::PainterHeader::m_deferred_coverage_min

Minimum value (in coverage buffer pixel coordinates) from which allowed to read the coverage buffer.

Definition at line 176 of file painter_header.hpp.

◆ m_item_matrix_location

uint32_t fastuidraw::PainterHeader::m_item_matrix_location

The location, in units of uvec4 tuples, to the location in the data store buffer (PainterDraw::m_store) for the item matrix. I.e. the PainterItemMatrix value is stored (packed) at the location

Definition at line 104 of file painter_header.hpp.

◆ m_item_shader

uint32_t fastuidraw::PainterHeader::m_item_shader

The ID of the item shader (i.e. PainterItemShader::ID()).

Definition at line 146 of file painter_header.hpp.

◆ m_item_shader_data_location

uint32_t fastuidraw::PainterHeader::m_item_shader_data_location

The location, in units of uvec4 tuples, to the location in the data store buffer (PainterDraw::m_store) for the item shader data. I.e. the PainterItemShaderData value is stored (packed) at the location

Definition at line 126 of file painter_header.hpp.

◆ m_offset_to_deferred_coverage

ivec2 fastuidraw::PainterHeader::m_offset_to_deferred_coverage

Offset in pixels from where to read the deferred coverage values.

Definition at line 170 of file painter_header.hpp.

◆ m_z

int32_t fastuidraw::PainterHeader::m_z

The z-value to use for the item. The z-value is used by Painter to implement clipping and to prevent overdraw. This is the value by which to increment the z-value of the output of an item's vertex shader

Definition at line 164 of file painter_header.hpp.


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