Canvas
You can either draw directly in the window (the default) or onto a custom Canvas.
Summary
Classes
| Name | |
|---|---|
| class | p6::Canvas  A canvas is an image that can be drawn onto.  | 
Functions
| Name | |
|---|---|
| void | save_image(const Canvas & canvas, std::filesystem::path path)Saves the content of the canvas as an image file.  | 
| void | render_to_canvas(Canvas & canvas)Sets a canvas to be the one that all the drawing commands will draw on, until you call render_to_main_canvas.  | 
| void | render_to_main_canvas() Reset the Context to render to the main canvas. The main canvas is the one that will be displayed in the window.  | 
| Canvas & | main_canvas() | 
| const Canvas & | main_canvas() const | 
| Canvas & | current_canvas() | 
| const Canvas & | current_canvas() const | 
| float | aspect_ratio() const Returns the aspect ratio (a.k.a.  | 
| float | inverse_aspect_ratio() const Returns the inverse aspect ratio (a.k.a.  | 
| ImageSize | main_canvas_size() const Returns the size of the main canvas (width and height).  | 
| int | main_canvas_width() const Returns the width of the main canvas.  | 
| int | main_canvas_height() const Returns the height of the main canvas.  | 
| ImageSize | current_canvas_size() const Returns the size of the current canvas (width and height).  | 
| int | current_canvas_width() const Returns the width of the current canvas.  | 
| int | current_canvas_height() const Returns the height of the current canvas.  | 
| void | main_canvas_mode(CanvasSizeMode mode)Sets how the size of the main canvas will be computed.  | 
| float | canvas_ratio(const Canvas & canvas) constReturns the ratio that you need to multiply with in order to match the position and size of the canvas when it is fitted in the window. | 
| void | save_image(std::filesystem::path path) constSaves the content of the window's main canvas as an image file.  | 
| Color | read_pixel(glm::vec2 position) constReturns the color of the pixel at the given position in the main canvas.  | 
Functions
save_image()
voidsave_image(const Canvas &canvas,std::filesystem::pathpath);
Saves the content of the canvas as an image file.
Supported file types are .png and .jpeg/.jpg Simply use the corresponding extension to save in the desired format. If the path already exists, a number will be appended to the name and the previous file won't be overwritten. If the path is relative, it will be relative to the directory containing your executable. If some directories in the path don't exist yet, they will be created automatically.
render_to_canvas()
voidrender_to_canvas(Canvas &canvas);
Sets a canvas to be the one that all the drawing commands will draw on, until you call render_to_main_canvas.
render_to_main_canvas()
voidrender_to_main_canvas();
Reset the Context to render to the main canvas. The main canvas is the one that will be displayed in the window.
main_canvas()
Canvas &main_canvas();
main_canvas()
const Canvas &main_canvas() const;
current_canvas()
Canvas ¤t_canvas();
current_canvas()
const Canvas ¤t_canvas() const;
aspect_ratio()
floataspect_ratio() const;
Returns the aspect ratio (a.k.a.
width / height) of the current canvas. This canvas is the window's main canvas by default, unless you called render_to_canvas() in which case it will be the given canvas. When you call render_to_main_canvas() the current canvas goes back to beeing the window's main canvas.
inverse_aspect_ratio()
floatinverse_aspect_ratio() const;
Returns the inverse aspect ratio (a.k.a.
height / width) of the current canvas. This canvas is the window's main canvas by default, unless you called render_to_canvas() in which case it will be the given canvas. When you call render_to_main_canvas() the current canvas goes back to beeing the window's main canvas.
main_canvas_size()
ImageSizemain_canvas_size() const;
Returns the size of the main canvas (width and height).
main_canvas_width()
intmain_canvas_width() const;
Returns the width of the main canvas.
main_canvas_height()
intmain_canvas_height() const;
Returns the height of the main canvas.
current_canvas_size()
ImageSizecurrent_canvas_size() const;
Returns the size of the current canvas (width and height).
current_canvas_width()
intcurrent_canvas_width() const;
Returns the width of the current canvas.
current_canvas_height()
intcurrent_canvas_height() const;
Returns the height of the current canvas.
main_canvas_mode()
voidmain_canvas_mode(CanvasSizeModemode);
Sets how the size of the main canvas will be computed.
The default mode is CanvasSizeMode_SameAsWindow.
canvas_ratio()
floatcanvas_ratio(const Canvas &canvas) const;
Returns the ratio that you need to multiply with in order to match the position and size of the canvas when it is fitted in the window. 
save_image()
voidsave_image(std::filesystem::pathpath) const;
Saves the content of the window's main canvas as an image file.
Supported file types are .png and .jpeg/.jpg Simply use the corresponding extension to save in the desired format. If the path already exists, a number will be appended to the name and the previous file won't be overwritten. If the path is relative, it will be relative to the directory containing your executable. If some directories in the path don't exist yet, they will be created automatically.
read_pixel()
Colorread_pixel(glm::vec2position) const;
Returns the color of the pixel at the given position in the main canvas.
The coordinates are expressed in the usual p6 coordinate system.
Updated on 2024 October 24