| <!-- |
| 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="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" /> |
| |
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
| <title>NX Graphics Subsystem — NuttX latest documentation</title> |
| <link rel="stylesheet" type="text/css" href="../../_static/pygments.css" /> |
| <link rel="stylesheet" type="text/css" href="../../_static/css/theme.css" /> |
| <link rel="stylesheet" type="text/css" href="../../_static/copybutton.css" /> |
| <link rel="stylesheet" type="text/css" href="../../_static/sphinx_collapse.css" /> |
| <link rel="stylesheet" type="text/css" href="../../_static/design-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css" /> |
| <link rel="stylesheet" type="text/css" href="../../_static/custom.css" /> |
| |
| |
| <link rel="shortcut icon" href="../../_static/favicon.ico"/> |
| <script src="../../_static/jquery.js"></script> |
| <script src="../../_static/_sphinx_javascript_frameworks_compat.js"></script> |
| <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script> |
| <script src="../../_static/doctools.js"></script> |
| <script src="../../_static/sphinx_highlight.js"></script> |
| <script src="../../_static/clipboard.min.js"></script> |
| <script src="../../_static/copybutton.js"></script> |
| <script src="../../_static/design-tabs.js"></script> |
| <script 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="NX Graphics Library (NXGL)" href="nxgl.html" /> |
| <link rel="prev" title="NXFLAT" href="../nxflat.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 |
| |
| |
| |
| </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" aria-label="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="Navigation menu"> |
| <p class="caption" role="heading"><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="../../quickstart/index.html">Getting Started</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="../../introduction/inviolables.html">The Inviolable Principles of NuttX</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../../platforms/index.html">Supported Platforms</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="../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="../nxflat.html">NXFLAT</a></li> |
| <li class="toctree-l2 current"><a class="current reference internal" href="#">NX Graphics Subsystem</a><ul> |
| <li class="toctree-l3"><a class="reference internal" href="#objectives">Objectives</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#organization">Organization</a><ul> |
| <li class="toctree-l4"><a class="reference internal" href="#nx-graphics-library-nxgl">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-nxsu-and-nxmu">NX (<code class="docutils literal notranslate"><span class="pre">NXSU</span></code> and <code class="docutils literal notranslate"><span class="pre">NXMU</span></code>)</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="#nx-tool-kit-nxtk">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="#nx-fonts-support-nxfonts">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="#nx-widgets-nxwidgets">NX Widgets (<code class="docutils literal notranslate"><span class="pre">NxWidgets</span></code>)</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="#terminal-driver-nxterm">Terminal Driver (<code class="docutils literal notranslate"><span class="pre">NxTerm</span></code>)</a></li> |
| </ul> |
| </li> |
| <li class="toctree-l3"><a class="reference internal" href="#nx-header-files">NX Header Files</a><ul> |
| <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="nxwm_threading.html">NxWM Threading</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="framebuffer_char_driver.html">Framebuffer Character Driver</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="sample.html">Sample Code</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="appendix.html">Appendix</a></li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| <li class="toctree-l2"><a class="reference internal" href="../paging.html">On-Demand Paging</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../audio/index.html">Audio Subsystem</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../filesystem/index.html">NuttX File System</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../libs/index.html">NuttX libraries</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../net/index.html">Network Support</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../mm/index.html">Memory Management</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../syscall.html">Syscall Layer</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../tools/index.html"><code class="docutils literal notranslate"><span class="pre">/tools</span></code> Host Tools</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../arch/index.html">Architecture-Specific Code</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../boards.html">Boards Support</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../cmake.html">CMake Support</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../openamp.html">OpenAMP Support</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../video.html">Video Subsystem</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../crypto.html">Crypto API Subsystem</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../wireless.html">Wireless Subsystem</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="../../implementation/index.html">Implementation Details</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="../../faq/index.html">FAQ</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../../debugging/index.html">Debugging</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="../../standards/index.html">Standards</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../../glossary.html">Glossary</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../../logos/index.html">NuttX Logos</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../../_tags/tagsindex.html">Tags</a></li> |
| </ul> |
| |
| </div> |
| </div> |
| </nav> |
| |
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > |
| <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="Page navigation"> |
| <ul class="wy-breadcrumbs"> |
| <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> |
| <li class="breadcrumb-item"><a href="../index.html">OS Components</a></li> |
| <li class="breadcrumb-item active">NX Graphics Subsystem</li> |
| <li class="wy-breadcrumbs-aside"> |
| <a href="https://github.com/apache/nuttx/blob/master/Documentation/components/nxgraphics/index.rst" class="fa fa-github"> Edit on GitHub</a> |
| </li> |
| </ul> |
| <hr/> |
| </div> |
| <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> |
| <div itemprop="articleBody"> |
| |
| <section id="nx-graphics-subsystem"> |
| <span id="nxgraphics"></span><h1>NX Graphics Subsystem<a class="headerlink" href="#nx-graphics-subsystem" title="Permalink to this heading"></a></h1> |
| <p>This document describes the tiny graphics support included in NuttX. It |
| includes an overview description of that graphics support, detailed |
| descriptions of the NuttX graphics APIs, and discussion of code |
| organization, and OS configuration options.</p> |
| <figure class="align-center" id="id1"> |
| <img alt="../../_images/NuttXScreenShot.jpg" src="../../_images/NuttXScreenShot.jpg" /> |
| <figcaption> |
| <p><span class="caption-text"><strong>Figure 1</strong>. This screenshot shows the final frame for the NuttX example |
| at <code class="docutils literal notranslate"><span class="pre">apps/examples/nx</span></code> running on the simulated, Linux x86 platform with |
| simulated framebuffer output to an X window. This picture shows to framed window |
| with (blank) toolbars. Each window has displayed text as received from the |
| NX keyboard interface The second window has just been raised to the top of the display.</span><a class="headerlink" href="#id1" title="Permalink to this image"></a></p> |
| </figcaption> |
| </figure> |
| <section id="objectives"> |
| <h2>Objectives<a class="headerlink" href="#objectives" title="Permalink to this heading"></a></h2> |
| <p>The objective of this development was to provide a tiny windowing system |
| in the spirit of X, but greatly scaled down and appropriate for most |
| resource-limited embedded environments. The current NX implementation |
| supports the general following, high-level features:</p> |
| <ul class="simple"> |
| <li><p><strong>Virtual Vertical Graphics Space</strong>. Windows that reside in a |
| virtual, <em>vertical</em> space so that it makes sense to talk about one |
| window being on top of another and obscuring the window below it.</p></li> |
| <li><p><strong>Client/Server Model</strong>. A standard client server/model was adopted. |
| NX may be considered a server and other logic that presents the |
| windows are NX clients.</p></li> |
| <li><p><strong>Multi-User Support</strong>. NX includes <em>front-end</em> logic to support a |
| separate NX server thread that can serve multiple NX client threads. |
| The NX is a server thread/daemon the serializes graphics operations |
| from multiple clients.</p></li> |
| <li><p><strong>Minimal Graphics Toolset</strong>. The actual implementation of the |
| graphics operations is performed by common, <em>back-end</em> logic. This |
| back-end supports only a primitive set of graphic and rendering |
| operations.</p></li> |
| <li><p><strong>Device Interface</strong>. NX supports any graphics device either of two |
| device interfaces:</p> |
| <ul> |
| <li><p>Any device with random access video memory using the NuttX |
| framebuffer driver interface (see <code class="docutils literal notranslate"><span class="pre">include/nuttx/video/fb.h</span></code>).</p></li> |
| <li><p>Any LCD-like device than can accept raster line <em>runs</em> through a |
| parallel or serial interface (see <code class="docutils literal notranslate"><span class="pre">include/nuttx/lcd/lcd.h</span></code>). By |
| default, NX is configured to use the frame buffer driver unless |
| <code class="docutils literal notranslate"><span class="pre">CONFIG_NX_LCDDRIVER</span></code> is defined =y in your NuttX configuration |
| file.</p></li> |
| </ul> |
| </li> |
| <li><p><strong>Transparent to NX Client</strong>. The window client on “sees” the |
| sub-window that is operates in and does not need to be concerned with |
| the virtual, vertical space (other that to respond to <em>redraw</em> |
| requests from NX when needed).</p></li> |
| <li><p><strong>Framed Windows and Toolbars</strong>. NX also adds the capability to |
| support windows with frames and toolbars on top of the basic |
| windowing support. These are windows such as those shown in the |
| <a class="reference external" href="#screenshot">screenshot</a> above. These framed windows sub-divide |
| one one window into three relatively independent subwindows: A frame, |
| the contained window and an (optional) toolbar window.</p></li> |
| <li><p><strong>Mouse Support</strong>. NX provides support for a mouse or other X/Y |
| pointing devices. APIs are provided to allow external devices to give |
| X/Y position information and mouse button presses to NX. NX will then |
| provide the mouse input to the relevant window clients via callbacks. |
| Client windows only receive the mouse input callback if the mouse is |
| positioned over a visible portion of the client window; X/Y position |
| is provided to the client in the relative coordinate system of the |
| client window.</p></li> |
| <li><p><strong>Keyboard input</strong>. NX also supports keyboard/keypad devices. APIs |
| are provided to allow external devices to give keypad information to |
| NX. NX will then provide the mouse input to the top window on the |
| display (the window that has the <em>focus</em>) via a callback function.</p></li> |
| </ul> |
| </section> |
| <section id="organization"> |
| <h2>Organization<a class="headerlink" href="#organization" title="Permalink to this heading"></a></h2> |
| <p>NX is organized into 6 (and perhaps someday 7 or 8) logical modules. |
| These logical modules also correspond to the directory organization. |
| That NuttX directory organization is discussed in <a class="reference external" href="#grapicsdirs">Appendix |
| B</a> of this document. The logic modules are discussed in |
| the following sub-paragraphs.</p> |
| <figure class="align-center"> |
| <img alt="../../_images/NXOrganization.png" src="../../_images/NXOrganization.png" /> |
| </figure> |
| <section id="nx-graphics-library-nxgl"> |
| <h3>NX Graphics Library (<code class="docutils literal notranslate"><span class="pre">NXGL</span></code>)<a class="headerlink" href="#nx-graphics-library-nxgl" title="Permalink to this heading"></a></h3> |
| <p>NXGLIB is a standalone library that contains low-level graphics |
| utilities and direct framebuffer or LCD rendering logic. NX is built on |
| top NXGLIB.</p> |
| </section> |
| <section id="nx-nxsu-and-nxmu"> |
| <h3>NX (<code class="docutils literal notranslate"><span class="pre">NXSU</span></code> and <code class="docutils literal notranslate"><span class="pre">NXMU</span></code>)<a class="headerlink" href="#nx-nxsu-and-nxmu" title="Permalink to this heading"></a></h3> |
| <p>NX is the tiny NuttX windowing system for raw windows (i.e., simple |
| regions of graphics memory). NX includes a small-footprint, multi-user |
| implementation (NXMU as described below). NX can be used without |
| NxWidgets and without NXTOOLKIT for raw window displays.</p> |
| <p><sup>1</sup>NXMU and NXSU are interchangeable other than (1) certain |
| start-up and initialization APIs (as described below), and (2) timing. |
| With NXSU, NX APIs execute immediately; with NXMU, NX APIs defer and |
| serialize the operations and, hence, introduce different timing and |
| potential race conditions that you would not experience with NXSU.</p> |
| <p><strong>NXNULL?</strong> At one time, I also envisioned a <em>NULL</em> front-end that did |
| not support windowing at all but, rather, simply provided the entire |
| framebuffer or LCD memory as one dumb window. This has the advantage |
| that the same NX APIs can be used on the one dumb window as for the |
| other NX windows. This would be in the NuttX spirit of scalability.</p> |
| <p>However, the same end result can be obtained by using the |
| <code class="docutils literal notranslate"><span class="pre">`nx_requestbkgd()</span></code> <#nxrequestbkgd>`__ API. It still may be possible |
| to reduce the footprint in this usage case by developing and even |
| thinner NXNULL front-end. That is a possible future development.</p> |
| </section> |
| <section id="nx-tool-kit-nxtk"> |
| <h3>NX Tool Kit (<code class="docutils literal notranslate"><span class="pre">NXTK</span></code>)<a class="headerlink" href="#nx-tool-kit-nxtk" title="Permalink to this heading"></a></h3> |
| <p>NXTK is a s set of C graphics tools that provide higher-level window |
| drawing operations. This is the module where the framed windows and |
| toolbar logic is implemented. NXTK is built on top of NX and does not |
| depend on NxWidgets.</p> |
| </section> |
| <section id="nx-fonts-support-nxfonts"> |
| <h3>NX Fonts Support (<code class="docutils literal notranslate"><span class="pre">NXFONTS</span></code>)<a class="headerlink" href="#nx-fonts-support-nxfonts" title="Permalink to this heading"></a></h3> |
| <p>A set of C graphics tools for present (bitmap) font images. The font |
| implementation is at a very low level or graphics operation, comparable |
| to the logic in NXGLIB. NXFONTS does not depend on any NX module other |
| than some utilities and types from NXGLIB.</p> |
| </section> |
| <section id="nx-widgets-nxwidgets"> |
| <h3>NX Widgets (<code class="docutils literal notranslate"><span class="pre">NxWidgets</span></code>)<a class="headerlink" href="#nx-widgets-nxwidgets" title="Permalink to this heading"></a></h3> |
| <p><a class="reference internal" href="../../applications/graphics/nxwidgets/index.html#nxwidgets"><span class="std std-ref">NxWidgets</span></a> is a higher level, C++, object-oriented |
| library for object-oriented access to graphical “widgets.” NxWidgets is |
| provided as a separate library in the <code class="docutils literal notranslate"><span class="pre">apps/</span></code> repository NxWidgets is |
| built on top of the core NuttX graphics subsystem, but is part of the |
| application space rather than part of the core OS graphics subsystems.</p> |
| </section> |
| <section id="terminal-driver-nxterm"> |
| <h3>Terminal Driver (<code class="docutils literal notranslate"><span class="pre">NxTerm</span></code>)<a class="headerlink" href="#terminal-driver-nxterm" title="Permalink to this heading"></a></h3> |
| <p>NxTerm is a write-only character device (not shown) that is built on top |
| of an NX window. This character device can be used to provide <code class="docutils literal notranslate"><span class="pre">stdout</span></code> |
| and <code class="docutils literal notranslate"><span class="pre">stderr</span></code> and, hence, can provide the output side of NuttX console. |
| ).</p> |
| </section> |
| </section> |
| <section id="nx-header-files"> |
| <h2>NX Header Files<a class="headerlink" href="#nx-header-files" title="Permalink to this heading"></a></h2> |
| <dl class="simple"> |
| <dt><code class="docutils literal notranslate"><span class="pre">include/nuttx/nx/nxglib.h</span></code></dt><dd><p>Describes the NXGLIB C interfaces</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">include/nuttx/nx/nx.h</span></code></dt><dd><p>Describes the NX C interfaces</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">include/nutt/nxtk.h</span></code></dt><dd><p>Describe the NXTOOLKIT C interfaces</p> |
| </dd> |
| <dt><code class="docutils literal notranslate"><span class="pre">include/nutt/nxfont.h</span></code></dt><dd><p>Describe sthe NXFONT C interfaces</p> |
| </dd> |
| </dl> |
| <div class="toctree-wrapper compound"> |
| <p class="caption" role="heading"><span class="caption-text">User APIs</span></p> |
| <ul> |
| <li class="toctree-l1"><a class="reference internal" href="nxgl.html">NX Graphics Library (<code class="docutils literal notranslate"><span class="pre">NXGL</span></code>)</a><ul> |
| <li class="toctree-l2"><a class="reference internal" href="nxgl.html#nxgl-types">NXGL Types</a></li> |
| </ul> |
| </li> |
| <li class="toctree-l1"><a class="reference internal" href="nx.html">NX</a><ul> |
| <li class="toctree-l2"><a class="reference internal" href="nx.html#overview">Overview</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="nx.html#pre-processor-definitions">Pre-Processor Definitions</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="nx.html#nx-types">NX Types</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="nx.html#starting-the-nx-server">Starting the NX Server</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="nx.html#nx-server-callbacks">NX Server Callbacks</a></li> |
| </ul> |
| </li> |
| <li class="toctree-l1"><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-l1"><a class="reference internal" href="nxfonts.html">NX Fonts Support (<code class="docutils literal notranslate"><span class="pre">NXFONTS</span></code>)</a><ul> |
| <li class="toctree-l2"><a class="reference internal" href="nxfonts.html#nxfonts-types">NXFONTS types</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="nxfonts.html#wide-font-support">Wide Font Support</a><ul> |
| <li class="toctree-l3"><a class="reference internal" href="nxfonts.html#adding-16-bit-font-support">Adding 16-Bit Font support</a><ul> |
| <li class="toctree-l4"><a class="reference internal" href="nxfonts.html#current-7-8-bit-font-implementation">Current 7/8-bit Font Implementation</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="nxfonts.html#adding-wide-fonts">Adding Wide Fonts</a></li> |
| </ul> |
| </li> |
| <li class="toctree-l3"><a class="reference internal" href="nxfonts.html#font-storage-issues">Font Storage Issues</a></li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| <li class="toctree-l1"><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-l1"><a class="reference internal" href="nxwm_threading.html">NxWM Threading</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="framebuffer_char_driver.html">Framebuffer Character Driver</a><ul> |
| <li class="toctree-l2"><a class="reference internal" href="framebuffer_char_driver.html#nx-graphics">NX Graphics</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="framebuffer_char_driver.html#figure-1">Figure 1</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="framebuffer_char_driver.html#framebuffer-character-driver-details">Framebuffer Character Driver details</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="framebuffer_char_driver.html#posix-interfaces">POSIX Interfaces</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="framebuffer_char_driver.html#ioctl-commands">IOCTL Commands</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="framebuffer_char_driver.html#mmap"><code class="docutils literal notranslate"><span class="pre">mmap()</span></code></a></li> |
| <li class="toctree-l2"><a class="reference internal" href="framebuffer_char_driver.html#framebuffer-vs-lcd-graphics-drivers">Framebuffer vs. LCD Graphics Drivers</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="framebuffer_char_driver.html#lcd-framebuffer-front-end">LCD Framebuffer Front-End</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="framebuffer_char_driver.html#framebuffer-graphics-library">Framebuffer Graphics Library</a></li> |
| </ul> |
| </li> |
| <li class="toctree-l1"><a class="reference internal" href="sample.html">Sample Code</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="appendix.html">Appendix</a><ul> |
| <li class="toctree-l2"><a class="reference internal" href="appendix.html#graphics-directory-structure"><code class="docutils literal notranslate"><span class="pre">graphics/</span></code> Directory Structure</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="appendix.html#nx-configuration-options">NX Configuration Options</a><ul> |
| <li class="toctree-l3"><a class="reference internal" href="appendix.html#general-configuration-settings">General Configuration Settings</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="appendix.html#nxgl-configuration-settings">NXGL Configuration Settings</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="appendix.html#configuration-settings">Configuration Settings</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="appendix.html#nx-server-configuration-settings">NX Server Configuration Settings</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="appendix.html#nxtk-configuration-settings">NXTK Configuration Settings</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="appendix.html#nxfonts-configuration-settings">NXFONTS Configuration Settings</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="appendix.html#nxterm-configuration-settings">NxTerm Configuration Settings</a></li> |
| </ul> |
| </li> |
| <li class="toctree-l2"><a class="reference internal" href="appendix.html#installing-new-fonts">Installing New Fonts</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="appendix.html#nx-test-coverage">NX Test Coverage</a><ul> |
| <li class="toctree-l3"><a class="reference internal" href="appendix.html#nxglib-api-test-coverage">NXGLIB API Test Coverage</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="appendix.html#nx-server-callbacks-test-coverage">NX Server Callbacks Test Coverage</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="appendix.html#nx-api-test-coverage">NX API Test Coverage</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="appendix.html#nxtk-api-test-coverage">NXTK API Test Coverage</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="appendix.html#nxfonts-api-test-coverage">NXFONTS API Test Coverage</a></li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </div> |
| </section> |
| </section> |
| |
| |
| </div> |
| </div> |
| <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> |
| <a href="../nxflat.html" class="btn btn-neutral float-left" title="NXFLAT" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> |
| <a href="nxgl.html" class="btn btn-neutral float-right" title="NX Graphics Library (NXGL)" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> |
| </div> |
| |
| <hr/> |
| |
| <div role="contentinfo"> |
| <p>© Copyright 2023, The Apache Software Foundation.</p> |
| </div> |
| |
| |
| |
| </footer> |
| </div> |
| </div> |
| </section> |
| </div> |
| <script> |
| jQuery(function () { |
| SphinxRtdTheme.Navigation.enable(true); |
| }); |
| </script> |
| |
| </body> |
| </html> |