HikoGUI
A low latency retained GUI
|
#include <hikogui/GFX/draw_context_intf.hpp>
Public Member Functions | |
draw_context (draw_context const &rhs) noexcept=default | |
draw_context (draw_context &&rhs) noexcept=default | |
draw_context & | operator= (draw_context const &rhs) noexcept=default |
draw_context & | operator= (draw_context &&rhs) noexcept=default |
draw_context (gfx_device &device, vector_span< gfx_pipeline_box::vertex > &box_vertices, vector_span< gfx_pipeline_image::vertex > &image_vertices, vector_span< gfx_pipeline_SDF::vertex > &sdf_vertices, vector_span< gfx_pipeline_override::vertex > &override_vertices) noexcept | |
operator bool () const noexcept | |
Check if the draw_context should be used for rendering. | |
template<std::same_as< widget_layout > WidgetLayout> | |
void | draw_box (WidgetLayout const &layout, quad const &box, draw_attributes const &attributes) const noexcept |
Draw a box. | |
template<std::same_as< widget_layout > WidgetLayout, draw_quad_shape Shape, draw_attribute... Attributes> | |
void | draw_box (WidgetLayout const &layout, Shape const &shape, Attributes const &...attributes) const noexcept |
Draw a box. | |
template<std::same_as< widget_layout > WidgetLayout> | |
void | draw_line (WidgetLayout const &layout, line_segment const &line, draw_attributes const &attributes) const noexcept |
Draw a line. | |
template<std::same_as< widget_layout > WidgetLayout, draw_attribute... Attributes> | |
void | draw_line (WidgetLayout const &layout, line_segment const &line, Attributes const &...attributes) const noexcept |
Draw a line. | |
template<std::same_as< widget_layout > WidgetLayout> | |
void | draw_circle (WidgetLayout const &layout, hi::circle const &circle, draw_attributes const &attributes) const noexcept |
Draw a circle. | |
template<std::same_as< widget_layout > WidgetLayout, draw_attribute... Attributes> | |
void | draw_circle (WidgetLayout const &layout, hi::circle const &circle, Attributes const &...attributes) const noexcept |
Draw a circle. | |
template<std::same_as< widget_layout > WidgetLayout> | |
bool | draw_image (WidgetLayout const &layout, quad const &box, gfx_pipeline_image::paged_image &image, draw_attributes const &attributes) const noexcept |
Draw an image. | |
template<std::same_as< widget_layout > WidgetLayout, draw_attribute... Attributes> | |
bool | draw_image (WidgetLayout const &layout, draw_quad_shape auto const &box, gfx_pipeline_image::paged_image &image, Attributes const &...attributes) const noexcept |
Draw an image. | |
template<std::same_as< widget_layout > WidgetLayout> | |
void | draw_glyph (WidgetLayout const &layout, quad const &box, hi::font const &font, glyph_id glyph, draw_attributes const &attributes) const noexcept |
Draw a glyph. | |
template<std::same_as< widget_layout > WidgetLayout, draw_quad_shape Shape, draw_attribute... Attributes> | |
void | draw_glyph (WidgetLayout const &layout, Shape const &box, hi::font const &font, hi::glyph_id glyph_id, Attributes const &...attributes) const noexcept |
Draw a glyph. | |
template<std::same_as< widget_layout > WidgetLayout> | |
void | draw_glyph (WidgetLayout const &layout, quad const &box, font_book::font_glyph_type const &glyph, draw_attributes const &attributes) const noexcept |
Draw a glyph. | |
template<std::same_as< widget_layout > WidgetLayout, draw_quad_shape Shape, draw_attribute... Attributes> | |
void | draw_glyph (WidgetLayout const &layout, Shape const &box, font_book::font_glyph_type const &glyph, Attributes const &...attributes) const noexcept |
Draw a glyph. | |
template<std::same_as< widget_layout > WidgetLayout> | |
void | draw_text (WidgetLayout const &layout, matrix3 const &transform, text_shaper const &text, draw_attributes const &attributes) const noexcept |
Draw shaped text. | |
template<std::same_as< widget_layout > WidgetLayout, draw_attribute... Attributes> | |
void | draw_text (WidgetLayout const &layout, matrix3 const &transform, text_shaper const &text, Attributes const &...attributes) const noexcept |
Draw shaped text. | |
template<std::same_as< widget_layout > WidgetLayout, draw_attribute... Attributes> | |
void | draw_text (WidgetLayout const &layout, text_shaper const &text, Attributes const &...attributes) const noexcept |
Draw shaped text. | |
template<std::same_as< widget_layout > WidgetLayout> | |
void | draw_text_selection (WidgetLayout const &layout, text_shaper const &text, text_selection const &selection, draw_attributes const &attributes) const noexcept |
Draw text-selection of shaped text. | |
template<std::same_as< widget_layout > WidgetLayout, draw_attribute... Attributes> | |
void | draw_text_selection (WidgetLayout const &layout, text_shaper const &text, text_selection const &selection, Attributes const &...attributes) const noexcept |
Draw text-selection of shaped text. | |
template<std::same_as< widget_layout > WidgetLayout> | |
void | draw_text_cursors (WidgetLayout const &layout, text_shaper const &text, text_cursor cursor, bool overwrite_mode, bool dead_character_mode, draw_attributes const &attributes) const noexcept |
Draw text cursors of shaped text. | |
template<std::same_as< widget_layout > WidgetLayout, draw_attribute... Attributes> | |
void | draw_text_cursors (WidgetLayout const &layout, text_shaper const &text, text_cursor cursor, bool overwrite_mode, bool dead_character_mode, Attributes const &...attributes) const noexcept |
Draw text cursors of shaped text. | |
template<std::same_as< widget_layout > WidgetLayout> | |
void | draw_hole (WidgetLayout const &layout, quad const &box, draw_attributes attributes) const noexcept |
Make a hole in the user interface. | |
template<std::same_as< widget_layout > WidgetLayout, draw_quad_shape Shape, draw_attribute... Attributes> | |
void | draw_hole (WidgetLayout const &layout, Shape const &box, Attributes const &...attributes) const noexcept |
Make a hole in the user interface. | |
Data Fields | |
gfx_device * | device |
std::size_t | frame_buffer_index |
The frame buffer index of the image we are currently rendering. | |
aarectangle | scissor_rectangle |
This is the rectangle of the window that is being redrawn. | |
hi::subpixel_orientation | subpixel_orientation |
The subpixel orientation for rendering glyphs. | |
float | saturation |
The tone-mapper's saturation. | |
utc_nanoseconds | display_time_point |
The time when the drawing will appear on the screen. | |
Friends | |
template<std::same_as< widget_layout > WidgetLayout> | |
bool | overlaps (draw_context const &context, WidgetLayout const &layout) noexcept |
Checks if a widget's layout overlaps with the part of the window that is being drawn. | |
Draw context for drawing using the HikoGUI shaders.
|
inlinenoexcept |
Draw a box.
layout | The layout to use, specifically the to_window transformation matrix and the clipping rectangle. |
box | The four points of the box to draw. |
attributes | The drawing attributes to use. |
|
inlinenoexcept |
Draw a box.
layout | The layout to use, specifically the to_window transformation matrix and the clipping rectangle. |
shape | The shape of the box. |
attributes | The drawing attributes to use, see: draw_attributes::draw_attributes() . |
|
inlinenoexcept |
Draw a circle.
layout | The layout to use, specifically the to_window transformation matrix and the clipping rectangle. |
circle | The circle to draw. |
attributes | The drawing attributes to use, see: draw_attributes::draw_attributes() . |
|
inlinenoexcept |
Draw a circle.
layout | The layout to use, specifically the to_window transformation matrix and the clipping rectangle. |
circle | The circle to draw. |
attributes | The drawing attributes to use. |
|
inlinenoexcept |
Draw a glyph.
layout | The layout to use, specifically the to_window transformation matrix and the clipping rectangle. |
box | The size and position of the glyph. |
glyph | The glyphs to draw. |
attributes | The drawing attributes to use. |
|
inlinenoexcept |
Draw a glyph.
layout | The layout to use, specifically the to_window transformation matrix and the clipping rectangle. |
box | The size and position of the glyph. |
glyph | The glyphs to draw. |
attributes | The drawing attributes to use. |
|
inlinenoexcept |
Draw a glyph.
layout | The layout to use, specifically the to_window transformation matrix and the clipping rectangle. |
box | The size and position of the glyph. |
glyph | The glyphs to draw. |
attributes | The drawing attributes to use, see: draw_attributes::draw_attributes() . |
|
inlinenoexcept |
Draw a glyph.
layout | The layout to use, specifically the to_window transformation matrix and the clipping rectangle. |
box | The size and position of the glyph. |
glyph | The glyphs to draw. |
attributes | The drawing attributes to use, see: draw_attributes::draw_attributes() . |
|
inlinenoexcept |
Make a hole in the user interface.
This function makes a hole in the user-interface so that fragments written in the swap-chain before the GUI is drawn will be visible.
layout | The layout of the widget. |
box | The box in local coordinates of the widget. |
attributes | The drawing attributes to use. |
|
inlinenoexcept |
Make a hole in the user interface.
This function makes a hole in the user-interface so that fragments written in the swap-chain before the GUI is drawn will be visible.
layout | The layout of the widget. |
box | The box in local coordinates of the widget. |
attributes | The drawing attributes to use, see: draw_attributes::draw_attributes() . |
|
inlinenoexcept |
Draw an image.
layout | The layout to use, specifically the to_window transformation matrix and the clipping rectangle. |
box | The four points of the box to draw. |
image | The image to show. |
attributes | The drawing attributes to use, see: draw_attributes::draw_attributes() . |
|
inlinenoexcept |
Draw an image.
layout | The layout to use, specifically the to_window transformation matrix and the clipping rectangle. |
box | The four points of the box to draw. |
image | The image to show. |
attributes | The drawing attributes to use. |
|
inlinenoexcept |
Draw a line.
layout | The layout to use, specifically the to_window transformation matrix and the clipping rectangle. |
line | The line segment to draw. |
attributes | The drawing attributes to use, see: draw_attributes::draw_attributes() . |
|
inlinenoexcept |
Draw a line.
layout | The layout to use, specifically the to_window transformation matrix and the clipping rectangle. |
line | The line segment to draw. |
attributes | The drawing attributes to use. |
|
inlinenoexcept |
Draw shaped text.
layout | The layout to use, specifically the to_window transformation matrix and the clipping rectangle. |
transform | How to transform the shaped text relative to layout. |
text | The shaped text to draw. |
attributes | The drawing attributes to use, see: draw_attributes::draw_attributes() . |
|
inlinenoexcept |
Draw shaped text.
layout | The layout to use, specifically the to_window transformation matrix and the clipping rectangle. |
transform | How to transform the shaped text relative to layout. |
text | The shaped text to draw. |
attributes | The drawing attributes to use. |
|
inlinenoexcept |
Draw shaped text.
layout | The layout to use, specifically the to_window transformation matrix and the clipping rectangle. |
text | The shaped text to draw. |
attributes | The drawing attributes to use, see: draw_attributes::draw_attributes() . |
|
inlinenoexcept |
Draw text cursors of shaped text.
layout | The layout to use, specifically the to_window transformation matrix and the clipping rectangle. |
text | The shaped text to draw. |
cursor | The position of the cursor. |
overwrite_mode | If true draw overwrite mode cursor; if false draw insertion mode cursors, |
dead_character_mode | If true draw the dead-character cursor. The dead_character_mode overrides all other cursors. |
attributes | The drawing attributes to use, see: draw_attributes::draw_attributes() . |
|
inlinenoexcept |
Draw text cursors of shaped text.
layout | The layout to use, specifically the to_window transformation matrix and the clipping rectangle. |
text | The shaped text to draw. |
cursor | The position of the cursor. |
overwrite_mode | If true draw overwrite mode cursor; if false draw insertion mode cursors, |
dead_character_mode | If true draw the dead-character cursor. The dead_character_mode overrides all other cursors. |
attributes | The drawing attributes to use. |
|
inlinenoexcept |
Draw text-selection of shaped text.
layout | The layout to use, specifically the to_window transformation matrix and the clipping rectangle. |
text | The shaped text to draw. |
selection | The text selection. |
attributes | The drawing attributes to use, see: draw_attributes::draw_attributes() . |
|
inlinenoexcept |
Draw text-selection of shaped text.
layout | The layout to use, specifically the to_window transformation matrix and the clipping rectangle. |
text | The shaped text to draw. |
selection | The text selection. |
attributes | The drawing attributes to use. |
|
inlinenoexcept |
Check if the draw_context should be used for rendering.
|
friend |
Checks if a widget's layout overlaps with the part of the window that is being drawn.
context | The draw context which contains the scissor rectangle. |
layout | The layout of a widget which contains the rectangle where the widget is located on the window |
utc_nanoseconds hi::v1::draw_context::display_time_point |
The time when the drawing will appear on the screen.
std::size_t hi::v1::draw_context::frame_buffer_index |
The frame buffer index of the image we are currently rendering.
float hi::v1::draw_context::saturation |
The tone-mapper's saturation.
aarectangle hi::v1::draw_context::scissor_rectangle |
This is the rectangle of the window that is being redrawn.
hi::subpixel_orientation hi::v1::draw_context::subpixel_orientation |
The subpixel orientation for rendering glyphs.