22#include <kiwano/core/Time.h>
23#include <kiwano/render/Brush.h>
24#include <kiwano/render/Shape.h>
25#include <kiwano/render/Layer.h>
26#include <kiwano/render/TextLayout.h>
27#include <kiwano/render/Texture.h>
32KGE_DECLARE_SMART_PTR(RenderContext);
70 static RenderContextPtr Create(TexturePtr texture,
const PixelSize& size);
74 virtual void BeginDraw();
78 virtual void EndDraw();
92 const Rect* dest_rect =
nullptr) = 0;
127 virtual void DrawCircle(
const Point& center,
float radius);
155 virtual void FillCircle(
const Point& center,
float radius);
196 virtual float GetBrushOpacity()
const;
200 virtual BrushPtr GetCurrentBrush()
const;
204 virtual const Matrix3x2& GetGlobalTransform()
const;
208 virtual void SetBrushOpacity(
float opacity);
212 virtual void SetCurrentBrush(BrushPtr brush);
216 virtual void SetCurrentStrokeStyle(StrokeStylePtr stroke);
244 virtual void SetGlobalTransform(
const Matrix3x2& matrix);
248 virtual void SetGlobalTransform(
const Matrix3x2* matrix);
268 void SetCollectingStatus(
bool enable);
272 const Status& GetStatus()
const;
279 void IncreasePrimitivesCount(uint32_t increase = 1)
const;
283 bool fast_global_transform_;
284 mutable bool collecting_status_;
285 float brush_opacity_;
287 BrushPtr current_brush_;
288 StrokeStylePtr current_stroke_;
296inline RenderContext::Status::Status()
含有本地指针的对象
Definition: NativeObject.hpp:34
渲染上下文
Definition: RenderContext.h:64
virtual void FillShape(const Shape &shape)=0
填充形状
virtual void SetTransform(const Matrix3x2 &matrix)=0
设置上下文的二维变换
virtual void DrawTexture(const Texture &texture, const Rect *src_rect=nullptr, const Rect *dest_rect=nullptr)=0
绘制纹理
virtual void FillRectangle(const Rect &rect)=0
填充矩形
virtual void DrawShape(const Shape &shape)=0
绘制形状轮廓
virtual void DrawTextLayout(const TextLayout &layout, const Point &offset, BrushPtr outline_brush)=0
绘制文本布局
virtual void FillEllipse(const Point ¢er, const Vec2 &radius)=0
填充椭圆
virtual void Resize(const Size &size)=0
重设渲染上下文大小
virtual void PopLayer()=0
取消上一次设置的图层区域
virtual void DrawEllipse(const Point ¢er, const Vec2 &radius)=0
绘制椭圆边框
virtual void DrawRoundedRectangle(const Rect &rect, const Vec2 &radius)=0
绘制圆角矩形边框
virtual void PushClipRect(const Rect &clip_rect)=0
设置绘制的裁剪区域
virtual TexturePtr GetTarget() const =0
获取渲染目标
virtual void Clear()=0
清空渲染内容
virtual void DrawRectangle(const Rect &rect)=0
绘制矩形边框
virtual Size GetSize() const =0
获取渲染区域大小
virtual void PushLayer(Layer &layer)=0
设置图层区域
virtual void DrawLine(const Point &point1, const Point &point2)=0
绘制线段
virtual bool CheckVisibility(const Rect &bounds, const Matrix3x2 &transform)=0
检查边界是否在视区内
virtual void SetBlendMode(BlendMode blend)=0
设置混合模式
virtual void SetAntialiasMode(bool enabled)=0
设置抗锯齿模式
virtual void Clear(const Color &clear_color)=0
使用纯色清空渲染内容
virtual void SetTextAntialiasMode(TextAntialiasMode mode)=0
设置文字抗锯齿模式
const Status & GetStatus() const
获取渲染上下文状态
Definition: RenderContext.h:301
virtual void PopClipRect()=0
取消上一次设置的绘制裁剪区域
virtual void FillRoundedRectangle(const Rect &rect, const Vec2 &radius)=0
填充圆角矩形
virtual void CreateTexture(Texture &texture, const PixelSize &size)=0
创建空纹理
文本布局
Definition: TextLayout.h:39
纹理
Definition: Texture.h:66
TextAntialiasMode
文字抗锯齿模式
Definition: RenderContext.h:42
BlendMode
混合模式
Definition: RenderContext.h:52
时间段
Definition: Duration.h:48
渲染上下文状态
Definition: RenderContext.h:258
Duration duration
渲染时长
Definition: RenderContext.h:261
uint32_t primitives
渲染图元数量
Definition: RenderContext.h:259
Time start
渲染起始时间
Definition: RenderContext.h:260