git: a8f8c53761c4 - main - loader: Move gfx functions to gfx.lua.8

From: Warner Losh <imp_at_FreeBSD.org>
Date: Fri, 16 Feb 2024 04:00:29 UTC
The branch main has been updated by imp:

URL: https://cgit.FreeBSD.org/src/commit/?id=a8f8c53761c4b0436c9d546ebe046003f1b3d88f

commit a8f8c53761c4b0436c9d546ebe046003f1b3d88f
Author:     Warner Losh <imp@FreeBSD.org>
AuthorDate: 2024-02-16 03:53:55 +0000
Commit:     Warner Losh <imp@FreeBSD.org>
CommitDate: 2024-02-16 03:59:23 +0000

    loader: Move gfx functions to gfx.lua.8
    
    Now that the fb_* and term_* functions are available in the gfx table,
    move the documentation to gfx.lua.8. Add information about backwards
    compatibility.
    
    Sponsored by:           Netflix
    Reviewed by:            kevans
    Differential Revision:  https://reviews.freebsd.org/D43907
---
 stand/lua/Makefile     |   1 +
 stand/lua/gfx.lua.8    | 106 +++++++++++++++++++++++++++++++++++++++++++++++++
 stand/lua/loader.lua.8 |  89 ++++++++---------------------------------
 3 files changed, 124 insertions(+), 72 deletions(-)

diff --git a/stand/lua/Makefile b/stand/lua/Makefile
index e8fa16e6b589..4462a803beef 100644
--- a/stand/lua/Makefile
+++ b/stand/lua/Makefile
@@ -7,6 +7,7 @@ MAN=	loader.conf.lua.5 \
 	config.lua.8 \
 	core.lua.8 \
 	drawer.lua.8 \
+	gfx.lua.8 \
 	hook.lua.8 \
 	loader.lua.8 \
 	menu.lua.8 \
diff --git a/stand/lua/gfx.lua.8 b/stand/lua/gfx.lua.8
new file mode 100644
index 000000000000..82d3f90f4af7
--- /dev/null
+++ b/stand/lua/gfx.lua.8
@@ -0,0 +1,106 @@
+.\"
+.\" Copyright (c) 2024 Netflix, Inc.
+.\"
+.\" SPDX-License-Identifier: BSD-2-Clause
+.\"
+.Dd February 6, 2024
+.Dt GFX.LUA 8
+.Os
+.Sh NAME
+.Nm gfx.lua
+.Nd Fx Lua gfx module
+.Sh DESCRIPTION
+The built-in graphics related Lua bindings for the
+.Fx
+boot loaders using the Lua interpreter are available via the
+.Ic gfx
+table.
+.Ss Exported Functions
+The following functions are exported in the
+.Nm loader
+table.
+.Bl -tag -width term_putimage
+.It Fn fb_bezier x0 y0 x1 y1 x2 y2 width
+Draw a bezier curve through the points
+.Pq Va x0 , Va y0 ,
+.Pq Va x1 , Va y1 ,
+and
+.Pq Va x2 , Va y2
+of width
+.Va width .
+The units are in pixels and have an origin of
+.Pq 0 , 0 .
+.It Fn fb_drawrect x0 y0 x1 y1 fill
+Fill in a rectangle with the pixel
+.Va fill
+with the corners
+.Pq Va x0 , Va y0
+and
+.Pq Va x1 , Va y1 .
+The units are in pixels and have an origin of
+.Pq 0 , 0 .
+.It Fn fb_line x0 y0 x1 y1 width
+Draw a line from
+.Pq Va x0 , Va y0
+to
+.Pq Va x1 , Va y1
+with a width of
+.Va width .
+The units are in pixels and have an origin of
+.Pq 0 , 0 .
+.It Fn fb_putimage name x0 y0 x1 y1 f
+Load the PNG file
+.Va name
+and place it in the rectangle
+with the corners
+.Pq Va x0 , Va y0
+and
+.Pq Va x1 , Va y1
+and fill with pixel
+.Va f .
+The units are in pixels and have an origin of
+.Pq 0 , 0 .
+.It Fn fb_set_pixel x y
+Sets the pixel at
+.Pq Va x , Va y .
+The units are in pixels and have an origin of
+.Pq 0 , 0 .
+.It Fn term_drawrect x0 y0 x1 y1
+Draw the outline of a rectangle with the text coordinate corners of
+.Pq Va x0 , Va y0
+and
+.Pq Va x1 , Va y1 .
+The units are in character cells and have an origin of
+.Pq 1 , 1 .
+.It Fn term_putimage name x0 y0 x1 y1 f
+Load the PNG file
+.Va name
+and place it in the rectangle
+with the text coordinate corners
+.Pq Va x0 , Va y0
+and
+.Pq Va x1 , Va y1
+and fill with pixel
+.Va f .
+The units are in character cells and have an origin of
+.Pq 1 , 1 .
+.El
+.Pp
+This table is optional and should only be used if it is non-nil and if
+.Fn core.isFramebufferConsole
+is true.
+.Ss Compatibility
+All the interfaces described above are also available via the
+.Ic loader
+table through at last FreeBSD 15.0.
+.Sh SEE ALSO
+.Xr loader.conf 5 ,
+.Xr core.lua 8 ,
+.Xr loader 8 ,
+.Xr loader.lua 8
+.Sh AUTHORS
+The
+.Nm
+man page was written by
+.An Warner Losh Aq Mt imp@FreeBSD.org .
+
diff --git a/stand/lua/loader.lua.8 b/stand/lua/loader.lua.8
index cd436255d4a5..ff3b91ddfb09 100644
--- a/stand/lua/loader.lua.8
+++ b/stand/lua/loader.lua.8
@@ -147,80 +147,24 @@ environments.
 Removes the environment variable
 .Va name
 from the loader's environment list.
-.It Fn fb_bezier x0 y0 x1 y1 x2 y2 width
-Draw a bezier curve through the points
-.Pq Va x0 , Va y0 ,
-.Pq Va x1 , Va y1 ,
-and
-.Pq Va x2 , Va y2
-of width
-.Va width .
-The units are in pixels and have an origin of
-.Pq 0 , 0 .
-.It Fn fb_drawrect x0 y0 x1 y1 fill
-Fill in a rectangle with the pixel
-.Va fill
-with the corners
-.Pq Va x0 , Va y0
-and
-.Pq Va x1 , Va y1 .
-The units are in pixels and have an origin of
-.Pq 0 , 0 .
-.It Fn fb_line x0 y0 x1 y1 width
-Draw a line from
-.Pq Va x0 , Va y0
-to
-.Pq Va x1 , Va y1
-with a width of
-.Va width .
-The units are in pixels and have an origin of
-.Pq 0 , 0 .
-.It Fn fb_putimage name x0 y0 x1 y1 f
-Load the PNG file
-.Va name
-and place it in the rectangle
-with the corners
-.Pq Va x0 , Va y0
-and
-.Pq Va x1 , Va y1
-and fill with pixel
-.Va f .
-The units are in pixels and have an origin of
-.Pq 0 , 0 .
-.It Fn fb_set_pixel x y
-Sets the pixel at
-.Pq Va x , Va y .
-The units are in pixels and have an origin of
-.Pq 0 , 0 .
-.It Fn term_drawrect x0 y0 x1 y1
-Draw the outline of a rectangle with the text coordinate corners of
-.Pq Va x0 , Va y0
-and
-.Pq Va x1 , Va y1 .
-The units are in character cells and have an origin of
-.Pq 1 , 1 .
-.It Fn term_putimage name x0 y0 x1 y1 f
-Load the PNG file
-.Va name
-and place it in the rectangle
-with the text coordinate corners
-.Pq Va x0 , Va y0
-and
-.Pq Va x1 , Va y1
-and fill with pixel
-.Va f .
-The units are in character cells and have an origin of
-.Pq 1 , 1 .
 .El
-.Pp
-The functions starting with
-.Fn fb_
+.Ss Compatibility
+The functions
+.Fn fb_bezier ,
+.Fn fb_drawrect ,
+.Fn fb_line ,
+.Fn fb_putimage ,
+.Fn fb_set_pixel ,
+.Fn term_drawrect ,
 and
-.Fn term_
-are optional.
-They should only be used if they are non-nil and if
-.Fn core.isFramebufferConsole
-is true.
+.Fn term_putimage
+have moved to the
+.Ic gfx
+table.
+They remain in the
+.Ic loader
+table for a transition period and are documented in
+.Xr gfx.lua 8 .
 .Ss Default File
 In addition, the Lua interpreters start with the file
 .Pa /boot/lua/loader.lua
@@ -231,6 +175,7 @@ If autoboot is enabled, the loaded files will boot.
 .Sh SEE ALSO
 .Xr loader.conf 5 ,
 .Xr core.lua 8 ,
+.Xr gfx.lua 8 ,
 .Xr loader 8 ,
 .Xr sysctl 8
 .Sh AUTHORS