附录 H - GUIX 生成时配置标志

GUIX 支持多个条件编译选项和配置值。 通过在 gx_user.h 头文件或编译器命令行中预定义值,可以覆盖这些条件和配置值的默认设置。

GX_DISABLE_THREADX_BINDING

  • 默认值:未定义
  • 说明:此条件可用于禁用默认的 ThreadX RTO 绑定。 如果要使用除 ThreadX 以外的 RTOS 运行 GUIX,应对 GX_DISABLE_THREADX_BINDING 使用宏定义 (#define) 并提供自己的 RTOS 绑定服务。

GX_SYSTEM_TIMER_MS

  • 默认值:20
  • 说明:此值定义所需的 GUIX 计时器间隔或精度。

TX_TIMER_TICKS_PER_SECOND

  • 默认值:100
  • 说明:此值定义 TX 定时器中断频率的数目。 由于默认的 ThreadX 计时器间隔为 10 毫秒,因此频率值默认为 100 Hz。

GX_DISABLE_MULTITHREAD_SUPPORT

  • 默认值:未定义
  • 说明:此编译时条件可用于为同时调用 GUIX API 的多个线程禁用 GUIX API 支持。 如果只有一个应用程序线程会使用 GUIX API,则应定义此标志以减少与保护关键代码段相关的系统开销。

GX_DISABLE_UTF8_SUPPORT

  • 默认值:未定义。
  • 说明:此编译时条件可用于删除对 UTF8 格式字符串编码的 GUIX 内部支持。 如果在应用程序中仅使用字符值 M-0xff,则启用此 #define 将减少与支持 UTF8 格式字符串编码相关的代码大小和开销。

GX_DISABLE_ARC_DRAWING_SUPPORT

  • 默认值:未定义。
  • 说明:此条件可用于通过删除对圆弧绘制函数 circle、arc、pie 和 eliplipse 的支持,以减小 GUIX 库代码大小和 GX_DISPLAY 结构大小。 默认的 GUIX 小组件集不需要这些函数。

GX_DISABLE_SOFTWARE_DECODER_SUPPORT

  • 默认值:未定义。
  • 说明:可以定义此条件以删除 GUIX 库运行时 jpeg 和 png 软件解码器支持。 如果你的应用程序不需要对 jpg 或 png 文件进行运行时解码,这意味着应用程序不使用 Studio 生成的 RAW 格式像素图,也不从外部文件系统读取图像文件,则可以启用此 #define 来减轻 GUIX 库的内存占用量。

GX_DISABLE_BINARY_RESOURCE_SUPPORT

  • 默认值:未定义
  • 说明:此条件可用于删除用于加载二进制资源数据的 GUIX 库支持。 二进制资源可用于对 GUIX 应用程序执行资源数据的运行时绑定。 如果仅使用 C 源代码格式的资源文件,则可以定义此条件以减少 GUIX 库的内存占用量。

GX_DISABLE_BRUSH_ALPHA_SUPPORT

  • 默认值:未定义。
  • 说明:当以 16 bpp 和更高的颜色深度运行时,GUIX 可选择支持使用由绘图上下文画笔定义的 Alpha 值绘制非圆弧图形、像素图和字体。 支持此绘图模式会使运行时开销和库占用量小幅增加,如果你不需要 alpha 混合绘图支持,则可以通过定义此标志来消除这种情况。 请注意,不管此条件设置如何,仍支持使用 alpha 通道、抗锯齿字体和其他抗锯齿绘图模式的像素图。

GX_DISABLE_THREADX_TIMER_SOURCE

  • 默认值:未定义。
  • 说明:此条件可用于禁用 ThreadX 计时器源。 如果要使用不同的计时器源,应定义 GX_DISABLE_THREADX_TIMER_SOURCE。

GX_ENABLE_ARM_HELIUM

  • 默认值:未定义。
  • 说明:此条件可用于为 JPEG 解码启用 ARM Helium 指令,从而提高性能。

GX_ENABLE_CANVAS_PARTIAL_FRAME_BUFFER

  • 默认值:未定义。
  • 说明:此条件可用于启用画布的部分帧缓冲区支持。 定义此条件后,可以定义小于画布大小的画布缓冲区。 当系统内存有限时,这很有用。

GX_CANVAS_REFRESH_DIRECTION_HORIZONTAL

  • 默认值:未定义。
  • 说明:启用画布部分帧缓冲区功能时使用此条件。 此条件可用于启用画布的水平刷新方向,特别是从左到右。

GX_CANVAS_REFRESH_DIRECTION_VERTICAL

  • 默认值:未定义。
  • 说明:启用画布部分帧缓冲区功能时使用此条件。 此条件可用于启用画布的垂直刷新方向,特别是从上到下。

GX_REPEAT_BUTTON_INITIAL_TICS

  • 默认值:10。
  • 说明:如果按钮的样式为 GX_STYLE_BUTTON_REPEAT,则此值定义按钮在开始发送重复的 GX_EVENT_CLICKED 事件之前要等待的时间。

GX_MAX_QUEUE_EVENTS

  • 默认值:48。
  • 说明:以事件结构条目为单位定义 GUIX 事件队列的大小。 如果事件队列溢出,将丢弃推送到队列中的事件,并由 gx_system_event_send() 函数返回 GX_SYSTEM_ERROR。

GX_MAX_DIRTY_AREAS

  • 默认值:64。
  • 说明:定义可由一个画布维护的唯一脏列表项的最大数目。 当脏列表溢出时,GUIX 默认将画布根窗口标记为脏窗口,这比绘制单个子级小组件效率低。

GX_MAX_CONTEXT_NESTING

  • 默认值:8。
  • 说明:定义绘图上下文堆栈的最大嵌套。 这等效于 UI 定义中父级/子级/子级/子级小组件的最大嵌套。

GX_MAX_INPUT_CAPTURE_NESTING

  • 默认值:4。
  • 说明:定义用于维护已捕获用户输入(鼠标和键盘)的小组件列表的堆栈大小。

GX_SYSTEM_THREAD_PRIORITY

  • 默认:16.
  • 说明:定义在 gx_system_initialize() 期间创建的 GUIX 线程的优先级。

GX_SYSTEM_THREAD_TIMESLICE

  • 默认值:10。
  • 说明:根据 RTOS 计时器时钟周期来定义 GUIX 线程时间片。 如果以与 GUIX 线程相同的优先级定义了其他线程,则此值确定向争用线程授予 CPU 控制的频率。

GX_CURSOR_BLINK_INTERVAL

  • 默认值:20。
  • 说明:定义文本输入小组件的输入游标闪烁的速率。 该值以 GUIX 计时器时钟周期为单位,默认情况下定义为 50 毫秒,因此值 20 表示输入游标每秒闪烁一次。

GX_MULTI_LINE_INDEX_CACHE_SIZE

  • 默认值:32。
  • 说明:定义由多行文本视图和多行文本输入小组件维护的列表开始索引缓存的大小。 此缓存用于完成多行文本小组件的快速垂直滚动。 为了获得最佳性能,应将缓存大小设置为大于应用程序定义的最大多行文本小组件的可见行数。 例如,如果任何文本小组件可见性最高的行是 20 行,则应用程序可能将缓存大小定义为 32(默认值),这使 GUIX 可以垂直滚动而无需重新计算所有行起始索引。

GX_MULTI_LINE_TEXT_BUTTON_MAX_LINES

  • 默认值:4。
  • 说明:多行文本按钮控件块维护一个指针,该指针指向按钮要显示的每一行文本。 此值确定最差情形下多行文本按钮所需的文本指针数。

GX_POLYGON_MAX_EDGE_NUM

  • 默认值:10。
  • 说明:此值确定 GUIX 可绘制的最复杂的多边形。 多边形绘制算法确定定义多边形边所需的行,此定义定义可以支持的最大边数。

GX_NUMERIC_SCROLL_WHEEL_STRING_BUFFER_SIZE

  • 默认:16.
  • 说明:对于数字滚轮,滚轮小组件将整数值转换为 ascii 字符串。 此值确定显示分配的整数值所需的字符串的最大长度。

GX_DEFAULT_CIRCULAR_GAUGE_ANIMATION_DELAY

  • 默认值:5。
  • 说明:定义配置为对最后和当前角位置之间的针运动进行动画处理的圆形仪表更新之间的 GUIX 计时器时钟周期数(50 毫秒)。

GX_NUMERIC_PROMPT_BUFFER_SIZE

  • 默认:16.
  • 说明:数字提示分配一个缓冲区,以将分配给该提示的整数值转换为 ascii 字符串。 此定义定义该字符缓冲区的大小。

GX_ANIMATION_POOL_SIZE

  • 默认值:6。
  • 说明:GUIX 定义了一个动画池,可以使用 gx_system_animation_get 和 gx_system_animation_free() API 从中动态分配和返回动画信息结构。 此定义定义动画控制块池的大小。

GX_MOUSE_SUPPORT

  • 默认值:未定义。
  • 说明:此定义启用对鼠标输入的支持。 软件鼠标要求显示驱动程序绘制并跟踪鼠标光标,这给显示驱动程序增加了额外的开销。 仅当必须支持鼠标(而非触摸屏)时才应定义此定义。

GX_HARDWARE_MOUSE_SUPPORT

  • 默认值:未定义。
  • 说明:定义此定义后,GUIX 显示驱动程序将利用硬件鼠标光标绘图支持。 这减少了捕获鼠标光标下的画布内存所需的内存,并提高了那些支持鼠标覆盖图形层的硬件目标的系统性能。

GX_FONT_KERNING_SUPPORT

  • 默认值:未定义。
  • 说明:可以通过定义此定义启用字距调整支持。 字距调整可改善某些字形组合的字形间距。 这种支持使运行时字符串绘图函数的开销小幅提升,也使字体数据结构大小轻度增加。

GX_WIDGET_USER_DATA

  • 默认值:未定义。
  • 说明:如果定义了此项,则会将用户定义的数据字段添加到 GX_WIDGET 控制块。 可以使用 GUIX Studio 中的属性视图来分配此数据字段。 GUIX 在内部忽略此数据字段,但应用程序软件可将其用于许多目的。

GUIX_5_4_0_COMPATIBILITY

  • 默认值:未定义。
  • 说明:在 5.4.0 版之后,对某些 GUI API 进行了修改,以增加对禁用文本颜色的支持,并通过使用定点匹配参数来提高某些数学函数的准确性。 这些更改使得 5.4.0 之后的 GUIX 库版本与以前的版本不兼容。 但是,通过启用此 #define,可以构建库,使 API 与 <= 5.4.0 版完全兼容,这意味着使用最新的 GUI 库版本编译时,不需要对现有应用程序进行任何更改。

GX_MAX_STRING_LENGTH

  • 默认值:102400
  • 说明:定义用于测试无效字符串的字符串的最大长度。 如果输入字符串超出了最大字符串长度,则将其视为无效。