| <!-- |
| Documentation/_templates/layout.html |
| |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. The |
| ASF licenses this file to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance with the |
| License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| License for the specific language governing permissions and limitations |
| under the License. |
| --> |
| |
| |
| |
| <!DOCTYPE html> |
| <html class="writer-html5" lang="en" > |
| <head> |
| <meta charset="utf-8"> |
| |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| |
| <title>Appendix — NuttX latest documentation</title> |
| |
| |
| |
| <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> |
| <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> |
| <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" /> |
| <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" /> |
| <link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" /> |
| <link rel="stylesheet" href="../../_static/sphinx_tabs/tabs.css" type="text/css" /> |
| <link rel="stylesheet" href="../../_static/custom.css" type="text/css" /> |
| |
| |
| |
| <link rel="shortcut icon" href="../../_static/favicon.ico"/> |
| |
| |
| |
| |
| |
| <!--[if lt IE 9]> |
| <script src="../../_static/js/html5shiv.min.js"></script> |
| <![endif]--> |
| |
| |
| <script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script> |
| <script src="../../_static/jquery.js"></script> |
| <script src="../../_static/underscore.js"></script> |
| <script src="../../_static/doctools.js"></script> |
| <script src="../../_static/language_data.js"></script> |
| |
| <script type="text/javascript" src="../../_static/js/theme.js"></script> |
| |
| |
| <link rel="index" title="Index" href="../../genindex.html" /> |
| <link rel="search" title="Search" href="../../search.html" /> |
| <link rel="next" title="NxWidgets" href="../nxwidgets.html" /> |
| <link rel="prev" title="Sample Code" href="sample.html" /> |
| </head> |
| |
| <body class="wy-body-for-nav"> |
| |
| |
| <div class="wy-grid-for-nav"> |
| |
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> |
| <div class="wy-side-scroll"> |
| <div class="wy-side-nav-search" > |
| |
| |
| <a href="../../index.html" class="icon icon-home"> NuttX |
| |
| |
| |
| |
| <img src="../../_static/NuttX.png" class="logo" alt="Logo"/> |
| |
| </a> |
| |
| <!-- this version selector is quite ugly, should be probably replaced by something |
| more modern --> |
| |
| <div class="version-selector"> |
| <select onchange="javascript:location.href = this.value;"> |
| |
| <option value="../../../latest" selected="selected">latest</option> |
| |
| <option value="../../../10.0.0" >10.0.0</option> |
| |
| <option value="../../../10.0.1" >10.0.1</option> |
| |
| <option value="../../../10.1.0" >10.1.0</option> |
| |
| <option value="../../../10.2.0" >10.2.0</option> |
| |
| <option value="../../../10.3.0" >10.3.0</option> |
| |
| <option value="../../../11.0.0" >11.0.0</option> |
| |
| <option value="../../../12.0.0" >12.0.0</option> |
| |
| <option value="../../../12.1.0" >12.1.0</option> |
| |
| <option value="../../../12.2.0" >12.2.0</option> |
| |
| <option value="../../../12.2.1" >12.2.1</option> |
| |
| <option value="../../../12.3.0" >12.3.0</option> |
| |
| <option value="../../../12.4.0" >12.4.0</option> |
| |
| <option value="../../../12.5.0" >12.5.0</option> |
| |
| <option value="../../../12.5.1" >12.5.1</option> |
| |
| <option value="../../../12.6.0" >12.6.0</option> |
| |
| <option value="../../../12.7.0" >12.7.0</option> |
| |
| <option value="../../../12.8.0" >12.8.0</option> |
| |
| <option value="../../../12.9.0" >12.9.0</option> |
| |
| <option value="../../../12.10.0" >12.10.0</option> |
| |
| <option value="../../../12.11.0" >12.11.0</option> |
| |
| </select> |
| </div> |
| |
| |
| <div role="search"> |
| <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> |
| <input type="text" name="q" placeholder="Search docs" /> |
| <input type="hidden" name="check_keywords" value="yes" /> |
| <input type="hidden" name="area" value="default" /> |
| </form> |
| </div> |
| |
| </div> |
| |
| |
| <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> |
| |
| |
| |
| |
| |
| |
| <p class="caption"><span class="caption-text">Table of Contents</span></p> |
| <ul class="current"> |
| <li class="toctree-l1"><a class="reference internal" href="../../index.html">Home</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../../introduction/index.html">Introduction</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../../introduction/inviolables.html">The Inviolable Principles of NuttX</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../../quickstart/index.html">Getting Started</a></li> |
| <li class="toctree-l1 current"><a class="reference internal" href="../index.html">OS Components</a><ul class="current"> |
| <li class="toctree-l2"><a class="reference internal" href="../nsh/index.html">NuttShell (NSH)</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../power.html">Power Management</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../socketcan.html">SocketCAN Device Drivers</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../syslog.html">SYSLOG</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../binfmt.html">Binary Loader</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../drivers/index.html">Device Drivers</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../filesystem.html">NuttX File System</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../nxflat.html">NXFLAT</a></li> |
| <li class="toctree-l2 current"><a class="reference internal" href="index.html">NX Graphics Subsystem</a><ul class="current"> |
| <li class="toctree-l3"><a class="reference internal" href="index.html#objectives">Objectives</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="index.html#organization">Organization</a></li> |
| <li class="toctree-l3 current"><a class="reference internal" href="index.html#nx-header-files">NX Header Files</a><ul class="current"> |
| <li class="toctree-l4"><a class="reference internal" href="nxgl.html">NX Graphics Library (<code class="docutils literal notranslate"><span class="pre">NXGL</span></code>)</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="nx.html">NX</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="nxtk.html">NX Tool Kit (<code class="docutils literal notranslate"><span class="pre">NXTK</span></code>)</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="nxfonts.html">NX Fonts Support (<code class="docutils literal notranslate"><span class="pre">NXFONTS</span></code>)</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="nxcursor.html">NX Cursor Support (<code class="docutils literal notranslate"><span class="pre">NXCURSOR</span></code>)</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="sample.html">Sample Code</a></li> |
| <li class="toctree-l4 current"><a class="current reference internal" href="#">Appendix</a></li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| <li class="toctree-l2"><a class="reference internal" href="../nxwidgets.html">NxWidgets</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../paging.html">On-Demand Paging</a></li> |
| </ul> |
| </li> |
| <li class="toctree-l1"><a class="reference internal" href="../../applications/index.html">Applications</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../../boards/index.html">Supported Boards</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../../reference/index.html">API Reference</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../../guides/index.html">Guides</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../../releases/index.html">Releases</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../../contributing/index.html">Contributing</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../../glossary.html">Glossary</a></li> |
| </ul> |
| |
| |
| |
| </div> |
| |
| </div> |
| </nav> |
| |
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> |
| |
| |
| <nav class="wy-nav-top" aria-label="top navigation"> |
| |
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> |
| <a href="../../index.html">NuttX</a> |
| |
| </nav> |
| |
| |
| <div class="wy-nav-content"> |
| |
| <div class="rst-content"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <div role="navigation" aria-label="breadcrumbs navigation"> |
| |
| <ul class="wy-breadcrumbs"> |
| |
| <li><a href="../../index.html" class="icon icon-home"></a> »</li> |
| |
| <li><a href="../index.html">OS Components</a> »</li> |
| |
| <li><a href="index.html">NX Graphics Subsystem</a> »</li> |
| |
| <li>Appendix</li> |
| |
| |
| <li class="wy-breadcrumbs-aside"> |
| |
| |
| <a href="../../_sources/components/nxgraphics/appendix.rst.txt" rel="nofollow"> View page source</a> |
| |
| |
| </li> |
| |
| </ul> |
| |
| |
| <hr/> |
| </div> |
| <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> |
| <div itemprop="articleBody"> |
| |
| <div class="section" id="appendix"> |
| <h1>Appendix<a class="headerlink" href="#appendix" title="Permalink to this headline">ΒΆ</a></h1> |
| <div class="section" id="graphics-directory-structure"> |
| <h2><code class="docutils literal notranslate"><span class="pre">graphics/</span></code> Directory Structure<a class="headerlink" href="#graphics-directory-structure" title="Permalink to this headline">ΒΆ</a></h2> |
| <p>The graphics capability consist both of components internal to the RTOS |
| and of user-callable interfaces. In the NuttX kernel mode build there |
| are some components of the graphics subsystem are callable in user mode |
| and other components that are internal to the RTOS. The directory |
| <code class="docutils literal notranslate"><span class="pre">nuttx/graphics</span></code> contains only those components that are internal to |
| the RTOS. User callable functions must be part of a library that can be |
| linked against user applications. This user callable interfaces are |
| provided in sub-directories under <code class="docutils literal notranslate"><span class="pre">nuttx/libnx</span></code>.</p> |
| <dl class="simple"> |
| <dt><code class="docutils literal notranslate"><span class="pre">libnx/nx</span></code></dt><dd><p>Common callable interfaces that are, logically, part of both nxmu and |
| nxsu.</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">graphics/nxglib</span></code> and <code class="docutils literal notranslate"><span class="pre">libnx/nxglib</span></code></dt><dd><p>The NuttX tiny graphics library. The directory contains generic |
| utilities support operations on primitive graphics objects and logic |
| to rasterize directly into a framebuffer or through an LCD driver |
| interface. It has no concept of windows (other than the one, |
| framebuffer or LCD window).</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">graphics/nxbe</span></code></dt><dd><p>This is the <em>back-end</em> of a tiny windowing system. It can be used |
| with either of two front-ends to complete a windowing system (see |
| <code class="docutils literal notranslate"><span class="pre">nxmu</span></code> and <code class="docutils literal notranslate"><span class="pre">nxsu</span></code> below). It contains most of the important |
| window management logic: clipping, window controls, window drawing, |
| etc.</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">graphics/nxmu</span></code> and <code class="docutils literal notranslate"><span class="pre">libnx/nxmu</span></code></dt><dd><p>This is the NX multi user <em>front end</em>. When combined with the generic |
| <em>back-end</em> (<code class="docutils literal notranslate"><span class="pre">nxbe</span></code>), it implements a multi-threaded, multi-user |
| windowing system. The files in this directory present the window APIs |
| described in <code class="docutils literal notranslate"><span class="pre">include/nuttx/nx/nx.h</span></code>. The multi-user front end |
| includes a graphics server that executes on its own thread; multiple |
| graphics clients then communicate with the server via a POSIX message |
| queue to serialize window operations from many threads.</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">libnx/nxfonts</span></code></dt><dd><p>This is where the NXFONTS implementation resides. This is a |
| relatively low-level set of charset set/glyph management APIs. See |
| <code class="docutils literal notranslate"><span class="pre">include/nuttx/nx/nxfonts.h</span></code>.</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">libnx/nxtk</span></code></dt><dd><p>This is where the NXTOOLKIT implementation resides. This toolkit is |
| built on top of NX and works with the multi-user NX front-end. See |
| <code class="docutils literal notranslate"><span class="pre">include/nuttx/nx/nxtk.h</span></code>.</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">apps/graphics/NxWidgets</span></code></dt><dd><p>The <a class="reference external" href="NxWidgets.html">NxWidgets</a> code is provided as a separate |
| package provided in the <code class="docutils literal notranslate"><span class="pre">apps/</span></code> repository.</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">graphics/nxterm</span></code></dt><dd><p>The NxTerm driver is built on top of NX and works with the multi-user |
| NX front-end. See <code class="docutils literal notranslate"><span class="pre">include/nuttx/nx/nxterm.h</span></code>.</p> |
| </dd> |
| </dl> |
| </div> |
| <div class="section" id="nx-configuration-options"> |
| <h2>NX Configuration Options<a class="headerlink" href="#nx-configuration-options" title="Permalink to this headline">ΒΆ</a></h2> |
| <div class="section" id="general-configuration-settings"> |
| <h3>General Configuration Settings<a class="headerlink" href="#general-configuration-settings" title="Permalink to this headline">ΒΆ</a></h3> |
| <dl> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NX</span></code></dt><dd><p>Enables overall support for graphics library and NX</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NX_RAMBACKED</span></code></dt><dd><p>Enables RAM backed window support. If this option is selected, then |
| windows may be optionally created with a RAM framebuffer 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.</p> |
| <p>The advantage of this option is that the application that manages |
| window will no longer receive redraw() callbacks. Those calls |
| normally occur, for example, 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.</p> |
| <p>An exception is the case when the window is resized to a wider and/or |
| taller size. In that case, the redraw callback will till occur. It is |
| necessary in that case to provide new graphic content for the |
| extended window area.</p> |
| <p>Redraw requests in other cases are also suppressed: Changes to window |
| position, size, etc.</p> |
| </dd> |
| </dl> |
| </div> |
| <div class="section" id="nxgl-configuration-settings"> |
| <h3>NXGL Configuration Settings<a class="headerlink" href="#nxgl-configuration-settings" title="Permalink to this headline">ΒΆ</a></h3> |
| <dl class="simple"> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NX_NPLANES</span></code>:</dt><dd><p>Some YUV color formats requires support for multiple planes, one for |
| each color component. Unless you have such special hardware, this |
| value should be undefined or set to 1.</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NX_DISABLE_1BPP</span></code>, <code class="docutils literal notranslate"><span class="pre">CONFIG_NX_DISABLE_2BPP</span></code>, <code class="docutils literal notranslate"><span class="pre">CONFIG_NX_DISABLE_4BPP</span></code>, <code class="docutils literal notranslate"><span class="pre">CONFIG_NX_DISABLE_8BPP</span></code> <code class="docutils literal notranslate"><span class="pre">CONFIG_NX_DISABLE_16BPP</span></code>, <code class="docutils literal notranslate"><span class="pre">CONFIG_NX_DISABLE_24BPP</span></code>, and <code class="docutils literal notranslate"><span class="pre">CONFIG_NX_DISABLE_32BPP</span></code>:</dt><dd><p>NX supports a variety of pixel depths. You can save some memory by |
| disabling support for unused color depths.</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NX_PACKEDMSFIRST</span></code>:</dt><dd><p>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</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NX_LCDDRIVER</span></code>:</dt><dd><p>By default, NX builds to use a framebuffer driver (see |
| <code class="docutils literal notranslate"><span class="pre">include/nuttx/video/fb.h</span></code>). If this option is defined, NX will |
| build to use an LCD driver (see <code class="docutils literal notranslate"><span class="pre">include/nuttx/lcd/lcd.h</span></code>).</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NX_ANTIALIASING</span></code>:</dt><dd><p>Enable support for anti-aliasing when rendering lines as various |
| orientations. This option is only available for use with frame buffer |
| drivers and only with 16-, 24-, or 32-bit RGB color formats.</p> |
| </dd> |
| </dl> |
| </div> |
| <div class="section" id="configuration-settings"> |
| <h3>Configuration Settings<a class="headerlink" href="#configuration-settings" title="Permalink to this headline">ΒΆ</a></h3> |
| <dl class="simple"> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NX_XYINPUT</span></code>:</dt><dd><p>Build in support for an X/Y input such as a mouse or a touscreen.</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NX_KBD</span></code>:</dt><dd><p>Build in support of keypad/keyboard input.</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NX_WRITEONLY</span></code>:</dt><dd><p>Define if the underlying graphics device does not support read |
| operations. Automatically defined if <code class="docutils literal notranslate"><span class="pre">CONFIG_NX_LCDDRIVER</span></code> and |
| <code class="docutils literal notranslate"><span class="pre">CONFIG_LCD_NOGETRUN</span></code> are defined.</p> |
| </dd> |
| </dl> |
| </div> |
| <div class="section" id="nx-server-configuration-settings"> |
| <h3>NX Server Configuration Settings<a class="headerlink" href="#nx-server-configuration-settings" title="Permalink to this headline">ΒΆ</a></h3> |
| <dl class="simple"> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NX_BLOCKING</span></code></dt><dd><p>Open the client message queues in blocking mode. In this case, |
| <code class="docutils literal notranslate"><span class="pre">nx_eventhandler()</span></code> will not return until a message is received and |
| processed.</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NX_MXSERVERMSGS</span></code> and <code class="docutils literal notranslate"><span class="pre">CONFIG_NX_MXCLIENTMSGS</span></code></dt><dd><p>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 |
| (<code class="docutils literal notranslate"><span class="pre">CONFIG_PREALLOC_MQ_MSGS</span></code> controls how many messages are |
| pre-allocated).</p> |
| </dd> |
| </dl> |
| </div> |
| <div class="section" id="nxtk-configuration-settings"> |
| <h3>NXTK Configuration Settings<a class="headerlink" href="#nxtk-configuration-settings" title="Permalink to this headline">ΒΆ</a></h3> |
| <dl class="simple"> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXTK_BORDERWIDTH</span></code>:</dt><dd><p>Specifies the width of the border (in pixels) used with framed |
| windows. The default is 4.</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXTK_BORDERCOLOR1</span></code>, <code class="docutils literal notranslate"><span class="pre">CONFIG_NXTK_BORDERCOLOR2</span></code>, and <code class="docutils literal notranslate"><span class="pre">CONFIG_NXTK_BORDERCOLOR3</span></code>:</dt><dd><p>Specify the colors of the border used with framed windows.</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXTK_BORDERCOLOR2</span></code></dt><dd><p>The shadow side color and so is normally darker.</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXTK_BORDERCOLOR3</span></code></dt><dd><p>The shiny side color and so is normally brighter. The default is |
| medium, dark, and light grey, respectively</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXTK_AUTORAISE</span></code>:</dt><dd><p>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.</p> |
| </dd> |
| </dl> |
| </div> |
| <div class="section" id="nxfonts-configuration-settings"> |
| <h3>NXFONTS Configuration Settings<a class="headerlink" href="#nxfonts-configuration-settings" title="Permalink to this headline">ΒΆ</a></h3> |
| <dl class="simple"> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXFONTS_CHARBITS</span></code>:</dt><dd><p>The number of bits in the character set. Current options are only 7 |
| and 8. The default is 7.</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXFONT_SANS17X22</span></code>:</dt><dd><p>This option enables support for a tiny, 17x22 san serif font (font |
| <code class="docutils literal notranslate"><span class="pre">ID</span> <span class="pre">FONTID_SANS17X22</span></code> == 14).</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXFONT_SANS20X26</span></code>:</dt><dd><p>This option enables support for a tiny, 20x26 san serif font (font |
| <code class="docutils literal notranslate"><span class="pre">ID</span> <span class="pre">FONTID_SANS20X26</span></code> == 15).</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXFONT_SANS23X27</span></code>:</dt><dd><p>This option enables support for a tiny, 23x27 san serif font (font |
| <code class="docutils literal notranslate"><span class="pre">ID</span> <span class="pre">FONTID_SANS23X27</span></code> == 1).</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXFONT_SANS22X29</span></code>:</dt><dd><p>This option enables support for a small, 22x29 san serif font (font |
| <code class="docutils literal notranslate"><span class="pre">ID</span> <span class="pre">FONTID_SANS22X29</span></code> == 2).</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXFONT_SANS28X37</span></code>:</dt><dd><p>This option enables support for a medium, 28x37 san serif font (font |
| <code class="docutils literal notranslate"><span class="pre">ID</span> <span class="pre">FONTID_SANS28X37</span></code> == 3).</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXFONT_SANS39X48</span></code>:</dt><dd><p>This option enables support for a large, 39x48 san serif font (font |
| <code class="docutils literal notranslate"><span class="pre">ID</span> <span class="pre">FONTID_SANS39X48</span></code> == 4).</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXFONT_SANS17X23B</span></code>:</dt><dd><p>This option enables support for a tiny, 17x23 san serif bold font |
| (font <code class="docutils literal notranslate"><span class="pre">ID</span> <span class="pre">FONTID_SANS17X23B</span></code> == 16).</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXFONT_SANS20X27B</span></code>:</dt><dd><p>This option enables support for a tiny, 20x27 san serif bold font |
| (font <code class="docutils literal notranslate"><span class="pre">ID</span> <span class="pre">FONTID_SANS20X27B</span></code> == 17).</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXFONT_SANS22X29B</span></code>:</dt><dd><p>This option enables support for a small, 22x29 san serif bold font |
| (font ID <code class="docutils literal notranslate"><span class="pre">FONTID_SANS22X29B</span></code> == 5).</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXFONT_SANS28X37B</span></code>:</dt><dd><p>This option enables support for a medium, 28x37 san serif bold font |
| (font ID <code class="docutils literal notranslate"><span class="pre">FONTID_SANS28X37B</span></code> == 6).</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXFONT_SANS40X49B</span></code>:</dt><dd><p>This option enables support for a large, 40x49 san serif bold font |
| (font ID <code class="docutils literal notranslate"><span class="pre">FONTID_SANS40X49B</span></code> == 7).</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXFONT_SERIF22X29</span></code>:</dt><dd><p>This option enables support for a small, 22x29 font (with serifs) |
| (font ID <code class="docutils literal notranslate"><span class="pre">FONTID_SERIF22X29</span></code> == 8).</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXFONT_SERIF29X37</span></code>:</dt><dd><p>This option enables support for a medium, 29x37 font (with serifs) |
| (font ID <code class="docutils literal notranslate"><span class="pre">FONTID_SERIF29X37</span></code> == 9).</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXFONT_SERIF38X48</span></code>:</dt><dd><p>This option enables support for a large, 38x48 font (with serifs) |
| (font ID <code class="docutils literal notranslate"><span class="pre">FONTID_SERIF38X48</span></code> == 10).</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXFONT_SERIF22X28B</span></code>:</dt><dd><p>This option enables support for a small, 27x38 bold font (with |
| serifs) (font ID <code class="docutils literal notranslate"><span class="pre">FONTID_SERIF22X28B</span></code> == 11).</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXFONT_SERIF27X38B</span></code>:</dt><dd><p>This option enables support for a medium, 27x38 bold font (with |
| serifs) (font ID <code class="docutils literal notranslate"><span class="pre">FONTID_SERIF27X38B</span></code> == 12).</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXFONT_SERIF38X49B</span></code>:</dt><dd><p>This option enables support for a large, 38x49 bold font (with |
| serifs) (font ID <code class="docutils literal notranslate"><span class="pre">FONTID_SERIF38X49B</span></code> == 13).</p> |
| </dd> |
| </dl> |
| </div> |
| <div class="section" id="nxterm-configuration-settings"> |
| <h3>NxTerm Configuration Settings<a class="headerlink" href="#nxterm-configuration-settings" title="Permalink to this headline">ΒΆ</a></h3> |
| <p>General NxTerm settings.</p> |
| <dl class="simple"> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXTERM</span></code>:</dt><dd><p>Enables building of the NxTerm driver.</p> |
| </dd> |
| </dl> |
| <p>NxTerm output text/graphics options:</p> |
| <dl> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXTERM_BPP</span></code>:</dt><dd><p>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 |
| <code class="docutils literal notranslate"><span class="pre">CONFIG_NX_DISABLE_*BPP</span></code>)</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXTERM_CURSORCHAR</span></code>:</dt><dd><p>The bitmap code to use as the cursor. Default β_β</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXTERM_MXCHARS</span></code>:</dt><dd><p>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.</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXTERM_CACHESIZE</span></code>:</dt><dd><p>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 <code class="docutils literal notranslate"><span class="pre">CONFIG_NXTERM_CACHESIZE</span></code> 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.</p> |
| <blockquote> |
| <div><p>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 <code class="docutils literal notranslate"><span class="pre">CONFIG_NXTERM_CACHESIZE</span></code> is something |
| that you should try. Alternatively, you can reduce the size of |
| <code class="docutils literal notranslate"><span class="pre">CONFIG_MQ_MAXMSGSIZE</span></code> which will force NxTerm task to pace the |
| server task. <code class="docutils literal notranslate"><span class="pre">CONFIG_NXTERM_CACHESIZE</span></code> should be larger than |
| <code class="docutils literal notranslate"><span class="pre">CONFIG_MQ_MAXMSGSIZE</span></code> in any event.</p> |
| </div></blockquote> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXTERM_LINESEPARATION</span></code>:</dt><dd><p>This the space (in rows) between each row of test. Default: 0</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXTERM_NOWRAP</span></code>:</dt><dd><p>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.</p> |
| </dd> |
| </dl> |
| <p>NxTerm input options:</p> |
| <dl class="simple"> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXTERM_NXKBDIN</span></code>:</dt><dd><p>Take input from the NX keyboard input callback. By default, keyboard |
| input is taken from stdin (<code class="docutils literal notranslate"><span class="pre">/dev/console</span></code>). If this option is set, |
| then the interface<code class="docutils literal notranslate"><span class="pre">nxterm_kdbin()</span></code> is enabled. That interface may |
| be driven by window callback functions so that keyboard input <em>only</em> |
| goes to the top window.</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXTERM_KBDBUFSIZE</span></code>:</dt><dd><p>If <code class="docutils literal notranslate"><span class="pre">CONFIG_NXTERM_NXKBDIN</span></code> is enabled, then this value may be used |
| to define the size of the per-window keyboard input buffer. Default: |
| 16</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NXTERM_NPOLLWAITERS</span></code>:</dt><dd><p>The number of threads that can be waiting for read data available. |
| Default: 4</p> |
| </dd> |
| </dl> |
| </div> |
| </div> |
| <div class="section" id="installing-new-fonts"> |
| <h2>Installing New Fonts<a class="headerlink" href="#installing-new-fonts" title="Permalink to this headline">ΒΆ</a></h2> |
| <p><strong>The BDF Font Converter</strong>. There is a tool called <em>bdf-converter</em> in |
| the directory <code class="docutils literal notranslate"><span class="pre">tools/.</span></code>. The <em>bdf-converter</em> program be used to |
| convert fonts in Bitmap Distribution Format (BDF) into fonts that can be |
| used in the NX graphics system. The BDF format most well known as a font |
| format traditionally used for X-11 bitmap fonts.</p> |
| <blockquote> |
| <div><p>A Note about Font Copyrights: My understanding is that the underlying |
| bitmap font data for traditional fonts cannot be copyrighted (the |
| same is not true for scalable fonts). This is because a copyright |
| covers only the form of delivery of the font and not the underlying |
| font content and, at least for the traditional typefaces, the |
| underlying font designs are ancient. There could be issues, however, |
| if you convert from modern, trademarked images. However, remember |
| that I am a programmer not an attorney and that my knowledge of font |
| copyright issues is limited to what I glean by Googling.</p> |
| </div></blockquote> |
| <p><strong>Font Installation Steps</strong>, Below are general instructions for creating |
| and installing a new font in the NX graphic system. The first two steps |
| only apply if you are using the BDF font converter program.</p> |
| <ol class="arabic simple"> |
| <li><p>Locate a font in BDF format. There are many good BDF bitmap fonts |
| bundled with X-11. See <a class="reference external" href="http://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html">this |
| link</a>, as an |
| example,</p></li> |
| <li><p>Use the <em>bdf-converter</em> program to convert the BDF font to the NuttX |
| font format. This will result in a C header file containing |
| definitions. That header file should be installed at, for example, |
| <code class="docutils literal notranslate"><span class="pre">graphics/nxfonts/nxfonts_myfont.h</span></code>.</p></li> |
| </ol> |
| <p>The remaining steps apply however you managed to create the NuttX C font |
| header file. After you have your C font header file, the next thing to |
| do is to create a new NuttX configuration variable to select the font. |
| For example, suppose you define the following variable: |
| <code class="docutils literal notranslate"><span class="pre">CONFIG_NXFONT_MYFONT</span></code>. Then you would need to:</p> |
| <ol class="arabic simple" start="3"> |
| <li><p>Define <code class="docutils literal notranslate"><span class="pre">CONFIG_NXFONT_MYFONT=y</span></code> in your NuttX configuration file.</p></li> |
| </ol> |
| <p>A font ID number has to be assigned for each new font. The font IDs are |
| defined in the file <code class="docutils literal notranslate"><span class="pre">include/nuttx/nx/nxfonts.h</span></code>. Those definitions |
| have to be extended to support your new font. Look at how the font ID |
| enabled by <code class="docutils literal notranslate"><span class="pre">CONFIG_NXFONT_SANS23X27</span></code> is defined and add an ID for |
| yournew font in a similar fashion:</p> |
| <ol class="arabic" start="4"> |
| <li><p><code class="docutils literal notranslate"><span class="pre">include/nuttx/nx/nxfonts.h</span></code>. Add you new font as a possible |
| system default font:</p> |
| <div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cp">#if defined(CONFIG_NXFONT_SANS23X27)</span> |
| <span class="cp"># define NXFONT_DEFAULT FONTID_SANS23X27</span> |
| <span class="cp">#elif defined(CONFIG_NXFONT_MYFONT)</span> |
| <span class="cp"># define NXFONT_DEFAULT FONTID_MYFONT</span> |
| <span class="cp">#endif</span> |
| </pre></div> |
| </div> |
| <p>Then define the actual font ID. Make sure that the font ID value is |
| unique:</p> |
| <div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cp">#if defined(CONFIG_NXFONT_SANS23X27)</span> |
| <span class="cp"># define NXFONT_DEFAULT FONTID_SANS23X27</span> |
| <span class="cp">#elif defined(CONFIG_NXFONT_MYFONT)</span> |
| <span class="cp"># define NXFONT_DEFAULT FONTID_MYFONT</span> |
| <span class="cp">#endif</span> |
| </pre></div> |
| </div> |
| </li> |
| </ol> |
| <p>New Add the font to the NX build system. There are several files that |
| you have to modify to do this. Look how the build system uses the font |
| CONFIG_NXFONT_SANS23X27 for examaples:</p> |
| <ol class="arabic" start="5"> |
| <li><p><code class="docutils literal notranslate"><span class="pre">nuttx/graphics/Makefile</span></code>. This file needs logic to |
| auto-generate a C source file from the header file that you generated |
| with the <em>bdf-converter</em> program. Notice <code class="docutils literal notranslate"><span class="pre">NXFONTS_FONTID=2</span></code>; this |
| must be set to the same font ID value that you defined in the |
| <code class="docutils literal notranslate"><span class="pre">include/nuttx/nx/nxfonts.h</span></code> file.</p> |
| <div class="highlight-makefile notranslate"><div class="highlight"><pre><span></span><span class="nf">genfontsources</span><span class="o">:</span> |
| <span class="cp"> ifeq ($(CONFIG_NXFONT_SANS23X27),y)</span> |
| @<span class="k">$(</span>MAKE<span class="k">)</span> -C nxfonts -f Makefile.sources <span class="nv">NXFONTS_FONTID</span><span class="o">=</span><span class="m">1</span> <span class="nv">EXTRAFLAGS</span><span class="o">=</span><span class="k">$(</span>EXTRAFLAGS<span class="k">)</span> |
| <span class="cp"> endif</span> |
| <span class="cp"> ifeq ($(CONFIG_NXFONT_MYFONT),y)</span> |
| @<span class="k">$(</span>MAKE<span class="k">)</span> -C nxfonts -f Makefile.sources <span class="nv">NXFONTS_FONTID</span><span class="o">=</span><span class="m">2</span> <span class="nv">EXTRAFLAGS</span><span class="o">=</span><span class="k">$(</span>EXTRAFLAGS<span class="k">)</span> |
| <span class="cp"> endif</span> |
| </pre></div> |
| </div> |
| </li> |
| <li><p><code class="docutils literal notranslate"><span class="pre">nuttx/graphics/nxfonts/Make.defs</span></code>. Set the make variable |
| <code class="docutils literal notranslate"><span class="pre">NXFSET_CSRCS</span></code>. <code class="docutils literal notranslate"><span class="pre">NXFSET_CSRCS</span></code> determines the name of the font C |
| file to build when <code class="docutils literal notranslate"><span class="pre">NXFONTS_FONTID=2</span></code>:</p> |
| <div class="highlight-makefile notranslate"><div class="highlight"><pre><span></span><span class="cp">ifeq ($(CONFIG_NXFONT_SANS23X27),y)</span> |
| <span class="nv">NXFSET_CSRCS</span> <span class="o">+=</span> nxfonts_bitmaps_sans23x27.c |
| <span class="cp">endif</span> |
| <span class="cp">ifeq ($(CONFIG_NXFONT_MYFONT),y)</span> |
| <span class="nv">NXFSET_CSRCS</span> <span class="o">+=</span> nxfonts_bitmaps_myfont.c |
| <span class="cp">endif</span> |
| </pre></div> |
| </div> |
| </li> |
| <li><p><code class="docutils literal notranslate"><span class="pre">nuttx/graphics/nxfonts/Makefile.sources</span></code>. This is the Makefile |
| used in step 5 that will actually generate the font C file. So, given |
| your NXFONTS_FONTID=2, it needs to determine a prefix to use for |
| auto-generated variable and function names and (again) the name of |
| the autogenerated file to create (this must be the same name that was |
| used in <code class="docutils literal notranslate"><span class="pre">nuttx/graphics/nxfonts/Make.defs</span></code>):</p> |
| <div class="highlight-makefile notranslate"><div class="highlight"><pre><span></span><span class="cp">ifeq ($(NXFONTS_FONTID),1)</span> |
| <span class="nv">NXFONTS_PREFIX</span> <span class="o">:=</span> g_sans23x27_ |
| <span class="nv">GEN_CSRC</span> <span class="o">=</span> nxfonts_bitmaps_sans23x27.c |
| <span class="cp">endif</span> |
| <span class="cp">ifeq ($(NXFONTS_FONTID),2)</span> |
| <span class="nv">NXFONTS_PREFIX</span> <span class="o">:=</span> g_myfont_ |
| <span class="nv">GEN_CSRC</span> <span class="o">=</span> nxfonts_bitmaps_myfont.c |
| <span class="cp">endif</span> |
| </pre></div> |
| </div> |
| </li> |
| <li><p><code class="docutils literal notranslate"><span class="pre">graphics/nxfonts/nxfonts_bitmaps.c</span></code>. This is the file that |
| contains the generic font structures. It is used as a βtemplate&qout; |
| file by <code class="docutils literal notranslate"><span class="pre">nuttx/graphics/nxfonts/Makefile.sources</span></code>to create your |
| customized font data set at build time.</p> |
| <div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cp">#if NXFONTS_FONTID == 1</span> |
| <span class="cp"># include "nxfonts_sans23x27.h"</span> |
| <span class="cp">#elif NXFONTS_FONTID == 2</span> |
| <span class="cp"># include "nxfonts_myfont.h"</span> |
| <span class="cp">#else</span> |
| <span class="cp"># error "No font ID specified"</span> |
| <span class="cp">#endif</span> |
| </pre></div> |
| </div> |
| <p>Where <code class="docutils literal notranslate"><span class="pre">nxfonts_myfont.h</span></code> is the NuttX font file that we generated |
| in step 2 using the <em>bdf-converter</em> tool.</p> |
| </li> |
| <li><p><code class="docutils literal notranslate"><span class="pre">graphics/nxfonts/nxfonts_getfont.c</span></code>. Finally, we need to |
| extend the logic that does the run-time font lookups so that can find |
| our new font. The lookup function is |
| <code class="docutils literal notranslate"><span class="pre">`NXHANDLE</span> <span class="pre">nxf_getfonthandle(enum</span> <span class="pre">nx_fontid_e</span> <span class="pre">fontid)</span></code> <#nxfgetfonthandle>`__. |
| Note that the lookup is based on the font ID that was defined in step |
| 4. The new font information needs to be added to data structures used |
| by that function:</p> |
| <div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cp">#ifdef CONFIG_NXFONT_SANS23X27</span> |
| <span class="k">extern</span> <span class="k">const</span> <span class="k">struct</span> <span class="n">nx_fontpackage_s</span> <span class="n">g_sans23x27_package</span><span class="p">;</span> |
| <span class="cp">#endif</span> |
| <span class="cp">#ifdef CONFIG_NXFONT_MYFONT</span> |
| <span class="k">extern</span> <span class="k">const</span> <span class="k">struct</span> <span class="n">nx_fontpackage_s</span> <span class="n">g_myfont_package</span><span class="p">;</span> |
| <span class="cp">#endif</span> |
| |
| <span class="k">static</span> <span class="n">FAR</span> <span class="k">const</span> <span class="k">struct</span> <span class="n">nx_fontpackage_s</span> <span class="o">*</span><span class="n">g_fontpackages</span><span class="p">[]</span> <span class="o">=</span> |
| <span class="p">{</span> |
| <span class="cp">#ifdef CONFIG_NXFONT_SANS23X27</span> |
| <span class="o">&</span><span class="n">g_sans23x27_package</span><span class="p">,</span> |
| <span class="cp">#endif</span> |
| <span class="cp">#ifdef CONFIG_NXFONT_MYFONT</span> |
| <span class="o">&</span><span class="n">g_myfont_package</span><span class="p">,</span> |
| <span class="cp">#endif</span> |
| <span class="nb">NULL</span> |
| <span class="p">};</span> |
| </pre></div> |
| </div> |
| </li> |
| </ol> |
| </div> |
| <div class="section" id="nx-test-coverage"> |
| <h2>NX Test Coverage<a class="headerlink" href="#nx-test-coverage" title="Permalink to this headline">ΒΆ</a></h2> |
| <p><code class="docutils literal notranslate"><span class="pre">apps/examples/nx</span></code>. The primary test tool for debugging NX resides |
| at <code class="docutils literal notranslate"><span class="pre">apps/examples/nx</span></code>.</p> |
| <p><strong>Building</strong> <code class="docutils literal notranslate"><span class="pre">apps/examples/nx</span></code>. NX testing was performed using |
| <code class="docutils literal notranslate"><span class="pre">apps/examples/nx</span></code> with the Linux/Cygwin-based NuttX simulator. |
| Configuration files for building this test can be found in |
| <code class="docutils literal notranslate"><span class="pre">boards/sim/sim/sim/configs/nx</span></code> and |
| <code class="docutils literal notranslate"><span class="pre">boards/sim/sim/sim/configs/nx11</span></code>. There are two alternative |
| configurations for building the simulation:</p> |
| <ol class="arabic"> |
| <li><p>The configuration using the configuration file at |
| <code class="docutils literal notranslate"><span class="pre">boards/sim/sim/sim/configs/nx/defconfig</span></code>. This default |
| configuration exercises the NX logic a 8 BPP but provides no visual |
| feedback. In this configuration, a very simple, simulated framebuffer |
| driver is used that is based upon a simple region of memory posing as |
| video memory. That default configuration can be built as follows:</p> |
| <div class="highlight-none notranslate"><div class="highlight"><pre><span></span>tools/configure.sh sim:nx |
| make |
| ./nuttx |
| </pre></div> |
| </div> |
| </li> |
| <li><p>The preferred configuration is at |
| <code class="docutils literal notranslate"><span class="pre">boards/sim/sim/sim/configs/nx11/defconfig</span></code>. This configuration |
| extends the test with a simulated framebuffer driver that uses an X |
| window as a framebuffer. This is a superior test configuration |
| because the X window appears at your desktop and you can see the NX |
| output. This preferred configuration can be built as follows:</p> |
| <div class="highlight-none notranslate"><div class="highlight"><pre><span></span>tools/configure sim:nx11 |
| make |
| ./nuttx |
| </pre></div> |
| </div> |
| <p><em>Update:</em> The sim target has suffered some bit-rot over the years and |
| so the following caveats need to be added:</p> |
| <ul> |
| <li><p>The X target builds under recent Cygwin configurations, but does |
| not execute. (It fails inside of <code class="docutils literal notranslate"><span class="pre">XOpenDisplay()</span></code>.</p></li> |
| <li><p>The X target does not build under current (9.09) Ubuntu |
| distributions. I needed to make the following changes:</p> |
| <p>The build will also fail to locate the X header files unless you |
| install an X11 development package.</p> |
| </li> |
| <li><p>The sim target itself is broken under 64-bit Linux. This is |
| because the sim target is based upon some assembly language |
| setjmp/longjmp logic that only works on 32-bit systems.</p> |
| <p>NOTE: There is a workaround in this case: You can build for 32-bit |
| execution on a 64-bit machine by adding <code class="docutils literal notranslate"><span class="pre">-m3</span></code> to the <code class="docutils literal notranslate"><span class="pre">CFLAGS</span></code> |
| and <code class="docutils literal notranslate"><span class="pre">-m32</span> <span class="pre">-m</span> <span class="pre">elf_i386</span></code> to the <code class="docutils literal notranslate"><span class="pre">LDFLAGS</span></code>. The |
| configuration/build system will do this for you; you simply need |
| to select <code class="docutils literal notranslate"><span class="pre">CONFIG_SIM_M32=y</span></code> in your configuration file.</p> |
| </li> |
| <li><p>Refer to the readme file in sim configuration |
| <a class="reference external" href="https://bitbucket.org/nuttx/nuttx/src/master/boards/sim/sim/sim/README.txt">README.txt</a> |
| file for additional information.</p></li> |
| </ul> |
| </li> |
| </ol> |
| <p><strong>Test Coverage</strong>. At present, <code class="docutils literal notranslate"><span class="pre">apps/examples/nx</span></code>t only exercises a |
| subset of NX; the remainder is essentially untested. The following table |
| describes the testing performed on each NX API:</p> |
| <div class="section" id="nxglib-api-test-coverage"> |
| <h3>NXGLIB API Test Coverage<a class="headerlink" href="#nxglib-api-test-coverage" title="Permalink to this headline">ΒΆ</a></h3> |
| <table class="docutils align-default"> |
| <colgroup> |
| <col style="width: 42%" /> |
| <col style="width: 47%" /> |
| <col style="width: 11%" /> |
| </colgroup> |
| <thead> |
| <tr class="row-odd"><th class="head"><p>Function</p></th> |
| <th class="head"><p>Special Setup/Notes</p></th> |
| <th class="head"><p>Verified</p></th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nxgl_rgb2yuv()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>NO</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nxgl_yuv2rgb()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>NO</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nxgl_rectcopy()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nxgl_rectoffset()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nxgl_vectoradd()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nxgl_vectorsubtract()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nxgl_rectintersect()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nxgl_rectunion()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nxgl_nonintersecting()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nxgl_rectoverlap()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nxgl_rectinside()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nxgl_rectsize()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nxgl_nullrect()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nxgl_runoffset()</span></code></p></td> |
| <td><p>Verified by apps/examples/nxlines.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nxgl_runcopy()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>NO</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nxgl_trapoffset()</span></code></p></td> |
| <td><p>Verified by apps/examples/nxlines.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nxgl_trapcopy()</span></code></p></td> |
| <td><p>Verified by apps/examples/nxlines.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nxgl_colorcopy</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nxgl_splitline</span></code></p></td> |
| <td><p>Verified using apps/examples/nxlines |
| Generally works well, but has some |
| accuracy/overflow problems wide |
| lines that are nearly horizontal. |
| There is a βfudge factorβ that seems |
| to eliminate the problem, but there |
| could still be issues in some |
| configurations.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nxgl_circlepts</span></code></p></td> |
| <td><p>Verified by apps/examples/nxlines.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nxgl_circletraps</span></code></p></td> |
| <td><p>Verified by apps/examples/nxlines.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| <div class="section" id="nx-server-callbacks-test-coverage"> |
| <h3>NX Server Callbacks Test Coverage<a class="headerlink" href="#nx-server-callbacks-test-coverage" title="Permalink to this headline">ΒΆ</a></h3> |
| <table class="docutils align-default"> |
| <colgroup> |
| <col style="width: 33%" /> |
| <col style="width: 48%" /> |
| <col style="width: 19%" /> |
| </colgroup> |
| <thead> |
| <tr class="row-odd"><th class="head"><p>Function</p></th> |
| <th class="head"><p>Special Setup/Notes</p></th> |
| <th class="head"><p>Verified</p></th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">redraw()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">position()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">mousein()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">kbdin()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| <div class="section" id="nx-api-test-coverage"> |
| <h3>NX API Test Coverage<a class="headerlink" href="#nx-api-test-coverage" title="Permalink to this headline">ΒΆ</a></h3> |
| <table class="docutils align-default"> |
| <colgroup> |
| <col style="width: 24%" /> |
| <col style="width: 61%" /> |
| <col style="width: 15%" /> |
| </colgroup> |
| <thead> |
| <tr class="row-odd"><th class="head"><p>Function</p></th> |
| <th class="head"><p>Special Setup/Notes</p></th> |
| <th class="head"><p>Verified</p></th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nx_runinstance()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nx_connectinstance()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nx_disconnect()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nx_eventhandler()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nx_eventnotify()</span></code></p></td> |
| <td><p>This is not used in the current version of apps/examples/nx, |
| was tested in a previous version)</p></td> |
| <td><p>NO</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nx_openwindow()</span></code></p></td> |
| <td><p>Change to <code class="docutils literal notranslate"><span class="pre">CONFIG_EXAMPLES_NX_RAWWINDOWS=y</span></code> in the |
| <code class="docutils literal notranslate"><span class="pre"><NuttX-Directory>/.config</span> <span class="pre">file</span></code></p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nx_closewindow()</span></code></p></td> |
| <td><p>Change to <code class="docutils literal notranslate"><span class="pre">CONFIG_EXAMPLES_NX_RAWWINDOWS=y</span></code> |
| in the <code class="docutils literal notranslate"><span class="pre"><NuttX-Directory>/.config</span></code> file</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nx_requestbkgd()</span></code></p></td> |
| <td><p>Verified by <code class="docutils literal notranslate"><span class="pre">apps/examples/nxtext</span></code> and |
| <code class="docutils literal notranslate"><span class="pre">apps/examples/nxhello</span></code>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nx_releasebkgd()</span></code></p></td> |
| <td><p>Verified by <code class="docutils literal notranslate"><span class="pre">apps/examples/nxtext</span></code> and |
| <code class="docutils literal notranslate"><span class="pre">apps/examples/nxhello</span></code>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nx_getposition()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>NO</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nx_setposition()</span></code></p></td> |
| <td><p>Change to <code class="docutils literal notranslate"><span class="pre">CONFIG_EXAMPLES_NX_RAWWINDOWS=y</span></code> in the |
| <code class="docutils literal notranslate"><span class="pre"><NuttX-Directory>/.config</span></code> file</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nx_setsize()</span></code></p></td> |
| <td><p>Change to <code class="docutils literal notranslate"><span class="pre">CONFIG_EXAMPLES_NX_RAWWINDOWS=y</span></code> in the |
| <code class="docutils literal notranslate"><span class="pre"><NuttX-Directory>/.config</span></code> file</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nx_raise()</span></code></p></td> |
| <td><p>Change to <code class="docutils literal notranslate"><span class="pre">CONFIG_EXAMPLES_NX_RAWWINDOWS=y</span></code> in the |
| <code class="docutils literal notranslate"><span class="pre"><NuttX-Directory>/.config</span></code> file</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nx_lower()</span></code></p></td> |
| <td><p>Change to <code class="docutils literal notranslate"><span class="pre">CONFIG_EXAMPLES_NX_RAWWINDOWS=y</span></code> in the |
| <code class="docutils literal notranslate"><span class="pre"><NuttX-Directory>/.config</span></code> file</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nx_modal()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>NO</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nx_setvisibility()</span></code></p></td> |
| <td><p>Exercized using Twm4Nx</p></td> |
| <td><p>YES, Informally</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nx_ishidden()</span></code></p></td> |
| <td><p>Exercized using Twm4Nx</p></td> |
| <td><p>YES, Informally</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nx_fill()</span></code></p></td> |
| <td><p>Change to <code class="docutils literal notranslate"><span class="pre">CONFIG_EXAMPLES_NX_RAWWINDOWS=y</span></code> in the |
| <code class="docutils literal notranslate"><span class="pre"><NuttX-Directory>/.config</span></code> file</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nx_getrectangle()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nx_filltrapezoid()</span></code></p></td> |
| <td><p>Verified by <code class="docutils literal notranslate"><span class="pre">apps/examples/nxlines</span></code>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nx_drawline()</span></code></p></td> |
| <td><p>by <code class="docutils literal notranslate"><span class="pre">apps/examples/nxlines</span></code>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nx_drawcircle()</span></code></p></td> |
| <td><p>Verified by <code class="docutils literal notranslate"><span class="pre">apps/examples/nxlines</span></code>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nx_fillcircle()</span></code></p></td> |
| <td><p>Verified by <code class="docutils literal notranslate"><span class="pre">apps/examples/nxlines</span></code>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nx_setbgcolor()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nx_move()</span></code></p></td> |
| <td><p>Change to <code class="docutils literal notranslate"><span class="pre">CONFIG_EXAMPLES_NX_RAWWINDOWS=y</span></code> in the |
| <code class="docutils literal notranslate"><span class="pre"><NuttX-Directory>/.config</span></code> file</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nx_bitmap()</span></code></p></td> |
| <td><p>Change to <code class="docutils literal notranslate"><span class="pre">CONFIG_EXAMPLES_NX_RAWWINDOWS=y</span></code> in the |
| <code class="docutils literal notranslate"><span class="pre"><NuttX-Directory>/.config</span></code> file.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nx_kbdin()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nx_mousein()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| <div class="section" id="nxtk-api-test-coverage"> |
| <h3>NXTK API Test Coverage<a class="headerlink" href="#nxtk-api-test-coverage" title="Permalink to this headline">ΒΆ</a></h3> |
| <table class="docutils align-default"> |
| <colgroup> |
| <col style="width: 41%" /> |
| <col style="width: 37%" /> |
| <col style="width: 22%" /> |
| </colgroup> |
| <thead> |
| <tr class="row-odd"><th class="head"><p>Function</p></th> |
| <th class="head"><p>Special Setup/Notes</p></th> |
| <th class="head"><p>Verified</p></th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nxtk_openwindow()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nxtk_closewindow()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nxtk_getposition()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>NO</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nxtk_setposition()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nxtk_setsize()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nxtk_raise()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nxtk_lower()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nxtk_modal()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>NO</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nxtk_setvisibility()</span></code></p></td> |
| <td><p>Exercized using Twm4Nx</p></td> |
| <td><p>YES, informally</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nxtk_ishidden()</span></code></p></td> |
| <td><p>Exercized using Twm4Nx</p></td> |
| <td><p>YES, informally</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nxtk_fillwindow()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nxtk_getwindow()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>NO</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nxtk_filltrapwindow()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>NO</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nxtk_drawlinewindow()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nxtk_drawcirclewindow()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nxtk_fillcirclewindow()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nxtk_movewindow()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>NO</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nxtk_bitmapwindow()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nxtk_opentoolbar()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nxtk_closetoolbar()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nxtk_filltoolbar()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nxtk_gettoolbar()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>NO</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nxtk_filltraptoolbar()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>NO</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nxtk_drawlinetoolbar()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>NO</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nxtk_drawcircletoolbar()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>NO</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nxtk_fillcircletoolbar()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>NO</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nxtk_movetoolbar()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>NO</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nxtk_bitmaptoolbar()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>NO</p></td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| <div class="section" id="nxfonts-api-test-coverage"> |
| <h3>NXFONTS API Test Coverage<a class="headerlink" href="#nxfonts-api-test-coverage" title="Permalink to this headline">ΒΆ</a></h3> |
| <table class="docutils align-default"> |
| <colgroup> |
| <col style="width: 39%" /> |
| <col style="width: 48%" /> |
| <col style="width: 13%" /> |
| </colgroup> |
| <thead> |
| <tr class="row-odd"><th class="head"><p>Function</p></th> |
| <th class="head"><p>Special Setup/Notes</p></th> |
| <th class="head"><p>Verified</p></th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nxf_getfonthandle()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nxf_getfontset()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nxf_getbitmap()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nxf_convert_2bpp()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>NO</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nxf_convert_4bpp()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>NO</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nxf_convert_8bpp()</span></code></p></td> |
| <td><p>Use defconfig when building.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nxf_convert_16bpp()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">nxf_convert_24bpp()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>NO</p></td> |
| </tr> |
| <tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">nxf_convert_32bpp()</span></code></p></td> |
| <td><p>.</p></td> |
| <td><p>YES</p></td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| </div> |
| </div> |
| |
| |
| </div> |
| |
| </div> |
| <footer> |
| |
| |
| <hr/> |
| |
| <div role="contentinfo"> |
| <p> |
| |
| © Copyright 2020, The Apache Software Foundation |
| |
| </p> |
| </div> |
| |
| </footer> |
| |
| </div> |
| </div> |
| |
| </section> |
| |
| </div> |
| |
| |
| <script type="text/javascript"> |
| jQuery(function () { |
| SphinxRtdTheme.Navigation.enable(true); |
| }); |
| </script> |
| |
| |
| |
| |
| |
| |
| </body> |
| </html> |