# ThorVG: GlCanvas

GlCanvasfinal
ThorVG

A class for the rendering graphic elements with a GL raster engine. More...

Inheritance diagram for GlCanvas:
[legend]
Collaboration diagram for GlCanvas:
[legend]

## Public Member Functions

Result | target (int32_t id, uint32_t w, uint32_t h) noexcept
| Sets the drawing target for rasterization. More...
Public Member Functions inherited from Canvas
std::list< Paint * > & | paints () noexcept
| Returns the list of the paints that currently held by the Canvas. More...
virtual Result | push (std::unique_ptr< Paint > paint) noexcept
| Passes drawing elements to the Canvas using Paint objects. More...
virtual Result | clear (bool free=true) noexcept
| Clear the internal canvas resources that used for the drawing. More...
virtual Result | update (Paint *paint=nullptr) noexcept
| Request the canvas to update the paint objects. More...
virtual Result | draw () noexcept
| Requests the canvas to draw the Paint objects. More...
virtual Result | viewport (int32_t x, int32_t y, int32_t w, int32_t h) noexcept
| Sets the drawing region in the canvas. More...
virtual Result | sync () noexcept
| Guarantees that drawing task is finished. More...

## Static Public Member Functions

static std::unique_ptr< GlCanvas > | gen () noexcept
| Creates a new GlCanvas object. More...

## Detailed Description

A class for the rendering graphic elements with a GL raster engine.

Since
  0.14

## Member Function Documentation

## gen()

static std::unique_ptr<GlCanvas> gen | ( |  | ) |

staticnoexcept

Creates a new GlCanvas object.

Returns
  A new GlCanvas object.

Since
  0.14

## target()

Result target | ( | int32_t | id,
|  | uint32_t | w,
|  | uint32_t | h
| ) |  |

noexcept

Sets the drawing target for rasterization.

This function specifies the drawing target where the rasterization will occur. It can target a specific framebuffer object (FBO) or the main surface.

Parameters

  [in] | id | The GL target ID, usually indicating the FBO ID. A value of `0` specifies the main surface.
  [in] | w | The width (in pixels) of the raster image.
  [in] | h | The height (in pixels) of the raster image.

Return values

  Result::InsufficientCondition | if the canvas is performing rendering. Please ensure the canvas is synced.
  Result::NonSupport | In case the gl engine is not supported.

See also
  Canvas::viewport()
  Canvas::sync()

Note
  Currently, this only allows the GL_RGBA8 color space format.
  Experimental API