载入中...
搜索中...
未找到
eve::graphics::PrimitiveCanvas2D类 参考

Frame-local Skia-style recorder for 2D line primitives. 更多...

#include <PrimitiveDrawList.h>

Public 成员函数

 PrimitiveCanvas2D (std::size_t hardCommandLimit=65536)
 Primitive canvas 2 d.
 
void save ()
 Pushes the complete current transform state.
 
void restore ()
 Restores the most recently saved state.
 
void concat (const glm::mat3 &transform)
 Post-concatenates a local transform.
 
void drawLine (glm::vec2 a, glm::vec2 b, const PrimitivePaint &paint)
 Records a two-point line. Input data is copied.
 
void drawPoint (glm::vec2 point, const PrimitivePaint &paint)
 Draws a point using stroke width and cap semantics.
 
void drawPolyline (std::span< const glm::vec2 > points, bool closed, const PrimitivePaint &paint)
 Records an owning polyline snapshot.
 
eve::Result< PrimitiveRecordStatus > tryDrawPolyline (std::span< const glm::vec2 > points, bool closed, const PrimitivePaint &paint)
 Atomically records an owning polyline or returns a structured budget failure.
 
void drawPath (const Path2D &path, const PrimitivePaint &paint, float tolerance=0.25f)
 Flattens and records every non-empty contour in path.
 
void drawRect (glm::vec2 minimum, glm::vec2 maximum, const PrimitivePaint &paint)
 Draws an axis-aligned rectangle with fill/stroke paint semantics.
 
void drawRoundedRect (glm::vec2 minimum, glm::vec2 maximum, glm::vec2 radii, const PrimitivePaint &paint, std::uint32_t cornerSegments=8)
 Draws a rounded axis-aligned rectangle with per-axis corner radii.
 
void drawCircle (glm::vec2 center, float radius, const PrimitivePaint &paint, std::uint32_t segments=48)
 Draws a circle using the requested segment quality.
 
void drawCircle (glm::vec2 center, float radius, const PrimitivePaint &paint, const RadialTessellation &tessellation)
 Draws a circle using a fixed quality or adaptive pixel-error policy.
 
void drawEllipse (glm::vec2 center, glm::vec2 radii, const PrimitivePaint &paint, std::uint32_t segments=48)
 Draws an axis-aligned ellipse using the requested segment quality.
 
void drawArc (glm::vec2 center, glm::vec2 radii, float startRadians, float sweepRadians, const PrimitivePaint &paint, std::uint32_t segments=32)
 Draws an arc or filled sector. Angles are radians.
 
void reset ()
 Clears commands and state while retaining allocated capacity.
 
const std::vector< PolylineCommand2D > & commands () const noexcept
 Commands.
 
const std::vector< TriangleCommand2D > & triangles () const noexcept
 Triangles.
 
const PrimitiveDrawStatistics & statistics () const noexcept
 Statistics.
 

详细描述

Frame-local Skia-style recorder for 2D line primitives.

在文件 PrimitiveDrawList.h 第 52 行定义.

构造及析构函数说明

◆ PrimitiveCanvas2D()

eve::graphics::PrimitiveCanvas2D::PrimitiveCanvas2D ( std::size_t  hardCommandLimit = 65536)
explicit

Primitive canvas 2 d.

在文件 PrimitiveDrawList.cpp 第 233 行定义.

引用了 EV_PARAM_CHECK.

成员函数说明

◆ commands()

const std::vector< PolylineCommand2D > & eve::graphics::PrimitiveCanvas2D::commands ( ) const
inlinenoexcept

Commands.

在文件 PrimitiveDrawList.h 第 93 行定义.

被这些函数引用 eve::graphics::resolvePrimitiveStrokes2D().

◆ concat()

void eve::graphics::PrimitiveCanvas2D::concat ( const glm::mat3 &  transform)

Post-concatenates a local transform.

在文件 PrimitiveDrawList.cpp 第 245 行定义.

◆ drawArc()

void eve::graphics::PrimitiveCanvas2D::drawArc ( glm::vec2  center,
glm::vec2  radii,
float  startRadians,
float  sweepRadians,
const PrimitivePaint &  paint,
std::uint32_t  segments = 32 
)

Draws an arc or filled sector. Angles are radians.

在文件 PrimitiveDrawList.cpp 第 477 行定义.

引用了 angle, center, drawPolyline(), EV_PARAM_CHECK, eve::graphics::Fill, eve::graphics::PrimitivePaint::mode, radii, eve::graphics::Stroke , 以及 t.

◆ drawCircle() [1/2]

void eve::graphics::PrimitiveCanvas2D::drawCircle ( glm::vec2  center,
float  radius,
const PrimitivePaint &  paint,
const RadialTessellation &  tessellation 
)

Draws a circle using a fixed quality or adaptive pixel-error policy.

在文件 PrimitiveDrawList.cpp 第 448 行定义.

引用了 center, drawCircle(), radius , 以及 eve::graphics::resolveRadialSegments().

◆ drawCircle() [2/2]

void eve::graphics::PrimitiveCanvas2D::drawCircle ( glm::vec2  center,
float  radius,
const PrimitivePaint &  paint,
std::uint32_t  segments = 48 
)

Draws a circle using the requested segment quality.

在文件 PrimitiveDrawList.cpp 第 443 行定义.

引用了 center, drawEllipse() , 以及 radius.

被这些函数引用 drawCircle() , 以及 drawPoint().

◆ drawEllipse()

void eve::graphics::PrimitiveCanvas2D::drawEllipse ( glm::vec2  center,
glm::vec2  radii,
const PrimitivePaint &  paint,
std::uint32_t  segments = 48 
)

Draws an axis-aligned ellipse using the requested segment quality.

在文件 PrimitiveDrawList.cpp 第 458 行定义.

引用了 eve::graphics::PrimitiveDrawStatistics::cacheHits, center, drawPolyline(), EV_PARAM_CHECK, eve::graphics::Fill, eve::graphics::PrimitivePaint::mode, radii, eve::graphics::Stroke , 以及 unit.

被这些函数引用 drawCircle().

◆ drawLine()

void eve::graphics::PrimitiveCanvas2D::drawLine ( glm::vec2  a,
glm::vec2  b,
const PrimitivePaint &  paint 
)

Records a two-point line. Input data is copied.

在文件 PrimitiveDrawList.cpp 第 247 行定义.

引用了 a, b, drawPolyline() , 以及 points.

◆ drawPath()

void eve::graphics::PrimitiveCanvas2D::drawPath ( const Path2D &  path,
const PrimitivePaint &  paint,
float  tolerance = 0.25f 
)

Flattens and records every non-empty contour in path.

在文件 PrimitiveDrawList.cpp 第 282 行定义.

引用了 area, boundary, drawPolyline(), EV_PARAM_CHECK, eve::graphics::EvenOdd, eve::graphics::Fill, eve::graphics::PrimitivePaint::mode, path, points, eve::graphics::Stroke , 以及 triangle.

◆ drawPoint()

void eve::graphics::PrimitiveCanvas2D::drawPoint ( glm::vec2  point,
const PrimitivePaint &  paint 
)

◆ drawPolyline()

void eve::graphics::PrimitiveCanvas2D::drawPolyline ( std::span< const glm::vec2 >  points,
bool  closed,
const PrimitivePaint &  paint 
)

Records an owning polyline snapshot.

在文件 PrimitiveDrawList.cpp 第 262 行定义.

引用了 points , 以及 tryDrawPolyline().

被这些函数引用 drawArc(), drawEllipse(), drawLine(), drawPath(), drawRect() , 以及 drawRoundedRect().

◆ drawRect()

void eve::graphics::PrimitiveCanvas2D::drawRect ( glm::vec2  minimum,
glm::vec2  maximum,
const PrimitivePaint &  paint 
)

Draws an axis-aligned rectangle with fill/stroke paint semantics.

在文件 PrimitiveDrawList.cpp 第 403 行定义.

引用了 drawPolyline(), EV_PARAM_CHECK, eve::graphics::Fill, maximum, minimum, eve::graphics::PrimitivePaint::mode , 以及 eve::graphics::Stroke.

被这些函数引用 drawPoint().

◆ drawRoundedRect()

void eve::graphics::PrimitiveCanvas2D::drawRoundedRect ( glm::vec2  minimum,
glm::vec2  maximum,
glm::vec2  radii,
const PrimitivePaint &  paint,
std::uint32_t  cornerSegments = 8 
)

Draws a rounded axis-aligned rectangle with per-axis corner radii.

在文件 PrimitiveDrawList.cpp 第 415 行定义.

引用了 angle, center, drawPolyline(), EV_PARAM_CHECK, eve::graphics::Fill, maximum, minimum, eve::graphics::PrimitivePaint::mode, radii, size, start, eve::graphics::Stroke , 以及 valid.

◆ reset()

void eve::graphics::PrimitiveCanvas2D::reset ( )

Clears commands and state while retaining allocated capacity.

在文件 PrimitiveDrawList.cpp 第 503 行定义.

◆ restore()

void eve::graphics::PrimitiveCanvas2D::restore ( )

Restores the most recently saved state.

在文件 PrimitiveDrawList.cpp 第 239 行定义.

引用了 EV_PARAM_CHECK.

◆ save()

void eve::graphics::PrimitiveCanvas2D::save ( )

Pushes the complete current transform state.

在文件 PrimitiveDrawList.cpp 第 237 行定义.

◆ statistics()

const PrimitiveDrawStatistics & eve::graphics::PrimitiveCanvas2D::statistics ( ) const
inlinenoexcept

Statistics.

在文件 PrimitiveDrawList.h 第 97 行定义.

被这些函数引用 eve::graphics::resolvePrimitiveStrokes2D().

◆ triangles()

const std::vector< TriangleCommand2D > & eve::graphics::PrimitiveCanvas2D::triangles ( ) const
inlinenoexcept

Triangles.

在文件 PrimitiveDrawList.h 第 95 行定义.

被这些函数引用 eve::graphics::resolvePrimitiveStrokes2D().

◆ tryDrawPolyline()

eve::Result< PrimitiveRecordStatus > eve::graphics::PrimitiveCanvas2D::tryDrawPolyline ( std::span< const glm::vec2 >  points,
bool  closed,
const PrimitivePaint &  paint 
)

该类的文档由以下文件生成: