| <!-- |
| 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 — 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 Tool Kit (NXTK)" href="nxtk.html" /> |
| <link rel="prev" title="NX Graphics Library (NXGL)" href="nxgl.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="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 current"><a class="current reference internal" href="#">NX</a><ul> |
| <li class="toctree-l5"><a class="reference internal" href="#overview">Overview</a></li> |
| <li class="toctree-l5"><a class="reference internal" href="#pre-processor-definitions">Pre-Processor Definitions</a></li> |
| <li class="toctree-l5"><a class="reference internal" href="#nx-types">NX Types</a></li> |
| <li class="toctree-l5"><a class="reference internal" href="#starting-the-nx-server">Starting the NX Server</a></li> |
| <li class="toctree-l5"><a class="reference internal" href="#nx-server-callbacks">NX Server Callbacks</a></li> |
| </ul> |
| </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"><a href="index.html">NX Graphics Subsystem</a></li> |
| <li class="breadcrumb-item active">NX</li> |
| <li class="wy-breadcrumbs-aside"> |
| <a href="https://github.com/apache/nuttx/blob/master/Documentation/components/nxgraphics/nx.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"> |
| <h1>NX<a class="headerlink" href="#nx" title="Permalink to this heading"></a></h1> |
| <section id="overview"> |
| <h2>Overview<a class="headerlink" href="#overview" title="Permalink to this heading"></a></h2> |
| <p>NX provides 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, |
| vertical 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 front-end logic to an NX server |
| daemon that can serve multiple NX client threads. The NX sever |
| thread/daemon 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, back-end 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> |
| <ol class="arabic simple"> |
| <li><p>Any device with random access video memory using the NuttX framebuffer |
| driver interface (see include/nuttx/video/fb.h).</p></li> |
| <li><p>Any LCD-like device than can accept raster line runs through a parallel |
| or serial interface (see include/nuttx/lcd/lcd.h). By default, NX is |
| configured to use the frame buffer driver unless CONFIG_NX_LCDDRIVER |
| is defined =y in your NuttX configuration file.</p></li> |
| </ol> |
| </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 redraw 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 screenshot 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 focus) via a callback function.</p></li> |
| </ul> |
| </section> |
| <section id="pre-processor-definitions"> |
| <h2>Pre-Processor Definitions<a class="headerlink" href="#pre-processor-definitions" title="Permalink to this heading"></a></h2> |
| <p>The default server message queue name used by the <a class="reference internal" href="#c.nx_run" title="nx_run"><code class="xref c c-macro docutils literal notranslate"><span class="pre">nx_run</span></code></a> macro:</p> |
| <div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cp">#define NX_DEFAULT_SERVER_MQNAME "/dev/nxs"</span> |
| </pre></div> |
| </div> |
| <p>Mouse button bits:</p> |
| <div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cp">#define NX_MOUSE_NOBUTTONS 0x00</span> |
| <span class="cp">#define NX_MOUSE_LEFTBUTTON 0x01</span> |
| <span class="cp">#define NX_MOUSE_CENTERBUTTON 0x02</span> |
| <span class="cp">#define NX_MOUSE_RIGHTBUTTON 0x04</span> |
| </pre></div> |
| </div> |
| </section> |
| <section id="nx-types"> |
| <h2>NX Types<a class="headerlink" href="#nx-types" title="Permalink to this heading"></a></h2> |
| <p>The interface to the NX server is managed using a opaque handle:</p> |
| <dl class="c type"> |
| <dt class="sig sig-object c" id="c.NXHANDLE"> |
| <span class="k"><span class="pre">typedef</span></span><span class="w"> </span><span class="pre">FAR</span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">NXHANDLE</span></span></span><a class="headerlink" href="#c.NXHANDLE" title="Permalink to this definition"></a><br /></dt> |
| <dd></dd></dl> |
| |
| <p>The interface to a specific window is managed using an opaque handle:</p> |
| <dl class="c type"> |
| <dt class="sig sig-object c" id="c.NXWINDOW"> |
| <span class="k"><span class="pre">typedef</span></span><span class="w"> </span><span class="pre">FAR</span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">NXWINDOW</span></span></span><a class="headerlink" href="#c.NXWINDOW" title="Permalink to this definition"></a><br /></dt> |
| <dd></dd></dl> |
| |
| <p>These define callbacks that must be provided to <a class="reference internal" href="#c.nx_openwindow" title="nx_openwindow"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_openwindow()</span></code></a>. |
| These callbacks will be invoked as part of the processing performed by |
| <a class="reference internal" href="#c.nx_eventhandler" title="nx_eventhandler"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_eventhandler()</span></code></a>.</p> |
| <dl class="c struct"> |
| <dt class="sig sig-object c" id="c.nx_callback_s"> |
| <span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_callback_s</span></span></span><a class="headerlink" href="#c.nx_callback_s" title="Permalink to this definition"></a><br /></dt> |
| <dd><div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">struct</span><span class="w"> </span><span class="nc">nx_callback_s</span> |
| <span class="p">{</span> |
| <span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="p">(</span><span class="o">*</span><span class="n">redraw</span><span class="p">)(</span><span class="n">NXWINDOW</span><span class="w"> </span><span class="n">hwnd</span><span class="p">,</span><span class="w"> </span><span class="n">FAR</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">nxgl_rect_s</span><span class="w"> </span><span class="o">*</span><span class="n">rect</span><span class="p">,</span> |
| <span class="w"> </span><span class="kt">bool</span><span class="w"> </span><span class="n">more</span><span class="p">,</span><span class="w"> </span><span class="n">FAR</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">arg</span><span class="p">);</span> |
| <span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="p">(</span><span class="o">*</span><span class="n">position</span><span class="p">)(</span><span class="n">NXWINDOW</span><span class="w"> </span><span class="n">hwnd</span><span class="p">,</span><span class="w"> </span><span class="n">FAR</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">nxgl_size_s</span><span class="w"> </span><span class="o">*</span><span class="n">size</span><span class="p">,</span> |
| <span class="w"> </span><span class="n">FAR</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">nxgl_point_s</span><span class="w"> </span><span class="o">*</span><span class="n">pos</span><span class="p">,</span> |
| <span class="w"> </span><span class="n">FAR</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">nxgl_rect_s</span><span class="w"> </span><span class="o">*</span><span class="n">bounds</span><span class="p">,</span> |
| <span class="w"> </span><span class="n">FAR</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">arg</span><span class="p">);</span> |
| <span class="cp">#ifdef CONFIG_NX_XYINPUT</span> |
| <span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="p">(</span><span class="o">*</span><span class="n">mousein</span><span class="p">)(</span><span class="n">NXWINDOW</span><span class="w"> </span><span class="n">hwnd</span><span class="p">,</span><span class="w"> </span><span class="n">FAR</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">nxgl_point_s</span><span class="w"> </span><span class="o">*</span><span class="n">pos</span><span class="p">,</span> |
| <span class="w"> </span><span class="kt">uint8_t</span><span class="w"> </span><span class="n">buttons</span><span class="p">,</span><span class="w"> </span><span class="n">FAR</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">arg</span><span class="p">);</span> |
| <span class="cp">#endif</span> |
| <span class="cp">#ifdef CONFIG_NX_KBD</span> |
| <span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="p">(</span><span class="o">*</span><span class="n">kbdin</span><span class="p">)(</span><span class="n">NXWINDOW</span><span class="w"> </span><span class="n">hwnd</span><span class="p">,</span><span class="w"> </span><span class="kt">uint8_t</span><span class="w"> </span><span class="n">nch</span><span class="p">,</span><span class="w"> </span><span class="n">FAR</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">uint8_t</span><span class="w"> </span><span class="o">*</span><span class="n">ch</span><span class="p">,</span><span class="w"> </span><span class="n">FAR</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">arg</span><span class="p">);</span> |
| <span class="cp">#endif</span> |
| <span class="p">};</span> |
| </pre></div> |
| </div> |
| </dd></dl> |
| |
| </section> |
| <section id="starting-the-nx-server"> |
| <h2>Starting the NX Server<a class="headerlink" href="#starting-the-nx-server" title="Permalink to this heading"></a></h2> |
| <p>The <em>NX Server</em> is a kernel daemon that receives and serializes graphic |
| commands. Before you can use the NX graphics system, you must first |
| start this daemon. There are two ways that this can be done:</p> |
| <ol class="arabic"> |
| <li><p>The NX server may be started in your board startup logic by simply |
| calling the function <code class="docutils literal notranslate"><span class="pre">nxmu_start()</span></code>. The board startup logic |
| usually resides the the <code class="docutils literal notranslate"><span class="pre">boards/arch/chip/board/src</span></code> directory. The |
| board startup logic can run automatically during the early system if |
| <code class="docutils literal notranslate"><span class="pre">CONFIG_BOARD_LATE_INITIALIZE</span></code> is defined in the configuration. Or, |
| the board startup logic can execute under control of the application |
| by calling <a class="reference internal" href="../../reference/user/13_boardctl.html#c.boardctl" title="boardctl"><code class="xref c c-func docutils literal notranslate"><span class="pre">boardctl()</span></code></a> as:</p> |
| <div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="n">boardctl</span><span class="p">(</span><span class="n">BOARDIOC_INIT</span><span class="p">,</span><span class="w"> </span><span class="n">arg</span><span class="p">)</span> |
| </pre></div> |
| </div> |
| <p>The board initialization logic will run in either case and the simple |
| call to <code class="docutils literal notranslate"><span class="pre">nxmu_start()</span></code> will start the NX server.</p> |
| </li> |
| <li><p>The NX server may also be started later by the application via |
| <a class="reference internal" href="../../reference/user/13_boardctl.html#c.boardctl" title="boardctl"><code class="xref c c-func docutils literal notranslate"><span class="pre">boardctl()</span></code></a> as:</p> |
| <div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="n">boardctl</span><span class="p">(</span><span class="n">BOARDIOC_NX_START</span><span class="p">,</span><span class="w"> </span><span class="n">arg</span><span class="p">)</span> |
| </pre></div> |
| </div> |
| </li> |
| </ol> |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nxmu_start"> |
| <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nxmu_start</span></span></span><span class="sig-paren">(</span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="n"><span class="pre">display</span></span>, <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="n"><span class="pre">plane</span></span><span class="sig-paren">)</span><span class="p"><span class="pre">;</span></span><a class="headerlink" href="#c.nxmu_start" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>Provides a wrapper function to |
| simplify and standardize the starting of the NX server.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>display</strong> – The display number to be served by this new NXMU instance.</p></li> |
| <li><p><strong>plane</strong> – The plane number to use to get information about the display geometry and color format.</p></li> |
| </ul> |
| </dd> |
| <dt class="field-even">Returns<span class="colon">:</span></dt> |
| <dd class="field-even"><p>Zero (<code class="docutils literal notranslate"><span class="pre">OK</span></code>) is returned on success. This indicates |
| that the NX server has been successfully started, is running, and |
| waiting to accept connections from NX clients. |
| A negated <code class="docutils literal notranslate"><span class="pre">errno</span></code> value is returned on failure. The <code class="docutils literal notranslate"><span class="pre">errno</span></code> value |
| indicates the nature of the failure.</p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| </section> |
| <section id="nx-server-callbacks"> |
| <h2>NX Server Callbacks<a class="headerlink" href="#nx-server-callbacks" title="Permalink to this heading"></a></h2> |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.redraw"> |
| <span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">redraw</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="n"><span class="pre">NXWINDOW</span></span></a><span class="w"> </span><span class="n"><span class="pre">hwnd</span></span>, <span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="nxgl.html#c.nxgl_rect_s" title="nxgl_rect_s"><span class="n"><span class="pre">nxgl_rect_s</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">rect</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n"><span class="pre">more</span></span>, <span class="pre">FAR</span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">arg</span></span><span class="sig-paren">)</span><span class="p"><span class="pre">;</span></span><a class="headerlink" href="#c.redraw" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>NX requests that the client re-draw the portion of the |
| window within with rectangle.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>hwnd</strong> – The handle created by <a class="reference internal" href="#c.nx_openwindow" title="nx_openwindow"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_openwindow()</span></code></a> or <a class="reference internal" href="#c.nx_requestbkgd" title="nx_requestbkgd"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_requestbkgd()</span></code></a></p></li> |
| <li><p><strong>rect</strong> – The rectangle that needs to be re-drawn (in window relative |
| coordinates)</p></li> |
| <li><p><strong>more</strong> – true: More re-draw requests will follow</p></li> |
| <li><p><strong>arg</strong> – User provided argument (see <a class="reference internal" href="#c.nx_openwindow" title="nx_openwindow"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_openwindow()</span></code></a>)</p></li> |
| </ul> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.position"> |
| <span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">position</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="n"><span class="pre">NXWINDOW</span></span></a><span class="w"> </span><span class="n"><span class="pre">hwnd</span></span>, <span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="nxgl.html#c.nxgl_size_s" title="nxgl_size_s"><span class="n"><span class="pre">nxgl_size_s</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">size</span></span>, <span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="nxgl.html#c.nxgl_point_s" title="nxgl_point_s"><span class="n"><span class="pre">nxgl_point_s</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">pos</span></span>, <span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="nxgl.html#c.nxgl_rect_s" title="nxgl_rect_s"><span class="n"><span class="pre">nxgl_rect_s</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">bounds</span></span>, <span class="pre">FAR</span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">arg</span></span><span class="sig-paren">)</span><span class="p"><span class="pre">;</span></span><a class="headerlink" href="#c.position" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>The size or position of the window has changed (or the |
| window was just created with zero size.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>hwnd</strong> – The handle created by <a class="reference internal" href="#c.nx_openwindow" title="nx_openwindow"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_openwindow()</span></code></a> or <a class="reference internal" href="#c.nx_requestbkgd" title="nx_requestbkgd"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_requestbkgd()</span></code></a></p></li> |
| <li><p><strong>size</strong> – The size of the window</p></li> |
| <li><p><strong>pos</strong> – The position of the upper left hand corner of the window on the |
| overall display</p></li> |
| <li><p><strong>bounds</strong> – The bounding rectangle that the describes the entire display</p></li> |
| <li><p><strong>arg</strong> – User provided argument (see <a class="reference internal" href="#c.nx_openwindow" title="nx_openwindow"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_openwindow()</span></code></a>)</p></li> |
| </ul> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.mousein"> |
| <span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">mousein</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="n"><span class="pre">NXWINDOW</span></span></a><span class="w"> </span><span class="n"><span class="pre">hwnd</span></span>, <span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="nxgl.html#c.nxgl_point_s" title="nxgl_point_s"><span class="n"><span class="pre">nxgl_point_s</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">pos</span></span>, <span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="n"><span class="pre">buttons</span></span>, <span class="pre">FAR</span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">arg</span></span><span class="sig-paren">)</span><span class="p"><span class="pre">;</span></span><a class="headerlink" href="#c.mousein" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>New mouse data is available for the window</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>hwnd</strong> – The handle created by <a class="reference internal" href="#c.nx_openwindow" title="nx_openwindow"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_openwindow()</span></code></a> or <a class="reference internal" href="#c.nx_requestbkgd" title="nx_requestbkgd"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_requestbkgd()</span></code></a></p></li> |
| <li><p><strong>pos</strong> – The (x,y) position of the mouse</p></li> |
| <li><p><strong>buttons</strong> – See <code class="docutils literal notranslate"><span class="pre">NX_MOUSE_*</span></code> definitions</p></li> |
| <li><p><strong>arg</strong> – User provided argument (see <a class="reference internal" href="#c.nx_openwindow" title="nx_openwindow"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_openwindow()</span></code></a>)</p></li> |
| </ul> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c var"> |
| <dt class="sig sig-object c" id="c.kbdin"> |
| <span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">kbdin</span></span></span><span class="p"><span class="pre">)</span></span><span class="p"><span class="pre">(</span></span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="n"><span class="pre">NXWINDOW</span></span></a><span class="w"> </span><span class="n"><span class="pre">hwnd</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="n"><span class="pre">nch</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">ch</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">FAR</span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">arg</span></span><span class="p"><span class="pre">)</span></span><span class="p"><span class="pre">;</span></span><a class="headerlink" href="#c.kbdin" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>New keyboard/keypad data is available for the window.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Param hwnd<span class="colon">:</span></dt> |
| <dd class="field-odd"><p>The handle created by <a class="reference internal" href="#c.nx_openwindow" title="nx_openwindow"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_openwindow()</span></code></a> or <a class="reference internal" href="#c.nx_requestbkgd" title="nx_requestbkgd"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_requestbkgd()</span></code></a></p> |
| </dd> |
| <dt class="field-even">Param nch<span class="colon">:</span></dt> |
| <dd class="field-even"><p>The number of characters that are available in ch[]</p> |
| </dd> |
| <dt class="field-odd">Param ch<span class="colon">:</span></dt> |
| <dd class="field-odd"><p>The array of characters</p> |
| </dd> |
| <dt class="field-even">Param arg<span class="colon">:</span></dt> |
| <dd class="field-even"><p>User provided argument (see <a class="reference internal" href="#c.nx_openwindow" title="nx_openwindow"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_openwindow()</span></code></a>)</p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c var"> |
| <dt class="sig sig-object c" id="c.event"> |
| <span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">event</span></span></span><span class="p"><span class="pre">)</span></span><span class="p"><span class="pre">(</span></span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="n"><span class="pre">NXWINDOW</span></span></a><span class="w"> </span><span class="n"><span class="pre">hwnd</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="k"><span class="pre">enum</span></span><span class="w"> </span><span class="n"><span class="pre">nx_event_e</span></span><span class="w"> </span><span class="n"><span class="pre">event</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">FAR</span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">arg1</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">FAR</span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">arg2</span></span><span class="p"><span class="pre">)</span></span><span class="p"><span class="pre">;</span></span><a class="headerlink" href="#c.event" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>This callback is used to communicate server events to the window listener.</p> |
| <ul class="simple"> |
| <li><dl class="simple"> |
| <dt><code class="docutils literal notranslate"><span class="pre">NXEVENT_BLOCKED</span></code>: Window messages are blocked.</dt><dd><p>This callback is the response from <a class="reference internal" href="#c.nx_block" title="nx_block"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_block()</span></code></a>, |
| <a class="reference internal" href="nxtk.html#c.nxtk_block" title="nxtk_block"><code class="xref c c-func docutils literal notranslate"><span class="pre">nxtk_block()</span></code></a>. Those blocking interfaces are used |
| to assure that no further messages are directed to the window. |
| Receipt of the blocked callback signifies that (1) there are no |
| further pending callbacks and (2) that the window is now <em>defunct</em> |
| and will receive no further callbacks. This callback supports |
| coordinated destruction of a window. In the multi-user mode, the |
| client window logic must stay intact until all of the queued |
| callbacks are processed. Then the window may be safely closed. |
| Closing the window prior with pending callbacks can lead to bad |
| behavior when the callback is executed.</p> |
| </dd> |
| </dl> |
| </li> |
| <li><dl class="simple"> |
| <dt><code class="docutils literal notranslate"><span class="pre">NXEVENT_SYNCHED</span></code>: Synchronization handshake</dt><dd><p>This completes the handshake started by |
| <a class="reference internal" href="#c.nx_synch" title="nx_synch"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_synch()</span></code></a>, or <a class="reference internal" href="nxtk.html#c.nxtk_synch" title="nxtk_synch"><code class="xref c c-func docutils literal notranslate"><span class="pre">nxtk_synch()</span></code></a>. |
| Those interfaces send a synchronization messages to the NX server |
| which responds with this event. The sleeping client is awakened and |
| continues graphics processing, completing the handshake. Due to the |
| highly asynchronous nature of client-server communications, |
| synchronization is sometimes necessary to assure that the client and |
| server are working together properly.</p> |
| </dd> |
| </dl> |
| </li> |
| </ul> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Param hwnd<span class="colon">:</span></dt> |
| <dd class="field-odd"><p>TWindow handle of window receiving the event</p> |
| </dd> |
| <dt class="field-even">Param event<span class="colon">:</span></dt> |
| <dd class="field-even"><p>The server event</p> |
| </dd> |
| <dt class="field-odd">Param arg1<span class="colon">:</span></dt> |
| <dd class="field-odd"><p>User provided argument (see <a class="reference internal" href="#c.nx_openwindow" title="nx_openwindow"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_openwindow()</span></code></a>, |
| <a class="reference internal" href="#c.nx_requestbkgd" title="nx_requestbkgd"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_requestbkgd()</span></code></a>, or <a class="reference internal" href="nxtk.html#c.nxtk_opentoolbar" title="nxtk_opentoolbar"><code class="xref c c-func docutils literal notranslate"><span class="pre">nxtk_opentoolbar()</span></code></a>)</p> |
| </dd> |
| <dt class="field-even">Param arg2<span class="colon">:</span></dt> |
| <dd class="field-even"><p>TUser provided argument (see <a class="reference internal" href="#c.nx_block" title="nx_block"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_block()</span></code></a>, <a class="reference internal" href="nxtk.html#c.nxtk_block" title="nxtk_block"><code class="xref c c-func docutils literal notranslate"><span class="pre">nxtk_block()</span></code></a>, |
| <a class="reference internal" href="#c.nx_synch" title="nx_synch"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_synch()</span></code></a>, or <a class="reference internal" href="nxtk.html#c.nxtk_synch" title="nxtk_synch"><code class="xref c c-func docutils literal notranslate"><span class="pre">nxtk_synch()</span></code></a>)</p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c macro"> |
| <dt class="sig sig-object c" id="c.nx_run"> |
| <span class="sig-name descname"><span class="n"><span class="pre">nx_run</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">fb</span></span><span class="sig-paren">)</span><a class="headerlink" href="#c.nx_run" title="Permalink to this definition"></a><br /></dt> |
| <dd><div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cp">#define nx_run(fb) nx_runinstance(NX_DEFAULT_SERVER_MQNAME, dev)</span> |
| </pre></div> |
| </div> |
| </dd></dl> |
| |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nx_runinstance"> |
| <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_runinstance</span></span></span><span class="sig-paren">(</span><span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">mqname</span></span>, <span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="n"><span class="pre">fb_vtable_s</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">fb</span></span><span class="sig-paren">)</span><a class="headerlink" href="#c.nx_runinstance" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>This is the server entry point. It does not return; the |
| calling thread is dedicated to supporting NX server.</p> |
| <p>NOTE that multiple instances of the NX server may run at the same time, |
| with different callback and message queue names. <code class="docutils literal notranslate"><span class="pre">nx_run()</span></code> is simply |
| a macro that can be used when only one server instance is required. In |
| that case, a default server name is used.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>mqname</strong> – The name for the server incoming message queue</p></li> |
| <li><p><strong>dev</strong> – Framebuffer or LCD driver “object” to be used</p></li> |
| </ul> |
| </dd> |
| <dt class="field-even">Returns<span class="colon">:</span></dt> |
| <dd class="field-even"><p>This function usually does not return. If it does |
| return, it will return <code class="docutils literal notranslate"><span class="pre">ERROR</span></code> and <code class="docutils literal notranslate"><span class="pre">errno</span></code> will be set |
| appropriately.</p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c macro"> |
| <dt class="sig sig-object c" id="c.nx_connect"> |
| <span class="sig-name descname"><span class="n"><span class="pre">nx_connect</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">cb</span></span><span class="sig-paren">)</span><a class="headerlink" href="#c.nx_connect" title="Permalink to this definition"></a><br /></dt> |
| <dd><div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cp">#define nx_connect(cb) nx_connectinstance(NX_DEFAULT_SERVER_MQNAME)</span> |
| </pre></div> |
| </div> |
| </dd></dl> |
| |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nx_connectinstance"> |
| <a class="reference internal" href="#c.NXHANDLE" title="NXHANDLE"><span class="n"><span class="pre">NXHANDLE</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_connectinstance</span></span></span><span class="sig-paren">(</span><span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">svrmqname</span></span><span class="sig-paren">)</span><span class="p"><span class="pre">;</span></span><a class="headerlink" href="#c.nx_connectinstance" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>Open a connection from a client to the NX server. One |
| one client connection is normally needed per thread as each connection |
| can host multiple windows.</p> |
| <p>NOTES:</p> |
| <ul class="simple"> |
| <li><p>This function returns before the connection is fully instantiated. it |
| is necessary to wait for the connection event before using the |
| returned handle.</p></li> |
| <li><p>Multiple instances of the NX server may run at the same time, each |
| with different message queue names.</p></li> |
| <li><p><code class="docutils literal notranslate"><span class="pre">nx_connect()</span></code> is simply a macro that can be used when only one |
| server instance is required. In that case, a default server name is |
| used.</p></li> |
| </ul> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>svrmqname</strong> – The name for the server incoming message queue</p></li> |
| </ul> |
| </dd> |
| <dt class="field-even">Returns<span class="colon">:</span></dt> |
| <dd class="field-even"><p>Success: A non-NULL handle used with subsequent NX accesses |
| Failure: NULL is returned and errno is set appropriately.</p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nx_disconnect"> |
| <span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_disconnect</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXHANDLE" title="NXHANDLE"><span class="n"><span class="pre">NXHANDLE</span></span></a><span class="w"> </span><span class="n"><span class="pre">handle</span></span><span class="sig-paren">)</span><a class="headerlink" href="#c.nx_disconnect" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>Disconnect a client from the NX server and/or free |
| resources reserved by <a class="reference internal" href="#c.nx_connect" title="nx_connect"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_connect()</span></code></a>/c:func:<cite>nx_connectinstance</cite>.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>handle</strong> – The handle returned by <a class="reference internal" href="#c.nx_connectinstance" title="nx_connectinstance"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_connectinstance()</span></code></a>.</p></li> |
| </ul> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nx_eventhandler"> |
| <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_eventhandler</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXHANDLE" title="NXHANDLE"><span class="n"><span class="pre">NXHANDLE</span></span></a><span class="w"> </span><span class="n"><span class="pre">handle</span></span><span class="sig-paren">)</span><span class="p"><span class="pre">;</span></span><a class="headerlink" href="#c.nx_eventhandler" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>The client code must call this function periodically to |
| process incoming messages from the server. If <code class="docutils literal notranslate"><span class="pre">CONFIG_NX_BLOCKING</span></code> is |
| defined, then this function not return until a server message is |
| received.</p> |
| <p>When <code class="docutils literal notranslate"><span class="pre">CONFIG_NX_BLOCKING</span></code> is not defined, the client must exercise |
| caution in the looping to assure that it does not eat up all of the CPU |
| bandwidth calling nx_eventhandler repeatedly. |
| <code class="docutils literal notranslate"><span class="pre">`nx_eventnotify()</span></code> <#nxeventnotify>`__ may be called to get a signal |
| event whenever a new incoming server event is available.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>handle</strong> – The handle returned by <code class="docutils literal notranslate"><span class="pre">`nx_connect()</span></code> <#nxconnectinstance>`__.</p></li> |
| </ul> |
| </dd> |
| <dt class="field-even">Returns<span class="colon">:</span></dt> |
| <dd class="field-even"><p><ul class="simple"> |
| <li><p><code class="docutils literal notranslate"><span class="pre">OK</span></code>: No errors occurred. If <code class="docutils literal notranslate"><span class="pre">CONFIG_NX_BLOCKING</span></code> is defined, |
| then one or more server messages were processed.</p></li> |
| <li><p><code class="docutils literal notranslate"><span class="pre">ERROR</span></code>: An error occurred and <code class="docutils literal notranslate"><span class="pre">errno</span></code> has been set |
| appropriately. Of particular interest, it will return |
| <code class="docutils literal notranslate"><span class="pre">errno</span> <span class="pre">==</span> <span class="pre">EHOSTDOWN</span></code> when the server is disconnected. After that |
| event, the handle can no longer be used.</p></li> |
| </ul> |
| </p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nx_eventnotify"> |
| <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_eventnotify</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXHANDLE" title="NXHANDLE"><span class="n"><span class="pre">NXHANDLE</span></span></a><span class="w"> </span><span class="n"><span class="pre">handle</span></span>, <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="n"><span class="pre">signo</span></span><span class="sig-paren">)</span><span class="p"><span class="pre">;</span></span><a class="headerlink" href="#c.nx_eventnotify" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>Rather than calling <a class="reference internal" href="#c.nx_eventhandler" title="nx_eventhandler"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_eventhandler()</span></code></a> periodically, the client may |
| register to receive a signal when a server event is available. The |
| client can then call :c:func:nx_eventhandler` only |
| when incoming events are available.</p> |
| <p>The underlying implementation used <code class="docutils literal notranslate"><span class="pre">mq_notifiy()</span></code> and, as a result, |
| the client must observe the rules for using <code class="docutils literal notranslate"><span class="pre">mq_notifiy()</span></code>:</p> |
| <ul class="simple"> |
| <li><p>Only one event is signalled. Upon receipt of the signal, if the |
| client wishes further notifications, it must call |
| <code class="docutils literal notranslate"><span class="pre">nx_eventnotify()</span></code> again.</p></li> |
| <li><p>The signal will only be issued when the message queue transitions |
| from empty to not empty.</p></li> |
| </ul> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>handle</strong> – The handle returned by <code class="docutils literal notranslate"><span class="pre">`nx_connect()</span></code> <#nxconnectinstance>`__.</p></li> |
| </ul> |
| </dd> |
| <dt class="field-even">Returns<span class="colon">:</span></dt> |
| <dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">OK</span></code> on success; <code class="docutils literal notranslate"><span class="pre">ERROR</span></code> on failure with |
| <code class="docutils literal notranslate"><span class="pre">errno</span></code> set appropriately</p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nx_block"> |
| <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_block</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="n"><span class="pre">NXWINDOW</span></span></a><span class="w"> </span><span class="n"><span class="pre">hwnd</span></span>, <span class="pre">FAR</span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">arg</span></span><span class="sig-paren">)</span><span class="p"><span class="pre">;</span></span><a class="headerlink" href="#c.nx_block" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>The response to this function call is two things: (1) |
| any queued callback messages to the window are ‘blocked’ and then (2) |
| also subsequent window messaging is blocked.</p> |
| <p>The <code class="docutils literal notranslate"><span class="pre">event</span></code> callback with the <code class="docutils literal notranslate"><span class="pre">NXEVENT_BLOCKED</span></code> event is the |
| response from <code class="docutils literal notranslate"><span class="pre">nx_block()</span></code>. This blocking interface is used to assure |
| that no further messages are are directed to the window. Receipt of the |
| <code class="docutils literal notranslate"><span class="pre">NXEVENT_BLOCKED</span></code> event signifies that (1) there are no further |
| pending callbacks and (2) that the window is now <em>defunct</em> and will |
| receive no further callbacks.</p> |
| <p>This callback supports coordinated destruction of a window. The client |
| window logic must stay intact until all of the queued callbacks are |
| processed. Then the window may be safely closed. Closing the window |
| prior with pending callbacks can lead to bad behavior when the callback |
| is executed.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>wnd</strong> – The window to be blocked</p></li> |
| <li><p><strong>arg</strong> – An argument that will accompany the block messages (This is <code class="docutils literal notranslate"><span class="pre">arg2</span></code> in |
| the event callback).</p></li> |
| </ul> |
| </dd> |
| <dt class="field-even">Returns<span class="colon">:</span></dt> |
| <dd class="field-even"><p>OK on success; ERROR on failure with errno set |
| appropriately.</p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nx_synch"> |
| <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_synch</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="n"><span class="pre">NXWINDOW</span></span></a><span class="w"> </span><span class="n"><span class="pre">hwnd</span></span>, <span class="pre">FAR</span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">arg</span></span><span class="sig-paren">)</span><span class="p"><span class="pre">;</span></span><a class="headerlink" href="#c.nx_synch" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>This interface can be used to synchronize the window |
| client with the NX server. It really just implements an <em>echo</em>: A synch |
| message is sent from the window client to the server which then responds |
| immediately by sending the <code class="docutils literal notranslate"><span class="pre">NXEVENT_SYNCHED</span></code> back to the windows |
| client.</p> |
| <p>Due to the highly asynchronous nature of client-server communications, |
| <code class="docutils literal notranslate"><span class="pre">nx_synch()</span></code> is sometimes necessary to assure that the client and |
| server are fully synchronized in time.</p> |
| <p>Usage by the window client might be something like this:</p> |
| <div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">extern</span><span class="w"> </span><span class="kt">bool</span><span class="w"> </span><span class="n">g_synched</span><span class="p">;</span> |
| <span class="k">extern</span><span class="w"> </span><span class="n">sem_t</span><span class="w"> </span><span class="n">g_synch_sem</span><span class="p">;</span> |
| |
| <span class="n">g_synched</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">false</span><span class="p">;</span> |
| <span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nx_synch</span><span class="p">(</span><span class="n">hwnd</span><span class="p">,</span><span class="w"> </span><span class="n">handle</span><span class="p">);</span> |
| <span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span> |
| <span class="w"> </span><span class="p">{</span> |
| <span class="w"> </span><span class="o">--</span><span class="w"> </span><span class="n">Handle</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">error</span><span class="w"> </span><span class="o">--</span> |
| <span class="w"> </span><span class="p">}</span> |
| |
| <span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">g_synched</span><span class="p">)</span> |
| <span class="w"> </span><span class="p">{</span> |
| <span class="w"> </span><span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sem_wait</span><span class="p">(</span><span class="o">&</span><span class="n">g_sync_sem</span><span class="p">);</span> |
| <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span> |
| <span class="w"> </span><span class="p">{</span> |
| <span class="w"> </span><span class="o">--</span><span class="w"> </span><span class="n">Handle</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">error</span><span class="w"> </span><span class="o">--</span> |
| <span class="w"> </span><span class="p">}</span> |
| <span class="w"> </span><span class="p">}</span> |
| </pre></div> |
| </div> |
| <p>When the window listener thread receives the <code class="docutils literal notranslate"><span class="pre">NXEVENT_SYNCHED</span></code> event, |
| it would set <code class="docutils literal notranslate"><span class="pre">g_synched</span></code> to <code class="docutils literal notranslate"><span class="pre">true</span></code> and post <code class="docutils literal notranslate"><span class="pre">g_synch_sem</span></code>, waking |
| up the above loop.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>wnd</strong> – The window to be synched</p></li> |
| <li><p><strong>arg</strong> – An argument that will accompany the synch messages (This is <code class="docutils literal notranslate"><span class="pre">arg2</span></code> in the event callback).</p></li> |
| </ul> |
| </dd> |
| <dt class="field-even">Returns<span class="colon">:</span></dt> |
| <dd class="field-even"><p>OK on success; ERROR on failure with errno set |
| appropriately</p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nx_openwindow"> |
| <a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="n"><span class="pre">NXWINDOW</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_openwindow</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXHANDLE" title="NXHANDLE"><span class="n"><span class="pre">NXHANDLE</span></span></a><span class="w"> </span><span class="n"><span class="pre">handle</span></span>, <span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="n"><span class="pre">flags</span></span>, <span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="#c.nx_callback_s" title="nx_callback_s"><span class="n"><span class="pre">nx_callback_s</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">cb</span></span>, <span class="pre">FAR</span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">arg</span></span><span class="sig-paren">)</span><span class="p"><span class="pre">;</span></span><a class="headerlink" href="#c.nx_openwindow" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>Create a new window.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>handle</strong> – The handle returned by <code class="docutils literal notranslate"><span class="pre">`nx_connect()</span></code> <#nxconnectinstance>`__.</p></li> |
| <li><p><strong>flags</strong> – Optional flags. These include: |
| - <code class="docutils literal notranslate"><span class="pre">NXBE_WINDOW_RAMBACKED</span></code>: Creates a RAM backed window. This option is only valid if <code class="docutils literal notranslate"><span class="pre">CONFIG_NX_RAMBACKED</span></code> is enabled. |
| - <code class="docutils literal notranslate"><span class="pre">NXBE_WINDOW_HIDDEN</span></code>: The window is create in the HIDDEN state and can be made visible later with <code class="docutils literal notranslate"><span class="pre">nx_setvisibility()</span></code>.</p></li> |
| <li><p><strong>cb</strong> – Callbacks used to process window events</p></li> |
| <li><p><strong>arg</strong> – User provided value that will be returned with NX callbacks.</p></li> |
| </ul> |
| </dd> |
| <dt class="field-even">Returns<span class="colon">:</span></dt> |
| <dd class="field-even"><p>Success: A non-NULL handle used with subsequent NX accesses |
| Failure: NULL is returned and errno is set appropriately.</p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nx_closewindow"> |
| <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_closewindow</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="n"><span class="pre">NXWINDOW</span></span></a><span class="w"> </span><span class="n"><span class="pre">hwnd</span></span><span class="sig-paren">)</span><a class="headerlink" href="#c.nx_closewindow" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>Destroy a window created by <a class="reference internal" href="#c.nx_openwindow" title="nx_openwindow"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_openwindow()</span></code></a> window.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>hwnd</strong> – The handle returned by <code class="docutils literal notranslate"><span class="pre">`nx_openwindow()</span></code> <#nxopenwindow>`__ that |
| identifies the window to be destroyed. This handle must not have been |
| one returned by <code class="docutils literal notranslate"><span class="pre">`nx_requestbkgd()</span></code> <#nxrequestbkgd>`__.</p></li> |
| </ul> |
| </dd> |
| <dt class="field-even">Returns<span class="colon">:</span></dt> |
| <dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">OK</span></code> on success; <code class="docutils literal notranslate"><span class="pre">ERROR</span></code> on failure with |
| <code class="docutils literal notranslate"><span class="pre">errno</span></code> set appropriately</p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nx_requestbkgd"> |
| <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_requestbkgd</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXHANDLE" title="NXHANDLE"><span class="n"><span class="pre">NXHANDLE</span></span></a><span class="w"> </span><span class="n"><span class="pre">handle</span></span>, <span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="#c.nx_callback_s" title="nx_callback_s"><span class="n"><span class="pre">nx_callback_s</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">cb</span></span>, <span class="pre">FAR</span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">arg</span></span><span class="sig-paren">)</span><span class="p"><span class="pre">;</span></span><a class="headerlink" href="#c.nx_requestbkgd" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>NX normally controls a separate window called the |
| background window. It repaints the window as necessary using only a |
| solid color fill. The background window always represents the entire |
| screen and is always below other windows. It is useful for an |
| application to control the background window in the following |
| conditions:</p> |
| <ul class="simple"> |
| <li><p>If you want to implement a windowless solution. The single screen can |
| be used to create a truly simple graphic environment.</p></li> |
| <li><p>When you want more on the background than a solid color. For example, |
| if you want an image in the background, or animations in the |
| background, or live video, etc.</p></li> |
| </ul> |
| <p>This API only requests the handle of the background window. That handle |
| will be returned asynchronously in a subsequent position and redraw |
| callbacks.</p> |
| <p>Cautions:</p> |
| <ul class="simple"> |
| <li><p>The following should never be called using the background window. |
| They are guaranteed to cause severe crashes: <a class="reference internal" href="#c.nx_setposition" title="nx_setposition"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_setposition()</span></code></a>, |
| <a class="reference internal" href="#c.nx_setsize" title="nx_setsize"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_setsize()</span></code></a>, <a class="reference internal" href="#c.nx_raise" title="nx_raise"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_raise()</span></code></a>, or <a class="reference internal" href="#c.nx_lower" title="nx_lower"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_lower()</span></code></a>, |
| <a class="reference internal" href="#c.nx_modal" title="nx_modal"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_modal()</span></code></a>, <a class="reference internal" href="#c.nx_setvisibility" title="nx_setvisibility"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_setvisibility()</span></code></a>.</p></li> |
| <li><p>Neither <a class="reference internal" href="#c.nx_requestbkgd" title="nx_requestbkgd"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_requestbkgd()</span></code></a> nor <a class="reference internal" href="#c.nx_releasebkgd" title="nx_releasebkgd"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_releasebkgd()</span></code></a> |
| should be called more than once. Multiple instances of the |
| background window are not supported.</p></li> |
| </ul> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>handle</strong> – The handle returned by <code class="docutils literal notranslate"><span class="pre">`nx_connect()</span></code> <#nxconnectinstance>`__.</p></li> |
| <li><p><strong>cb</strong> – Callbacks to use for processing background window events</p></li> |
| <li><p><strong>arg</strong> – User provided argument (see <code class="docutils literal notranslate"><span class="pre">`nx_openwindow()</span></code> <#nxopenwindow>`__)</p></li> |
| </ul> |
| </dd> |
| <dt class="field-even">Returns<span class="colon">:</span></dt> |
| <dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">OK</span></code> on success; <code class="docutils literal notranslate"><span class="pre">ERROR</span></code> on failure with |
| <code class="docutils literal notranslate"><span class="pre">errno</span></code> set appropriately</p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nx_releasebkgd"> |
| <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_releasebkgd</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="n"><span class="pre">NXWINDOW</span></span></a><span class="w"> </span><span class="n"><span class="pre">hwnd</span></span><span class="sig-paren">)</span><a class="headerlink" href="#c.nx_releasebkgd" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>Release the background window previously acquired using |
| <a class="reference internal" href="#c.nx_requestbkgd" title="nx_requestbkgd"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_requestbkgd()</span></code></a> and return control of the background to NX.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>handle</strong> – The handle returned indirectly by <a class="reference internal" href="#c.nx_requestbkgd" title="nx_requestbkgd"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_requestbkgd()</span></code></a>. |
| This handle must not have been one created by <a class="reference internal" href="#c.nx_openwindow" title="nx_openwindow"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_openwindow()</span></code></a>.</p></li> |
| </ul> |
| </dd> |
| <dt class="field-even">Returns<span class="colon">:</span></dt> |
| <dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">OK</span></code> on success; <code class="docutils literal notranslate"><span class="pre">ERROR</span></code> on failure with <code class="docutils literal notranslate"><span class="pre">errno</span></code> set appropriately</p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nx_getposition"> |
| <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_getposition</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="n"><span class="pre">NXWINDOW</span></span></a><span class="w"> </span><span class="n"><span class="pre">hwnd</span></span><span class="sig-paren">)</span><a class="headerlink" href="#c.nx_getposition" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>Request the position and size information for the |
| selected window. The values will be return asynchronously through the |
| client callback function pointer.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>hwnd</strong> – The handle returned by <a class="reference internal" href="#c.nx_openwindow" title="nx_openwindow"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_openwindow()</span></code></a> or |
| <a class="reference internal" href="#c.nx_requestbkgd" title="nx_requestbkgd"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_requestbkgd()</span></code></a>.</p></li> |
| </ul> |
| </dd> |
| <dt class="field-even">Returns<span class="colon">:</span></dt> |
| <dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">OK</span></code> on success; <code class="docutils literal notranslate"><span class="pre">ERROR</span></code> on failure with <code class="docutils literal notranslate"><span class="pre">errno</span></code> set appropriately</p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nx_setposition"> |
| <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_setposition</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="n"><span class="pre">NXWINDOW</span></span></a><span class="w"> </span><span class="n"><span class="pre">hwnd</span></span>, <span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="nxgl.html#c.nxgl_point_s" title="nxgl_point_s"><span class="n"><span class="pre">nxgl_point_s</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">pos</span></span><span class="sig-paren">)</span><a class="headerlink" href="#c.nx_setposition" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>Set the position and size for the selected window.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>hwnd</strong> – The handle returned by <a class="reference internal" href="#c.nx_openwindow" title="nx_openwindow"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_openwindow()</span></code></a>. This |
| handle must not have been created by <a class="reference internal" href="#c.nx_requestbkgd" title="nx_requestbkgd"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_requestbkgd()</span></code></a>.</p></li> |
| <li><p><strong>pos</strong> – The new position of the window</p></li> |
| </ul> |
| </dd> |
| <dt class="field-even">Returns<span class="colon">:</span></dt> |
| <dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">OK</span></code> on success; <code class="docutils literal notranslate"><span class="pre">ERROR</span></code> on failure with |
| <code class="docutils literal notranslate"><span class="pre">errno</span></code> set appropriately</p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nx_setsize"> |
| <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_setsize</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="n"><span class="pre">NXWINDOW</span></span></a><span class="w"> </span><span class="n"><span class="pre">hwnd</span></span>, <span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="nxgl.html#c.nxgl_size_s" title="nxgl_size_s"><span class="n"><span class="pre">nxgl_size_s</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">size</span></span><span class="sig-paren">)</span><a class="headerlink" href="#c.nx_setsize" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>Set the size of the selected window.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>hwnd</strong> – The handle returned by <a class="reference internal" href="#c.nx_openwindow" title="nx_openwindow"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_openwindow()</span></code></a>. This |
| handle must not have been created by <a class="reference internal" href="#c.nx_requestbkgd" title="nx_requestbkgd"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_requestbkgd()</span></code></a>.</p></li> |
| <li><p><strong>size</strong> – The new size of the window (in pixels).</p></li> |
| </ul> |
| </dd> |
| <dt class="field-even">Returns<span class="colon">:</span></dt> |
| <dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">OK</span></code> on success; <code class="docutils literal notranslate"><span class="pre">ERROR</span></code> on failure with |
| <code class="docutils literal notranslate"><span class="pre">errno</span></code> set appropriately</p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nx_raise"> |
| <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_raise</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="n"><span class="pre">NXWINDOW</span></span></a><span class="w"> </span><span class="n"><span class="pre">hwnd</span></span><span class="sig-paren">)</span><a class="headerlink" href="#c.nx_raise" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>Bring the specified window to the top of the display.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>hwnd</strong> – The handle returned by <a class="reference internal" href="#c.nx_openwindow" title="nx_openwindow"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_openwindow()</span></code></a>. This |
| handle must not have been created by <a class="reference internal" href="#c.nx_requestbkgd" title="nx_requestbkgd"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_requestbkgd()</span></code></a>.</p></li> |
| </ul> |
| </dd> |
| <dt class="field-even">Returns<span class="colon">:</span></dt> |
| <dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">OK</span></code> on success; <code class="docutils literal notranslate"><span class="pre">ERROR</span></code> on failure with <code class="docutils literal notranslate"><span class="pre">errno</span></code> set appropriately</p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nx_lower"> |
| <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_lower</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="n"><span class="pre">NXWINDOW</span></span></a><span class="w"> </span><span class="n"><span class="pre">hwnd</span></span><span class="sig-paren">)</span><span class="p"><span class="pre">;</span></span><a class="headerlink" href="#c.nx_lower" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>Lower the specified window to the bottom of the display.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>hwnd</strong> – The handle returned by <a class="reference internal" href="#c.nx_openwindow" title="nx_openwindow"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_openwindow()</span></code></a>. This |
| handle must not have been created by <a class="reference internal" href="#c.nx_requestbkgd" title="nx_requestbkgd"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_requestbkgd()</span></code></a>.</p></li> |
| </ul> |
| </dd> |
| <dt class="field-even">Returns<span class="colon">:</span></dt> |
| <dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">OK</span></code> on success; <code class="docutils literal notranslate"><span class="pre">ERROR</span></code> on failure with |
| <code class="docutils literal notranslate"><span class="pre">errno</span></code> set appropriately</p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nx_modal"> |
| <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_modal</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="n"><span class="pre">NXWINDOW</span></span></a><span class="w"> </span><span class="n"><span class="pre">hwnd</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n"><span class="pre">modal</span></span><span class="sig-paren">)</span><a class="headerlink" href="#c.nx_modal" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>May be used to either (1) raise a window to the top of |
| the display and select modal behavior, or (2) disable modal behavior.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>hwnd</strong> – The handle returned by <a class="reference internal" href="#c.nx_openwindow" title="nx_openwindow"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_openwindow()</span></code></a>. This |
| handle must not have been created by <a class="reference internal" href="#c.nx_requestbkgd" title="nx_requestbkgd"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_requestbkgd()</span></code></a>.</p></li> |
| <li><p><strong>modal</strong> – True: enter modal state; False: leave modal state</p></li> |
| </ul> |
| </dd> |
| <dt class="field-even">Returns<span class="colon">:</span></dt> |
| <dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">OK</span></code> on success; <code class="docutils literal notranslate"><span class="pre">ERROR</span></code> on failure with |
| <code class="docutils literal notranslate"><span class="pre">errno</span></code> set appropriately</p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nx_setvisibility"> |
| <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_setvisibility</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="n"><span class="pre">NXWINDOW</span></span></a><span class="w"> </span><span class="n"><span class="pre">hwnd</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n"><span class="pre">hide</span></span><span class="sig-paren">)</span><span class="p"><span class="pre">;</span></span><a class="headerlink" href="#c.nx_setvisibility" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>Select if the window is visible or hidden. A hidden |
| window is still present and will update normally, but will not be |
| visible on the display until it is unhidden.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>hwnd</strong> – The handle returned by <a class="reference internal" href="#c.nx_openwindow" title="nx_openwindow"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_openwindow()</span></code></a>. This |
| handle must not have been created by <a class="reference internal" href="#c.nx_requestbkgd" title="nx_requestbkgd"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_requestbkgd()</span></code></a>.</p></li> |
| <li><p><strong>hide</strong> – True: Window will be hidden; false: Window will be visible</p></li> |
| </ul> |
| </dd> |
| <dt class="field-even">Returns<span class="colon">:</span></dt> |
| <dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">OK</span></code> on success; <code class="docutils literal notranslate"><span class="pre">ERROR</span></code> on failure with |
| <code class="docutils literal notranslate"><span class="pre">errno</span></code> set appropriately</p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nx_ishidden"> |
| <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_ishidden</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="n"><span class="pre">NXWINDOW</span></span></a><span class="w"> </span><span class="n"><span class="pre">hwnd</span></span><span class="sig-paren">)</span><span class="p"><span class="pre">;</span></span><a class="headerlink" href="#c.nx_ishidden" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>Return true if the window is hidden.</p> |
| <p><strong>NOTE</strong>: There will be a delay between the time that the visibility of |
| the window is changed via <code class="xref c c-func docutils literal notranslate"><span class="pre">nx_setvisibily()</span></code> |
| before that new setting is reported by <a class="reference internal" href="#c.nx_ishidden" title="nx_ishidden"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_ishidden()</span></code></a>. <code class="docutils literal notranslate"><span class="pre">nx_synch()</span></code> |
| may be used if temporal synchronization is required.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>hwnd</strong> – The handle returned by <a class="reference internal" href="#c.nx_openwindow" title="nx_openwindow"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_openwindow()</span></code></a> that |
| identifies the window to be queried.</p></li> |
| </ul> |
| </dd> |
| <dt class="field-even">Returns<span class="colon">:</span></dt> |
| <dd class="field-even"><p><em>True</em>: the window is hidden, <em>false</em>: the window is |
| visible</p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nx_fill"> |
| <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_fill</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="n"><span class="pre">NXWINDOW</span></span></a><span class="w"> </span><span class="n"><span class="pre">hwnd</span></span>, <span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="nxgl.html#c.nxgl_rect_s" title="nxgl_rect_s"><span class="n"><span class="pre">nxgl_rect_s</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">rect</span></span>, <a class="reference internal" href="nxgl.html#c.nxgl_mxpixel_t" title="nxgl_mxpixel_t"><span class="n"><span class="pre">nxgl_mxpixel_t</span></span></a><span class="w"> </span><span class="n"><span class="pre">color</span></span><span class="p"><span class="pre">[</span></span><span class="n"><span class="pre">CONFIG_NX_NPLANES</span></span><span class="p"><span class="pre">]</span></span><span class="sig-paren">)</span><span class="p"><span class="pre">;</span></span><a class="headerlink" href="#c.nx_fill" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>Fill the specified rectangle in the window with the |
| specified color.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>hwnd</strong> – The handle returned by <code class="docutils literal notranslate"><span class="pre">`nx_openwindow()</span></code> <#nxopenwindow>`__ or |
| <code class="docutils literal notranslate"><span class="pre">`nx_requestbkgd()</span></code> <#nxrequestbkgd>`__</p></li> |
| <li><p><strong>rect</strong> – The location to be filled</p></li> |
| <li><p><strong>color</strong> – The color to use in the fill</p></li> |
| </ul> |
| </dd> |
| <dt class="field-even">Returns<span class="colon">:</span></dt> |
| <dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">OK</span></code> on success; <code class="docutils literal notranslate"><span class="pre">ERROR</span></code> on failure with |
| <code class="docutils literal notranslate"><span class="pre">errno</span></code> set appropriately</p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nx_getrectangle"> |
| <span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_getrectangle</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="n"><span class="pre">NXWINDOW</span></span></a><span class="w"> </span><span class="n"><span class="pre">hwnd</span></span>, <span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="nxgl.html#c.nxgl_rect_s" title="nxgl_rect_s"><span class="n"><span class="pre">nxgl_rect_s</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">rect</span></span>, <span class="kt"><span class="pre">unsigned</span></span><span class="w"> </span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="n"><span class="pre">plane</span></span>, <span class="pre">FAR</span><span class="w"> </span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">dest</span></span>, <span class="kt"><span class="pre">unsigned</span></span><span class="w"> </span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="n"><span class="pre">deststride</span></span><span class="sig-paren">)</span><span class="p"><span class="pre">;</span></span><a class="headerlink" href="#c.nx_getrectangle" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>Get the raw contents of graphic memory within a |
| rectangular region. NOTE: Since raw graphic memory is returned, the |
| returned memory content may be the memory of windows above this one and |
| may not necessarily belong to this window unless you assure that this is |
| the top window.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>hwnd</strong> – The handle returned by <a class="reference internal" href="#c.nx_openwindow" title="nx_openwindow"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_openwindow()</span></code></a> or |
| <a class="reference internal" href="#c.nx_requestbkgd" title="nx_requestbkgd"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_requestbkgd()</span></code></a></p></li> |
| <li><p><strong>rect</strong> – The location to be copied</p></li> |
| <li><p><strong>plane</strong> – Specifies the color plane to get from</p></li> |
| <li><p><strong>dest</strong> – The location to copy the memory region</p></li> |
| <li><p><strong>deststride</strong> – The width, in bytes, of the dest memory</p></li> |
| </ul> |
| </dd> |
| <dt class="field-even">Returns<span class="colon">:</span></dt> |
| <dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">OK</span></code> on success; <code class="docutils literal notranslate"><span class="pre">ERROR</span></code> on failure with |
| <code class="docutils literal notranslate"><span class="pre">errno</span></code> set appropriately</p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nx_filltrapezoid"> |
| <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_filltrapezoid</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="n"><span class="pre">NXWINDOW</span></span></a><span class="w"> </span><span class="n"><span class="pre">hwnd</span></span>, <span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="nxgl.html#c.nxgl_rect_s" title="nxgl_rect_s"><span class="n"><span class="pre">nxgl_rect_s</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">clip</span></span>, <span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="nxgl.html#c.nxgl_trapezoid_s" title="nxgl_trapezoid_s"><span class="n"><span class="pre">nxgl_trapezoid_s</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">trap</span></span>, <a class="reference internal" href="nxgl.html#c.nxgl_mxpixel_t" title="nxgl_mxpixel_t"><span class="n"><span class="pre">nxgl_mxpixel_t</span></span></a><span class="w"> </span><span class="n"><span class="pre">color</span></span><span class="p"><span class="pre">[</span></span><span class="n"><span class="pre">CONFIG_NX_NPLANES</span></span><span class="p"><span class="pre">]</span></span><span class="sig-paren">)</span><span class="p"><span class="pre">;</span></span><a class="headerlink" href="#c.nx_filltrapezoid" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>Fill the specified trapezoidal region in the window |
| with the specified color.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>hwnd</strong> – The handle returned by <a class="reference internal" href="#c.nx_openwindow" title="nx_openwindow"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_openwindow()</span></code></a> or |
| <a class="reference internal" href="#c.nx_requestbkgd" title="nx_requestbkgd"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_requestbkgd()</span></code></a></p></li> |
| <li><p><strong>clip</strong> – Clipping rectangle relative to window (may be null)</p></li> |
| <li><p><strong>trap</strong> – The trapezoidal region to be filled</p></li> |
| <li><p><strong>color</strong> – The color to use in the fill</p></li> |
| </ul> |
| </dd> |
| <dt class="field-even">Returns<span class="colon">:</span></dt> |
| <dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">OK</span></code> on success; <code class="docutils literal notranslate"><span class="pre">ERROR</span></code> on failure with |
| <code class="docutils literal notranslate"><span class="pre">errno</span></code> set appropriately</p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nx_drawline"> |
| <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_drawline</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="n"><span class="pre">NXWINDOW</span></span></a><span class="w"> </span><span class="n"><span class="pre">hwnd</span></span>, <span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="n"><span class="pre">nxgl_vector_s</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">vector</span></span>, <a class="reference internal" href="nxgl.html#c.nxgl_coord_t" title="nxgl_coord_t"><span class="n"><span class="pre">nxgl_coord_t</span></span></a><span class="w"> </span><span class="n"><span class="pre">width</span></span>, <a class="reference internal" href="nxgl.html#c.nxgl_mxpixel_t" title="nxgl_mxpixel_t"><span class="n"><span class="pre">nxgl_mxpixel_t</span></span></a><span class="w"> </span><span class="n"><span class="pre">color</span></span><span class="p"><span class="pre">[</span></span><span class="n"><span class="pre">CONFIG_NX_NPLANES</span></span><span class="p"><span class="pre">]</span></span>, <span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="n"><span class="pre">caps</span></span><span class="sig-paren">)</span><span class="p"><span class="pre">;</span></span><a class="headerlink" href="#c.nx_drawline" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>Fill the specified trapezoidal region in the window |
| with the specified color. Fill the specified line in the window with the |
| specified color. This is simply a wrapper that uses <a class="reference internal" href="nxgl.html#c.nxgl_splitline" title="nxgl_splitline"><code class="xref c c-func docutils literal notranslate"><span class="pre">nxgl_splitline()</span></code></a> |
| to break the line into trapezoids and then calls <a class="reference internal" href="#c.nx_filltrapezoid" title="nx_filltrapezoid"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_filltrapezoid()</span></code></a> |
| to render the line.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>hwnd</strong> – The handle returned by <a class="reference internal" href="#c.nx_openwindow" title="nx_openwindow"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_openwindow()</span></code></a> or |
| <a class="reference internal" href="#c.nx_requestbkgd" title="nx_requestbkgd"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_requestbkgd()</span></code></a></p></li> |
| <li><p><strong>vector</strong> – Describes the line to be drawn.</p></li> |
| <li><p><strong>width</strong> – The width of the line</p></li> |
| <li><p><strong>color</strong> – The color to use to fill the line</p></li> |
| <li><p><strong>caps</strong> – <p>Draw a circular cap on the ends of the line to support better line |
| joins. One of:</p> |
| <div class="highlight-none notranslate"><div class="highlight"><pre><span></span>/* Line caps */ |
| |
| #define NX_LINECAP_NONE 0x00, /* No line caps */ |
| #define NX_LINECAP_PT1 0x01 /* Line cap on pt1 on of the vector only */ |
| #define NX_LINECAP_PT2 0x02 /* Line cap on pt2 on of the vector only */ |
| #define NX_LINECAP_BOTH 0x03 /* Line cap on both ends of the vector only */ |
| </pre></div> |
| </div> |
| </p></li> |
| </ul> |
| </dd> |
| <dt class="field-even">Returns<span class="colon">:</span></dt> |
| <dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">OK</span></code> on success; <code class="docutils literal notranslate"><span class="pre">ERROR</span></code> on failure with |
| <code class="docutils literal notranslate"><span class="pre">errno</span></code> set appropriately</p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nx_drawcircle"> |
| <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_drawcircle</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="n"><span class="pre">NXWINDOW</span></span></a><span class="w"> </span><span class="n"><span class="pre">hwnd</span></span>, <span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="nxgl.html#c.nxgl_point_s" title="nxgl_point_s"><span class="n"><span class="pre">nxgl_point_s</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">center</span></span>, <a class="reference internal" href="nxgl.html#c.nxgl_coord_t" title="nxgl_coord_t"><span class="n"><span class="pre">nxgl_coord_t</span></span></a><span class="w"> </span><span class="n"><span class="pre">radius</span></span>, <a class="reference internal" href="nxgl.html#c.nxgl_coord_t" title="nxgl_coord_t"><span class="n"><span class="pre">nxgl_coord_t</span></span></a><span class="w"> </span><span class="n"><span class="pre">width</span></span>, <a class="reference internal" href="nxgl.html#c.nxgl_mxpixel_t" title="nxgl_mxpixel_t"><span class="n"><span class="pre">nxgl_mxpixel_t</span></span></a><span class="w"> </span><span class="n"><span class="pre">color</span></span><span class="p"><span class="pre">[</span></span><span class="n"><span class="pre">CONFIG_NX_NPLANES</span></span><span class="p"><span class="pre">]</span></span><span class="sig-paren">)</span><span class="p"><span class="pre">;</span></span><a class="headerlink" href="#c.nx_drawcircle" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>Draw a circular outline using the specified line |
| thickness and color.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>hwnd</strong> – The handle returned by <a class="reference internal" href="#c.nx_openwindow" title="nx_openwindow"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_openwindow()</span></code></a> or |
| <a class="reference internal" href="#c.nx_requestbkgd" title="nx_requestbkgd"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_requestbkgd()</span></code></a></p></li> |
| <li><p><strong>center</strong> – A pointer to the point that is the center of the circle.</p></li> |
| <li><p><strong>radius</strong> – The radius of the circle in pixels.</p></li> |
| <li><p><strong>width</strong> – The width of the line</p></li> |
| <li><p><strong>color</strong> – The color to use to fill the line</p></li> |
| </ul> |
| </dd> |
| <dt class="field-even">Returns<span class="colon">:</span></dt> |
| <dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">OK</span></code> on success; <code class="docutils literal notranslate"><span class="pre">ERROR</span></code> on failure with |
| <code class="docutils literal notranslate"><span class="pre">errno</span></code> set appropriately</p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nx_fillcircle"> |
| <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_fillcircle</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="n"><span class="pre">NXWINDOW</span></span></a><span class="w"> </span><span class="n"><span class="pre">hwnd</span></span>, <span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="nxgl.html#c.nxgl_point_s" title="nxgl_point_s"><span class="n"><span class="pre">nxgl_point_s</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">center</span></span>, <a class="reference internal" href="nxgl.html#c.nxgl_coord_t" title="nxgl_coord_t"><span class="n"><span class="pre">nxgl_coord_t</span></span></a><span class="w"> </span><span class="n"><span class="pre">radius</span></span>, <a class="reference internal" href="nxgl.html#c.nxgl_mxpixel_t" title="nxgl_mxpixel_t"><span class="n"><span class="pre">nxgl_mxpixel_t</span></span></a><span class="w"> </span><span class="n"><span class="pre">color</span></span><span class="p"><span class="pre">[</span></span><span class="n"><span class="pre">CONFIG_NX_NPLANES</span></span><span class="p"><span class="pre">]</span></span><span class="sig-paren">)</span><span class="p"><span class="pre">;</span></span><a class="headerlink" href="#c.nx_fillcircle" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>Fill a circular region using the specified color.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>hwnd</strong> – The handle returned by <a class="reference internal" href="#c.nx_openwindow" title="nx_openwindow"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_openwindow()</span></code></a> or |
| <a class="reference internal" href="#c.nx_requestbkgd" title="nx_requestbkgd"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_requestbkgd()</span></code></a></p></li> |
| <li><p><strong>center</strong> – A pointer to the point that is the center of the circle.</p></li> |
| <li><p><strong>radius</strong> – The width of the line</p></li> |
| <li><p><strong>color</strong> – The color to use to fill the circle</p></li> |
| </ul> |
| </dd> |
| <dt class="field-even">Returns<span class="colon">:</span></dt> |
| <dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">OK</span></code> on success; <code class="docutils literal notranslate"><span class="pre">ERROR</span></code> on failure with |
| <code class="docutils literal notranslate"><span class="pre">errno</span></code> set appropriately</p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nx_setbgcolor"> |
| <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_setbgcolor</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXHANDLE" title="NXHANDLE"><span class="n"><span class="pre">NXHANDLE</span></span></a><span class="w"> </span><span class="n"><span class="pre">handle</span></span>, <a class="reference internal" href="nxgl.html#c.nxgl_mxpixel_t" title="nxgl_mxpixel_t"><span class="n"><span class="pre">nxgl_mxpixel_t</span></span></a><span class="w"> </span><span class="n"><span class="pre">color</span></span><span class="p"><span class="pre">[</span></span><span class="n"><span class="pre">CONFIG_NX_NPLANES</span></span><span class="p"><span class="pre">]</span></span><span class="sig-paren">)</span><span class="p"><span class="pre">;</span></span><a class="headerlink" href="#c.nx_setbgcolor" title="Permalink to this definition"></a><br /></dt> |
| <dd></dd></dl> |
| |
| <p>Set the color of the background.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">param handle<span class="colon">:</span></dt> |
| <dd class="field-odd"><p>The handle created by <a class="reference internal" href="#c.nx_openwindow" title="nx_openwindow"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_openwindow()</span></code></a> or |
| <a class="reference internal" href="#c.nx_requestbkgd" title="nx_requestbkgd"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_requestbkgd()</span></code></a></p> |
| </dd> |
| <dt class="field-even">param color<span class="colon">:</span></dt> |
| <dd class="field-even"><p>The color to use in the background</p> |
| </dd> |
| <dt class="field-odd">return<span class="colon">:</span></dt> |
| <dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">OK</span></code> on success; <code class="docutils literal notranslate"><span class="pre">ERROR</span></code> on failure with |
| <code class="docutils literal notranslate"><span class="pre">errno</span></code> set appropriately</p> |
| </dd> |
| </dl> |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nx_move"> |
| <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_move</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="n"><span class="pre">NXWINDOW</span></span></a><span class="w"> </span><span class="n"><span class="pre">hwnd</span></span>, <span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="nxgl.html#c.nxgl_rect_s" title="nxgl_rect_s"><span class="n"><span class="pre">nxgl_rect_s</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">rect</span></span>, <span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="nxgl.html#c.nxgl_point_s" title="nxgl_point_s"><span class="n"><span class="pre">nxgl_point_s</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">offset</span></span><span class="sig-paren">)</span><span class="p"><span class="pre">;</span></span><a class="headerlink" href="#c.nx_move" title="Permalink to this definition"></a><br /></dt> |
| <dd></dd></dl> |
| |
| <p>Move a rectangular region within the window.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">param hwnd<span class="colon">:</span></dt> |
| <dd class="field-odd"><p>The handle returned by <a class="reference internal" href="#c.nx_openwindow" title="nx_openwindow"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_openwindow()</span></code></a> or |
| <a class="reference internal" href="#c.nx_requestbkgd" title="nx_requestbkgd"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_requestbkgd()</span></code></a> that specifies the window within which the move is to be done</p> |
| </dd> |
| <dt class="field-even">param rect<span class="colon">:</span></dt> |
| <dd class="field-even"><p>Describes the (source) rectangular region to move</p> |
| </dd> |
| <dt class="field-odd">param offset<span class="colon">:</span></dt> |
| <dd class="field-odd"><p>The offset to move the region</p> |
| </dd> |
| <dt class="field-even">return<span class="colon">:</span></dt> |
| <dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">OK</span></code> on success; <code class="docutils literal notranslate"><span class="pre">ERROR</span></code> on failure with <code class="docutils literal notranslate"><span class="pre">errno</span></code> set appropriately</p> |
| </dd> |
| </dl> |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nx_bitmap"> |
| <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_bitmap</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXWINDOW" title="NXWINDOW"><span class="n"><span class="pre">NXWINDOW</span></span></a><span class="w"> </span><span class="n"><span class="pre">hwnd</span></span>, <span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="nxgl.html#c.nxgl_rect_s" title="nxgl_rect_s"><span class="n"><span class="pre">nxgl_rect_s</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">dest</span></span>, <span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">src</span></span><span class="p"><span class="pre">[</span></span><span class="n"><span class="pre">CONFIG_NX_NPLANES</span></span><span class="p"><span class="pre">]</span></span>, <span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="nxgl.html#c.nxgl_point_s" title="nxgl_point_s"><span class="n"><span class="pre">nxgl_point_s</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">origin</span></span>, <span class="kt"><span class="pre">unsigned</span></span><span class="w"> </span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="n"><span class="pre">stride</span></span><span class="sig-paren">)</span><span class="p"><span class="pre">;</span></span><a class="headerlink" href="#c.nx_bitmap" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>Copy a rectangular region of a larger image into the |
| rectangle in the specified window.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>hwnd</strong> – The handle returned by <a class="reference internal" href="#c.nx_openwindow" title="nx_openwindow"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_openwindow()</span></code></a> or |
| <a class="reference internal" href="#c.nx_requestbkgd" title="nx_requestbkgd"><code class="xref c c-func docutils literal notranslate"><span class="pre">nx_requestbkgd()</span></code></a> that specifies the window that will receive the bitmap image.</p></li> |
| <li><p><strong>dest</strong> – Describes the rectangular on the display that will receive the bit map.</p></li> |
| <li><p><strong>src</strong> – The start of the source image. This is an array source images of size <code class="docutils literal notranslate"><span class="pre">CONFIG_NX_NPLANES</span></code> (probably 1).</p></li> |
| <li><p><strong>origin</strong> – The origin of the upper, left-most corner of the full bitmap. Both |
| dest and origin are in window coordinates, however, the origin may |
| lie outside of the display.</p></li> |
| <li><p><strong>stride</strong> – The width of the full source image in bytes.</p></li> |
| </ul> |
| </dd> |
| <dt class="field-even">Returns<span class="colon">:</span></dt> |
| <dd class="field-even"><p><code class="docutils literal notranslate"><span class="pre">OK</span></code> on success; <code class="docutils literal notranslate"><span class="pre">ERROR</span></code> on failure with <code class="docutils literal notranslate"><span class="pre">errno</span></code> set appropriately</p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nx_kbdchin"> |
| <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_kbdchin</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXHANDLE" title="NXHANDLE"><span class="n"><span class="pre">NXHANDLE</span></span></a><span class="w"> </span><span class="n"><span class="pre">handle</span></span>, <span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="n"><span class="pre">ch</span></span><span class="sig-paren">)</span><span class="p"><span class="pre">;</span></span><a class="headerlink" href="#c.nx_kbdchin" title="Permalink to this definition"></a><br /></dt> |
| <dd></dd></dl> |
| |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nx_kbdin"> |
| <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_kbdin</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXHANDLE" title="NXHANDLE"><span class="n"><span class="pre">NXHANDLE</span></span></a><span class="w"> </span><span class="n"><span class="pre">handle</span></span>, <span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="n"><span class="pre">nch</span></span>, <span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">ch</span></span><span class="sig-paren">)</span><span class="p"><span class="pre">;</span></span><a class="headerlink" href="#c.nx_kbdin" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>Used by a thread or interrupt handler that manages some |
| kind of keypad hardware to report text information to the NX server. |
| That text data will be routed by the NX server to the appropriate window |
| client.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Returns<span class="colon">:</span></dt> |
| <dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">OK</span></code> on success; <code class="docutils literal notranslate"><span class="pre">ERROR</span></code> on failure with |
| <code class="docutils literal notranslate"><span class="pre">errno</span></code> set appropriately</p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="c function"> |
| <dt class="sig sig-object c" id="c.nx_mousein"> |
| <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">nx_mousein</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#c.NXHANDLE" title="NXHANDLE"><span class="n"><span class="pre">NXHANDLE</span></span></a><span class="w"> </span><span class="n"><span class="pre">handle</span></span>, <a class="reference internal" href="nxgl.html#c.nxgl_coord_t" title="nxgl_coord_t"><span class="n"><span class="pre">nxgl_coord_t</span></span></a><span class="w"> </span><span class="n"><span class="pre">x</span></span>, <a class="reference internal" href="nxgl.html#c.nxgl_coord_t" title="nxgl_coord_t"><span class="n"><span class="pre">nxgl_coord_t</span></span></a><span class="w"> </span><span class="n"><span class="pre">y</span></span>, <span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="n"><span class="pre">buttons</span></span><span class="sig-paren">)</span><a class="headerlink" href="#c.nx_mousein" title="Permalink to this definition"></a><br /></dt> |
| <dd><p>Used by a thread or interrupt handler that manages some |
| kind of pointing hardware to report new positional data to the NX |
| server. That positional data will be routed by the NX server to the |
| appropriate window client.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Returns<span class="colon">:</span></dt> |
| <dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">OK</span></code> on success; <code class="docutils literal notranslate"><span class="pre">ERROR</span></code> on failure with |
| <code class="docutils literal notranslate"><span class="pre">errno</span></code> set appropriately</p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <span class="target" id="nx-tool-kit-nxtk-1"></span></section> |
| </section> |
| |
| |
| </div> |
| </div> |
| <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> |
| <a href="nxgl.html" class="btn btn-neutral float-left" title="NX Graphics Library (NXGL)" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> |
| <a href="nxtk.html" class="btn btn-neutral float-right" title="NX Tool Kit (NXTK)" 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> |