8a46b1f488
graphics: nx_openwindow() and nxtk_openwindow() now accept an addtional 'flag' parameter. This argument is not used at present but will, eventually enable a RAM backed, per-window framebuffer. graphics/Kconfig: Add configuration to support a rambacked framebuffer. Current marked as EXPERIMENTAL because this is a work in progress.
460 lines
14 KiB
Plaintext
460 lines
14 KiB
Plaintext
#
|
|
# For a description of the syntax of this configuration file,
|
|
# see the file kconfig-language.txt in the NuttX tools repository.
|
|
#
|
|
|
|
config NX
|
|
bool "NX Graphics"
|
|
default n
|
|
select NXGLIB
|
|
select NXFONTS
|
|
---help---
|
|
Enables overall support for graphics library and NX
|
|
|
|
if NX
|
|
|
|
config NX_LCDDRIVER
|
|
bool "LCD driver"
|
|
default y
|
|
depends on LCD
|
|
---help---
|
|
By default, the NX graphics system uses the frame buffer driver interface
|
|
defined in include/nuttx/video/fb.h. However, if LCD is support is enabled,
|
|
this this option is provide to select, instead, the LCD driver interface
|
|
defined in include/nuttx/lcd/lcd.h.
|
|
|
|
config NX_NDISPLAYS
|
|
int "Maximum number of displays supported"
|
|
default 1
|
|
range 1 9
|
|
---help---
|
|
The maximum number of displays that can be supported by the NX server.
|
|
Normally this takes the value one but may be increased to support systems
|
|
with multiple displays.
|
|
|
|
config NX_NPLANES
|
|
int "Number of Color Planes"
|
|
default 1
|
|
range 1 8
|
|
---help---
|
|
Some YUV color formats requires support for multiple planes, one for
|
|
each color component. Unless you have such special hardware (and
|
|
are willing to debug a lot of untested logic), this value should be
|
|
set to 1.
|
|
|
|
config NX_RAMBACKED
|
|
bool "RAM backed windows"
|
|
default n
|
|
depends on EXPERIMENTAL
|
|
---help---
|
|
If this option is selected, then windows may be optionally created
|
|
with a RAM frambuffer backing up the window content. Rending into
|
|
the window will result in rending into the backup framebuffer, then
|
|
updating the physical display from the framebuffer.
|
|
|
|
The advantage of this option is that the application that manages
|
|
window will no longer receive redraw() callbacks. Those calls
|
|
normally occur when a window "above" moves exposing a portion of the
|
|
window below. If this option is selected, then the system will
|
|
redraw the exposed portion of the window from the backup framebuffer
|
|
without intervention of the window applications. This greatly
|
|
reduces the complexity of the application and performance of the
|
|
window at the expense of increased memory usage.
|
|
|
|
Redraw requests in other cases are also suppressed: Changes to window
|
|
position, size, etc.
|
|
|
|
config NX_BGCOLOR
|
|
hex "Initial background color"
|
|
default 0x0
|
|
---help---
|
|
NX will clear the background plane initially. This is the default
|
|
color that will be used when the background is cleared. Note: This
|
|
logic would have to be extended if you want to support multiple
|
|
color planes.
|
|
|
|
config NX_ANTIALIASING
|
|
bool "Anti-aliasing support"
|
|
default n
|
|
depends on (!NX_DISABLE_16BPP || !NX_DISABLE_24BPP || !NX_DISABLE_32BPP) && !NX_LCDDRIVER
|
|
---help---
|
|
Enable support for anti-aliasing when rendering lines as various
|
|
orientations.
|
|
|
|
config NX_WRITEONLY
|
|
bool "Write-only Graphics Device"
|
|
default y if NX_LCDDRIVER && LCD_NOGETRUN
|
|
default n if !NX_LCDDRIVER || !LCD_NOGETRUN
|
|
---help---
|
|
Define if the underlying graphics device does not support read operations.
|
|
Automatically defined if NX_LCDDRIVER and LCD_NOGETRUN are
|
|
defined.
|
|
|
|
config NX_UPDATE
|
|
bool "Display update hooks"
|
|
default n
|
|
---help---
|
|
Enable a callout to inform some external module that the display has
|
|
been updated. This would be useful in a couple for cases.
|
|
|
|
- When a serial LCD is used, but a framebuffer is used to access the
|
|
LCD. In this case, the update callout can be used to refresh the
|
|
affected region of the display.
|
|
|
|
- When VNC is enabled. This is case, this callout is necessary to
|
|
update the remote frame buffer to match the local framebuffer.
|
|
|
|
When this feature is enabled, some external logic must provide this
|
|
interface:
|
|
|
|
void nx_notify_rectangle(FAR NX_PLANEINFOTYPE *pinfo,
|
|
FAR const struct nxgl_rect_s *rect);
|
|
|
|
That is the function that will handle the notification. It
|
|
receives the rectangular region that was updated in the provided
|
|
plane.
|
|
|
|
menu "Supported Pixel Depths"
|
|
|
|
config NX_DISABLE_1BPP
|
|
bool "Disable 1 BPP"
|
|
default y
|
|
select NXFONTS_DISABLE_1BPP if NXFONTS
|
|
---help---
|
|
NX supports a variety of pixel depths. You can save some memory by disabling
|
|
support for unused color depths. The selection disables support for 1BPP
|
|
pixel depth.
|
|
|
|
config NX_DISABLE_2BPP
|
|
bool "Disable 2 BPP"
|
|
default y
|
|
select NXFONTS_DISABLE_2BPP
|
|
---help---
|
|
NX supports a variety of pixel depths. You can save some memory by disabling
|
|
support for unused color depths. The selection disables support for 2BPP
|
|
pixel depth.
|
|
|
|
config NX_DISABLE_4BPP
|
|
bool "Disable 4 BPP"
|
|
select NXFONTS_DISABLE_4BPP if NXFONTS
|
|
default y
|
|
---help---
|
|
NX supports a variety of pixel depths. You can save some memory by disabling
|
|
support for unused color depths. The selection disables support for 4BPP
|
|
pixel depth.
|
|
|
|
config NX_DISABLE_8BPP
|
|
bool "Disable 8 BPP"
|
|
default y
|
|
select NXFONTS_DISABLE_8BPP if NXFONTS
|
|
---help---
|
|
NX supports a variety of pixel depths. You can save some memory by disabling
|
|
support for unused color depths. The selection disables support for 8BPP
|
|
pixel depth.
|
|
|
|
config NX_DISABLE_16BPP
|
|
bool "Disable 16 BPP"
|
|
default y
|
|
select NXFONTS_DISABLE_16BPP if NXFONTS
|
|
---help---
|
|
NX supports a variety of pixel depths. You can save some memory by disabling
|
|
support for unused color depths. The selection disables support for 16BPP
|
|
pixel depth.
|
|
|
|
config NX_DISABLE_24BPP
|
|
bool "Disable 24 BPP"
|
|
default y
|
|
select NXFONTS_DISABLE_24BPP if NXFONTS
|
|
---help---
|
|
NX supports a variety of pixel depths. You can save some memory by disabling
|
|
support for unused color depths. The selection disables support for 24BPP
|
|
pixel depth.
|
|
|
|
config NX_DISABLE_32BPP
|
|
bool "Disable 32 BPP"
|
|
default y
|
|
select NXFONTS_DISABLE_32BPP if NXFONTS
|
|
---help---
|
|
NX supports a variety of pixel depths. You can save some memory by disabling
|
|
support for unused color depths. The selection disables support for 32BPP
|
|
pixel depth.
|
|
|
|
endmenu
|
|
|
|
config NX_PACKEDMSFIRST
|
|
bool "Packed MS First"
|
|
default y
|
|
select NXFONTS_PACKEDMSFIRST if NXFONTS
|
|
select LCD_PACKEDMSFIRST if LCD
|
|
---help---
|
|
If a pixel depth of less than 8-bits is used, then NX needs to know if the
|
|
pixels pack from the MS to LS or from LS to MS
|
|
|
|
menu "Input Devices"
|
|
|
|
config NX_XYINPUT
|
|
bool
|
|
default n
|
|
|
|
choice
|
|
prompt "Mouse/Touchscreen Support"
|
|
default NX_XYINPUT_NONE
|
|
|
|
config NX_XYINPUT_NONE
|
|
bool "No X/Y input device"
|
|
---help---
|
|
There is no X/Y positional input device connected
|
|
|
|
config NX_XYINPUT_MOUSE
|
|
bool "Mouse device support"
|
|
select NX_XYINPUT
|
|
---help---
|
|
X/Y positional input is provided by a mouse. The only difference
|
|
between the mouse and touchscreen selection is in the presence or
|
|
absence of the mouse buttons. This difference is not used within
|
|
NuttX itself, however, graphics applications may need this
|
|
information, for example, to handle the different ways that graphic
|
|
elements are selected and dragged.
|
|
|
|
config NX_XYINPUT_TOUCHSCREEN
|
|
bool "Touchscreen device support"
|
|
select NX_XYINPUT
|
|
---help---
|
|
X/Y positional input is provided by a touchscreen. The only difference
|
|
between the mouse and touchscreen selection is in the presence or
|
|
absence of the mouse buttons. This difference is not used within
|
|
NuttX itself, however, graphics applications may need this
|
|
information, for example, to handle the different ways that graphic
|
|
elements are selected and dragged.
|
|
|
|
endchoice # Mouse/Touchscreen Support
|
|
|
|
config NX_KBD
|
|
bool "Keyboard Support"
|
|
default n
|
|
---help---
|
|
Build in support of keypad/keyboard input.
|
|
|
|
endmenu
|
|
|
|
menu "Framed Window Borders"
|
|
|
|
config NXTK_BORDERWIDTH
|
|
int "Border Width"
|
|
default 4
|
|
---help---
|
|
Specifies with with of the border (in pixels) used with framed windows.
|
|
The default is 4.
|
|
|
|
config NXTK_DEFAULT_BORDERCOLORS
|
|
bool "Use Default Border Colors"
|
|
default y
|
|
---help---
|
|
If this option is defined, the default system border colors will be
|
|
used on framed windows. Otherwise, additional options will be
|
|
present so that you can define custom board colors.
|
|
|
|
if !NXTK_DEFAULT_BORDERCOLORS
|
|
|
|
config NXTK_BORDERCOLOR1
|
|
hex "Border Color"
|
|
default 0x0
|
|
---help---
|
|
Specify the colors of the border used with framed windows.
|
|
NXTL_BORDERCOLOR1 is the "normal" color of the border.
|
|
NXTK_BORDERCOLOR2 is the shadow side color and so is normally darker.
|
|
NXTK_BORDERCOLOR3 is the shiny side color and so is normally brighter.
|
|
|
|
config NXTK_BORDERCOLOR2
|
|
hex "Darker Border Color"
|
|
default 0x0
|
|
---help---
|
|
Specify the colors of the border used with framed windows.
|
|
NXTL_BORDERCOLOR1 is the "normal" color of the border.
|
|
NXTK_BORDERCOLOR2 is the shadow side color and so is normally darker.
|
|
NXTK_BORDERCOLOR3 is the shiny side color and so is normally brighter.
|
|
|
|
config NXTK_BORDERCOLOR3
|
|
hex "Brighter Border Color"
|
|
default 0x0
|
|
---help---
|
|
Specify the colors of the border used with framed windows.
|
|
NXTL_BORDERCOLOR1 is the "normal" color of the border.
|
|
NXTK_BORDERCOLOR2 is the shadow side color and so is normally darker.
|
|
NXTK_BORDERCOLOR3 is the shiny side color and so is normally brighter.
|
|
|
|
endif # !NXTK_DEFAULT_BORDERCOLORS
|
|
endmenu
|
|
|
|
config NXTK_AUTORAISE
|
|
bool "Autoraise"
|
|
default n
|
|
---help---
|
|
If set, a window will be raised to the top if the mouse position is over a
|
|
visible portion of the window. Default: A mouse button must be clicked over
|
|
a visible portion of the window.
|
|
|
|
menuconfig NXTERM
|
|
bool "NxTerm"
|
|
default n
|
|
---help---
|
|
Enables building of the NxTerm driver.
|
|
|
|
if NXTERM
|
|
|
|
comment "NxTerm Output Text/Graphics Options"
|
|
|
|
config NXTERM_BPP
|
|
int "NxTerm BPP"
|
|
default 1 if !NX_DISABLE_1BPP
|
|
default 2 if !NX_DISABLE_2BPP
|
|
default 4 if !NX_DISABLE_4BPP
|
|
default 8 if !NX_DISABLE_8BPP
|
|
default 16 if !NX_DISABLE_16BPP
|
|
default 24 if !NX_DISABLE_24BPP
|
|
default 32 if !NX_DISABLE_32BPP
|
|
---help---
|
|
Currently, NxTerm supports only a single pixel depth. This
|
|
configuration setting must be provided to support that single pixel depth.
|
|
Default: The smallest enabled pixel depth. (see NX_DISABLE_*BPP)
|
|
|
|
config NXTERM_CURSORCHAR
|
|
int "Character code to use as the cursor"
|
|
default 137
|
|
---help---
|
|
The bitmap code to use as the cursor. Default '_' (137)
|
|
|
|
config NXTERM_MXCHARS
|
|
int "Max Characters on Display"
|
|
default 128
|
|
---help---
|
|
NxTerm needs to remember every character written to the console so
|
|
that it can redraw the window. This setting determines the size of some
|
|
internal memory allocations used to hold the character data. Default: 128.
|
|
|
|
config NXTERM_CACHESIZE
|
|
int "Font Cache Size"
|
|
default 16
|
|
---help---
|
|
NxTerm supports caching of rendered fonts. This font caching is required
|
|
for two reasons: (1) First, it improves text performance, but more
|
|
importantly (2) it preserves the font memory. Since the NX server runs on
|
|
a separate server thread, it requires that the rendered font memory persist
|
|
until the server has a chance to render the font. Unfortunately, the font
|
|
cache would be quite large if all fonts were saved. The NXTERM_CACHESIZE
|
|
setting will control the size of the font cache (in number of glyphs). Only that
|
|
number of the most recently used glyphs will be retained. Default: 16.
|
|
NOTE: There can still be a race condition between the NxTerm driver and the
|
|
NX task. If you every see character corruption (especially when printing
|
|
a lot of data or scrolling), then increasing the value of NXTERM_CACHESIZE
|
|
is something that you should try. Alternatively, you can reduce the size of
|
|
MQ_MAXMSGSIZE which will force NxTerm task to pace the server task.
|
|
NXTERM_CACHESIZE should be larger than MQ_MAXMSGSIZE in any event.
|
|
|
|
config NXTERM_LINESEPARATION
|
|
int "Line Separation"
|
|
default 0
|
|
---help---
|
|
This the space (in rows) between each row of test. Default: 0
|
|
|
|
config NXTERM_NOWRAP
|
|
bool "No wrap"
|
|
default n
|
|
---help---
|
|
By default, lines will wrap when the test reaches the right hand side
|
|
of the window. This setting can be defining to change this behavior so
|
|
that the text is simply truncated until a new line is encountered.
|
|
|
|
comment "NxTerm Input options"
|
|
|
|
config NXTERM_NXKBDIN
|
|
bool "NX KBD input"
|
|
default n
|
|
---help---
|
|
Take input from the NX keyboard input callback. By default, keyboard
|
|
input is taken from stdin (/dev/console). If this option is set, then
|
|
the interface nxterm_kdbin() is enabled. That interface may be driven
|
|
by window callback functions so that keyboard input *only* goes to the
|
|
top window.
|
|
|
|
config NXTERM_KBDBUFSIZE
|
|
int "Keyboard Input Buffer Size"
|
|
default 16
|
|
---help---
|
|
If NXTERM_NXKBDIN is enabled, then this value may be used to
|
|
define the size of the per-window keyboard input buffer. Default: 16
|
|
|
|
config NXTERM_NPOLLWAITERS
|
|
int "Number of Poll Waiters"
|
|
default 4
|
|
---help---
|
|
The number of threads that can be waiting for read data available.
|
|
Default: 4
|
|
|
|
endif # NXTERM
|
|
|
|
comment "NX server options"
|
|
|
|
config NX_BLOCKING
|
|
bool "Blocking"
|
|
default n
|
|
---help---
|
|
Open the client message queues in blocking mode. In this case,
|
|
nx_eventhandler() will not return until a message is received and processed.
|
|
|
|
config NX_MXSERVERMSGS
|
|
int "Max Server Messages"
|
|
default 32
|
|
---help---
|
|
Specifies the maximum number of messages that can fit in the message queues.
|
|
No additional resources are allocated, but this can be set to prevent
|
|
flooding of the client or server with too many messages (PREALLOC_MQ_MSGS
|
|
controls how many messages are pre-allocated).
|
|
|
|
config NX_MXCLIENTMSGS
|
|
int "Max Client Messages"
|
|
default 16
|
|
---help---
|
|
Specifies the maximum number of messages that can fit in the message queues.
|
|
No additional resources are allocated, but this can be set to prevent
|
|
flooding of the client or server with too many messages (PREALLOC_MQ_MSGS
|
|
controls how many messages are pre-allocated).
|
|
|
|
config NXSTART_EXTERNINIT
|
|
bool "External Display Initialization"
|
|
default n
|
|
select LCD_EXTERNINIT if LCD && LCD_FRAMEBUFFER && NX_LCDDRIVER
|
|
---help---
|
|
Define to support external display initialization by platform-
|
|
specific code. This this option is defined, then nxmu_start()
|
|
will call board_graphics_setup(CONFIG_NXSTART_DEVNO) to initialize
|
|
the graphics device. This option is necessary if display is used
|
|
that cannot be initialized using the standard LCD or framebuffer
|
|
interfaces.
|
|
|
|
config NXSTART_SERVERPRIO
|
|
int "NX Server priority"
|
|
default 110
|
|
---help---
|
|
Priority of the NX server. Default: 110.
|
|
|
|
NOTE: NXSTART_SERVERPRIO should have a relatively high priority to
|
|
avoid data overrun race conditions.
|
|
|
|
config NXSTART_SERVERSTACK
|
|
int "NX Server Stack Size"
|
|
default 2048
|
|
---help---
|
|
NX server thread stack size (in multi-user mode). Default 2048
|
|
|
|
config NXSTART_DEVNO
|
|
int "LCD Device Number"
|
|
default 0
|
|
depends on NX_LCDDRIVER || NXSTART_EXTERNINIT
|
|
---help---
|
|
LCD device number (in case there are more than one LCDs connected).
|
|
Default: 0
|
|
source "graphics/vnc/Kconfig"
|
|
|
|
endif # NX
|