HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
Public Member Functions | Friends
tt::draw_context Class Reference

#include <ttauri/GUI/draw_context.hpp>

Public Member Functions

 draw_context (draw_context const &rhs) noexcept=default
 
 draw_context (draw_context &&rhs) noexcept=default
 
draw_contextoperator= (draw_context const &rhs) noexcept=default
 
draw_contextoperator= (draw_context &&rhs) noexcept=default
 
 draw_context (gui_window &window, aarectangle scissor_rectangle, vspan< pipeline_flat::vertex > &flatVertices, vspan< pipeline_box::vertex > &boxVertices, vspan< pipeline_image::vertex > &imageVertices, vspan< pipeline_SDF::vertex > &sdfVertices) noexcept
 
draw_context make_child_context (matrix3 parent_to_local, matrix3 local_to_window, aarectangle clipping_rectangle) const noexcept
 
aarectangle clipping_rectangle () const noexcept
 
void set_clipping_rectangle (aarectangle clipping_rectangle) noexcept
 
matrix3 transform () const noexcept
 
gui_windowwindow () const noexcept
 
gui_devicedevice () const noexcept
 
void draw_filled_quad (point3 p1, point3 p2, point3 p3, point3 p4, color fill_color) const noexcept
 Draw a polygon with four corners of one color.
 
void draw_filled_quad (rectangle r, color fill_color) const noexcept
 Draw a rectangle of one color.
 
void draw_box (rectangle box, color fill_color, color line_color, float line_width=1.0, tt::corner_shapes corner_shapes=tt::corner_shapes{}) const noexcept
 Draw an axis aligned box This function will draw the given box.
 
void draw_box (rectangle box, color fill_color, color line_color, tt::corner_shapes corner_shapes) const noexcept
 
void draw_box (rectangle box, color fill_color, tt::corner_shapes corner_shapes) const noexcept
 
void draw_box_with_border_inside (rectangle rectangle, color fill_color, color line_color, float line_width=1.0, tt::corner_shapes corner_shapes=tt::corner_shapes{}) const noexcept
 Draw an axis aligned box This function will shrink to include the size of the border inside the given rectangle.
 
void draw_box_with_border_inside (rectangle rectangle, color fill_color, color line_color, tt::corner_shapes corner_shapes) const noexcept
 
void draw_box_with_border_outside (rectangle rectangle, color fill_color, color line_color, float line_width=1.0, tt::corner_shapes corner_shapes=tt::corner_shapes{}) const noexcept
 Draw an axis aligned box This function will expand to include the size of the border outside the given rectangle.
 
void draw_box_with_border_outside (rectangle rectangle, color fill_color, color line_color, tt::corner_shapes corner_shapes) const noexcept
 
void draw_image (pipeline_image::Image &image, matrix3 image_transform) const noexcept
 Draw an image This function will draw an image.
 
void draw_text (shaped_text const &text, std::optional< color > text_color={}, matrix3 transform=geo::identity{}) const noexcept
 Draw shaped text.
 
void draw_glyph (font_glyph_ids const &glyph, rectangle box, color text_color) const noexcept
 

Friends

bool overlaps (draw_context const &context, aarectangle const &rectangle) noexcept
 

Detailed Description

Draw context for drawing using the TTauri shaders.

Member Function Documentation

◆ draw_box()

void tt::draw_context::draw_box ( rectangle box,
color fill_color,
color line_color,
float line_width = 1.0,
tt::corner_shapes corner_shapes = tt::corner_shapes{} ) const
inlinenoexcept

Draw an axis aligned box This function will draw the given box.

This will use the current:

  • transform, to transform the opposite corner (rotation is not recommended).
  • clippingRectangle
  • fillColor
  • borderSize
  • borderColor
  • shadowSize
  • cornerShapes

◆ draw_box_with_border_inside()

void tt::draw_context::draw_box_with_border_inside ( rectangle rectangle,
color fill_color,
color line_color,
float line_width = 1.0,
tt::corner_shapes corner_shapes = tt::corner_shapes{} ) const
inlinenoexcept

Draw an axis aligned box This function will shrink to include the size of the border inside the given rectangle.

This will make the border be drawn sharply.

This will also adjust rounded corners to the shrunk box.

This function will draw the given box. This will use the current:

  • transform, to transform the opposite corner (rotation is not recommended).
  • clipping_rectangle
  • fill_color
  • border_size
  • border_color
  • corner_shapes

◆ draw_box_with_border_outside()

void tt::draw_context::draw_box_with_border_outside ( rectangle rectangle,
color fill_color,
color line_color,
float line_width = 1.0,
tt::corner_shapes corner_shapes = tt::corner_shapes{} ) const
inlinenoexcept

Draw an axis aligned box This function will expand to include the size of the border outside the given rectangle.

This will make the border be drawn sharply.

This will also adjust rounded corners to the shrunk box.

This function will draw the given box. This will use the current:

  • transform, to transform the opposite corner (rotation is not recommended).
  • clippingRectangle
  • fillColor
  • borderSize
  • borderColor
  • shadowSize
  • cornerShapes

◆ draw_filled_quad() [1/2]

void tt::draw_context::draw_filled_quad ( point3 p1,
point3 p2,
point3 p3,
point3 p4,
color fill_color ) const
inlinenoexcept

Draw a polygon with four corners of one color.

This function will draw a polygon between the four given points. This will use the current:

  • transform, to transform each point.
  • clippingRectangle
  • fillColor

◆ draw_filled_quad() [2/2]

void tt::draw_context::draw_filled_quad ( rectangle r,
color fill_color ) const
inlinenoexcept

Draw a rectangle of one color.

This function will draw the given rectangle. This will use the current:

  • transform, to transform each corner of the rectangle.
  • clippingRectangle
  • fillColor

◆ draw_image()

void tt::draw_context::draw_image ( pipeline_image::Image & image,
matrix3 image_transform ) const
inlinenoexcept

Draw an image This function will draw an image.

This will use the current:

  • transform, to transform the image.
  • clippingRectangle

◆ draw_text()

void tt::draw_context::draw_text ( shaped_text const & text,
std::optional< color > text_color = {},
matrix3 transform = geo::identity{} ) const
inlinenoexcept

Draw shaped text.

This function will draw the shaped text. The SDF-image-atlas needs to be prepared ahead of time. This will use the current:

  • transform, to transform the shaped-text's bounding box
  • clippingRectangle
Parameters
textThe shaped text to draw.
useContextColorWhen true display the text in the context's color, if false use text style color

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