Skip to content

Class QAccelPlot::LineMaterial

ClassList > QAccelPlot > LineMaterial

QSGMaterial for line rendering, extending DataTextureMaterial with line-specific uniforms.More...

  • #include <LineMaterial.hpp>

Inherits the following classes: QAccelPlot::DataTextureMaterial

Inherited by the following classes: QAccelPlot::BandEdgeMaterial, QAccelPlot::GradientLineMaterial

Inheritance diagram

flowchart TB
  classQAccelPlot_1_1LineMaterial["QAccelPlot::LineMaterial"]

  classQAccelPlot_1_1DataTextureMaterial["QAccelPlot::DataTextureMaterial"]
  classQAccelPlot_1_1DataTextureMaterial --> classQAccelPlot_1_1LineMaterial
  click classQAccelPlot_1_1DataTextureMaterial "../classQAccelPlot_1_1DataTextureMaterial/" "Open QAccelPlot::DataTextureMaterial"

  external_base_classQAccelPlot_1_1DataTextureMaterial_1["QSGMaterial"]
  external_base_classQAccelPlot_1_1DataTextureMaterial_1 --> classQAccelPlot_1_1DataTextureMaterial

  classQAccelPlot_1_1BandEdgeMaterial["QAccelPlot::BandEdgeMaterial"]
  classQAccelPlot_1_1LineMaterial --> classQAccelPlot_1_1BandEdgeMaterial
  click classQAccelPlot_1_1BandEdgeMaterial "../classQAccelPlot_1_1BandEdgeMaterial/" "Open QAccelPlot::BandEdgeMaterial"

  classQAccelPlot_1_1GradientLineMaterial["QAccelPlot::GradientLineMaterial"]
  classQAccelPlot_1_1LineMaterial --> classQAccelPlot_1_1GradientLineMaterial
  click classQAccelPlot_1_1GradientLineMaterial "../classQAccelPlot_1_1GradientLineMaterial/" "Open QAccelPlot::GradientLineMaterial"

Public Attributes

Type Name
float antialiasingEnabled = {1.0f}
1.0 when GPU anti-aliasing is active.
float antialiasingFeather = {1.0f}
Anti-aliasing feather width in pixels.
float dashOffset = {0.0f}
Phase offset into the dash pattern.
float dashPattern = {}
Alternating dash/gap lengths (up to 8 entries).
int dashPatternSize = {0}
Number of valid entries in dashPattern .
float dashPeriod = {0.0f}
Total dash+gap cycle length in pixels.
float lineWidth = {1.0f}
Rendered line width in pixels.
float pointCount = {0.0f}
Number of data points (used to index the data texture).
float stepMode = {0.0f}
StepMode of the line, as a float (std140 offset 180 in the UBO).

Public Attributes inherited from QAccelPlot::DataTextureMaterial

See QAccelPlot::DataTextureMaterial

Type Name
QColor color = {Qt::blue}
Line/fill color uniform.
std::shared_ptr< DataTexture > dataTexture
Data texture sampled by the shader. Materials drawing the same samples may share one.
QVector2D domainMax = {1.0f, 1.0f}
Maximum data-space coordinate.
QVector2D domainMin = {0.0f, 0.0f}
Minimum data-space coordinate.
float logScaleX = {0.0f}
1.0 when the X axis uses log scale (float for std140 UBO compatibility).
float logScaleY = {0.0f}
1.0 when the Y axis uses log scale (float for std140 UBO compatibility).
float useVertexColor = {0.0f}
1.0 when per-vertex color overrides color (float for std140 UBO compatibility).
QVector2D viewportSize = {800.0f, 600.0f}
Viewport size in pixels.

Public Functions

Type Name
LineMaterial ()
Constructs a LineMaterial with default uniform values.
QSGMaterialShader * createShader (QSGRendererInterface::RenderMode) override const
Creates and returns the line shader program.
QSGMaterialType * type () override const
Returns the unique material type identifier for this subclass.

Public Functions inherited from QAccelPlot::DataTextureMaterial

See QAccelPlot::DataTextureMaterial

Type Name
DataTextureMaterial ()
Constructs an empty DataTextureMaterial .
int compare (const QSGMaterial * other) override const
Compares shared uniform fields; delegates type-specific fields to compareExtra() .
QSGTexture * sampledTexture () const
Returns the texture the shader samples, or nullptr beforedataTexture holds an upload.
void uploadTexture (QQuickWindow * window, const float * data, int floatCount)
Uploads floatCount raw floats from__data intodataTexture , creating it when it isnullptr .
~DataTextureMaterial () override

Public Static Functions inherited from QAccelPlot::DataTextureMaterial

See QAccelPlot::DataTextureMaterial

Type Name
const QSGGeometry::AttributeSet & attributeSet ()
Returns the shared vertex attribute set: {float id, float param, uchar4 color} (12 bytes).
void commitTexture (QSGMaterialShader::RenderState & state, int binding, QSGTexture ** texture, const DataTexture * data)
Commits the texture of data to sampler__binding (call fromupdateSampledImage ). Does nothing before an upload.
const QSGGeometry::AttributeSet & vertexIndexAttributeSet ()
Returns the attribute set of marker quads: one ignored uchar4 placeholder (4 bytes).
bool writeCommonUniforms (char * buf, int bufSize, const QMatrix4x4 & matrix, const DataTextureMaterial * mat)
Writes the shared UBO prefix (transform + color + domain + flags) into buf .

Protected Functions

Type Name
virtual int compareExtra (const QSGMaterial * other) override const
Compares line-specific uniform fields after the base-class comparison succeeds.

Protected Functions inherited from QAccelPlot::DataTextureMaterial

See QAccelPlot::DataTextureMaterial

Type Name
virtual int compareExtra (const QSGMaterial * other) const
Subclass hook for compare() — called after the shared fields compare equal.

Protected Static Functions

Type Name
QSGMaterialShader * createLineShader (const QString & vertexShaderFileName)
Returns the line shader program with vertex stage vertexShaderFileName and the line fragment stage.

Detailed Description

Supplies line width, point count, anti-aliasing parameters, and dash pattern data to the line shaders (std140 offsets 104–183 in the UBO; 176–179 holds the inherited item opacity).

Public Attributes Documentation

variable antialiasingEnabled

1.0 when GPU anti-aliasing is active.

float QAccelPlot::LineMaterial::antialiasingEnabled;


variable antialiasingFeather

Anti-aliasing feather width in pixels.

float QAccelPlot::LineMaterial::antialiasingFeather;


variable dashOffset

Phase offset into the dash pattern.

float QAccelPlot::LineMaterial::dashOffset;


variable dashPattern

Alternating dash/gap lengths (up to 8 entries).

float QAccelPlot::LineMaterial::dashPattern[8];


variable dashPatternSize

Number of valid entries in dashPattern .

int QAccelPlot::LineMaterial::dashPatternSize;


variable dashPeriod

Total dash+gap cycle length in pixels.

float QAccelPlot::LineMaterial::dashPeriod;


variable lineWidth

Rendered line width in pixels.

float QAccelPlot::LineMaterial::lineWidth;


variable pointCount

Number of data points (used to index the data texture).

float QAccelPlot::LineMaterial::pointCount;


variable stepMode

StepMode of the line, as a float (std140 offset 180 in the UBO).

float QAccelPlot::LineMaterial::stepMode;


Public Functions Documentation

function LineMaterial

Constructs a LineMaterial with default uniform values.

QAccelPlot::LineMaterial::LineMaterial () 


function createShader

Creates and returns the line shader program.

QSGMaterialShader * QAccelPlot::LineMaterial::createShader (
    QSGRendererInterface::RenderMode
) override const


function type

Returns the unique material type identifier for this subclass.

QSGMaterialType * QAccelPlot::LineMaterial::type () override const


Protected Functions Documentation

function compareExtra

Compares line-specific uniform fields after the base-class comparison succeeds.

virtual int QAccelPlot::LineMaterial::compareExtra (
    const QSGMaterial * other
) override const

Implements QAccelPlot::DataTextureMaterial::compareExtra


Protected Static Functions Documentation

function createLineShader

Returns the line shader program with vertex stage vertexShaderFileName and the line fragment stage.

static QSGMaterialShader * QAccelPlot::LineMaterial::createLineShader (
    const QString & vertexShaderFileName
) 

The vertex stage must declare the same uniform block as line.vert.



The documentation for this class was generated from the following file QAccelPlot/src/QAccelPlot/materials/LineMaterial.hpp