blob: b4ef43f8cd10c26044132d1a49228d6af4190eeb [file] [log] [blame]
<!--
Documentation/_templates/layout.html
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership. The
ASF licenses this file to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance with the
License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
-->
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>NX Fonts Support (NXFONTS) &mdash; NuttX latest documentation</title>
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" type="text/css" />
<link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" type="text/css" />
<link rel="stylesheet" href="../../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" type="text/css" />
<link rel="stylesheet" href="../../_static/sphinx_tabs/tabs.css" type="text/css" />
<link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
<link rel="shortcut icon" href="../../_static/favicon.ico"/>
<!--[if lt IE 9]>
<script src="../../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
<script src="../../_static/jquery.js"></script>
<script src="../../_static/underscore.js"></script>
<script src="../../_static/doctools.js"></script>
<script src="../../_static/language_data.js"></script>
<script type="text/javascript" src="../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
<link rel="next" title="NX Cursor Support (NXCURSOR)" href="nxcursor.html" />
<link rel="prev" title="NX Tool Kit (NXTK)" href="nxtk.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../../index.html" class="icon icon-home"> NuttX
<img src="../../_static/NuttX.png" class="logo" alt="Logo"/>
</a>
<!-- this version selector is quite ugly, should be probably replaced by something
more modern -->
<div class="version-selector">
<select>
<option value="latest" selected="selected">latest</option>
</select>
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<p class="caption"><span class="caption-text">Table of Contents</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../index.html">Home</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../introduction/index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../introduction/inviolables.html">The Inviolable Principles of NuttX</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../quickstart/index.html">Getting Started</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../index.html">OS Components</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../nsh/index.html">NuttShell (NSH)</a></li>
<li class="toctree-l2"><a class="reference internal" href="../power.html">Power Management</a></li>
<li class="toctree-l2"><a class="reference internal" href="../socketcan.html">SocketCAN Device Drivers</a></li>
<li class="toctree-l2"><a class="reference internal" href="../syslog.html">SYSLOG</a></li>
<li class="toctree-l2"><a class="reference internal" href="../binfmt.html">Binary Loader</a></li>
<li class="toctree-l2"><a class="reference internal" href="../drivers/index.html">Device Drivers</a></li>
<li class="toctree-l2"><a class="reference internal" href="../filesystem.html">NuttX File System</a></li>
<li class="toctree-l2"><a class="reference internal" href="../nxflat.html">NXFLAT</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="index.html">NX Graphics Subsystem</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="index.html#objectives">Objectives</a></li>
<li class="toctree-l3"><a class="reference internal" href="index.html#organization">Organization</a></li>
<li class="toctree-l3 current"><a class="reference internal" href="index.html#nx-header-files">NX Header Files</a><ul class="current">
<li class="toctree-l4"><a class="reference internal" href="nxgl.html">NX Graphics Library (<code class="docutils literal notranslate"><span class="pre">NXGL</span></code>)</a></li>
<li class="toctree-l4"><a class="reference internal" href="nx.html">NX</a></li>
<li class="toctree-l4"><a class="reference internal" href="nxtk.html">NX Tool Kit (<code class="docutils literal notranslate"><span class="pre">NXTK</span></code>)</a></li>
<li class="toctree-l4 current"><a class="current reference internal" href="#">NX Fonts Support (<code class="docutils literal notranslate"><span class="pre">NXFONTS</span></code>)</a></li>
<li class="toctree-l4"><a class="reference internal" href="nxcursor.html">NX Cursor Support (<code class="docutils literal notranslate"><span class="pre">NXCURSOR</span></code>)</a></li>
<li class="toctree-l4"><a class="reference internal" href="sample.html">Sample Code</a></li>
<li class="toctree-l4"><a class="reference internal" href="appendix.html">Appendix</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../nxwidgets.html">NxWidgets</a></li>
<li class="toctree-l2"><a class="reference internal" href="../paging.html">On-Demand Paging</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../applications/index.html">Applications</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../boards/index.html">Supported Boards</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../reference/index.html">API Reference</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../guides/index.html">Guides</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../releases/index.html">Releases</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../contributing/index.html">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../glossary.html">Glossary</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../index.html">NuttX</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li>
<li><a href="../index.html">OS Components</a> &raquo;</li>
<li><a href="index.html">NX Graphics Subsystem</a> &raquo;</li>
<li>NX Fonts Support (<code class="docutils literal notranslate"><span class="pre">NXFONTS</span></code>)</li>
<li class="wy-breadcrumbs-aside">
<a href="../../_sources/components/nxgraphics/nxfonts.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="nx-fonts-support-nxfonts">
<h1>NX Fonts Support (<code class="docutils literal notranslate"><span class="pre">NXFONTS</span></code>)<a class="headerlink" href="#nx-fonts-support-nxfonts" title="Permalink to this headline"></a></h1>
<div class="section" id="nxfonts-types">
<h2>NXFONTS types<a class="headerlink" href="#nxfonts-types" title="Permalink to this headline"></a></h2>
<dl class="c struct">
<dt id="c.nx_fontmetric_s">
<em class="property">struct </em><code class="sig-name descname">nx_fontmetric_s</code><a class="headerlink" href="#c.nx_fontmetric_s" title="Permalink to this definition"></a><br /></dt>
<dd><p>This structures provides the metrics for one glyph:</p>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">struct</span> <span class="n">nx_fontmetric_s</span>
<span class="p">{</span>
<span class="kt">uint32_t</span> <span class="nl">stride</span> <span class="p">:</span> <span class="mi">2</span><span class="p">;</span> <span class="cm">/* Width of one font row in bytes */</span>
<span class="kt">uint32_t</span> <span class="nl">width</span> <span class="p">:</span> <span class="mi">6</span><span class="p">;</span> <span class="cm">/* Width of the font in bits */</span>
<span class="kt">uint32_t</span> <span class="nl">height</span> <span class="p">:</span> <span class="mi">6</span><span class="p">;</span> <span class="cm">/* Height of the font in rows */</span>
<span class="kt">uint32_t</span> <span class="nl">xoffset</span> <span class="p">:</span> <span class="mi">6</span><span class="p">;</span> <span class="cm">/* Top, left-hand corner X-offset in pixels */</span>
<span class="kt">uint32_t</span> <span class="nl">yoffset</span> <span class="p">:</span> <span class="mi">6</span><span class="p">;</span> <span class="cm">/* Top, left-hand corner y-offset in pixels */</span>
<span class="kt">uint32_t</span> <span class="nl">unused</span> <span class="p">:</span> <span class="mi">6</span><span class="p">;</span>
<span class="p">};</span>
</pre></div>
</div>
</dd></dl>
<dl class="c struct">
<dt id="c.nx_fontbitmap_s">
<em class="property">struct </em><code class="sig-name descname">nx_fontbitmap_s</code><a class="headerlink" href="#c.nx_fontbitmap_s" title="Permalink to this definition"></a><br /></dt>
<dd><p>This structure binds the glyph metrics to the glyph bitmap:</p>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">struct</span> <span class="n">nx_fontbitmap_s</span>
<span class="p">{</span>
<span class="k">struct</span> <span class="n">nx_fontmetric_s</span> <span class="n">metric</span><span class="p">;</span> <span class="cm">/* Character metrics */</span>
<span class="n">FAR</span> <span class="k">const</span> <span class="kt">uint8_t</span> <span class="o">*</span><span class="n">bitmap</span><span class="p">;</span> <span class="cm">/* Pointer to the character bitmap */</span>
<span class="p">};</span>
</pre></div>
</div>
</dd></dl>
<dl class="c struct">
<dt id="c.nx_fontset_s">
<em class="property">struct </em><code class="sig-name descname">nx_fontset_s</code><a class="headerlink" href="#c.nx_fontset_s" title="Permalink to this definition"></a><br /></dt>
<dd><p>This structure describes one contiguous grouping of glyphs that can be
described by an array starting with encoding <code class="docutils literal notranslate"><span class="pre">first</span></code> and extending
through (<code class="docutils literal notranslate"><span class="pre">first</span></code> + <code class="docutils literal notranslate"><span class="pre">nchars</span></code> - 1).</p>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">struct</span> <span class="n">nx_fontset_s</span>
<span class="p">{</span>
<span class="kt">uint8_t</span> <span class="n">first</span><span class="p">;</span> <span class="cm">/* First bitmap character code */</span>
<span class="kt">uint8_t</span> <span class="n">nchars</span><span class="p">;</span> <span class="cm">/* Number of bitmap character codes */</span>
<span class="n">FAR</span> <span class="k">const</span> <span class="k">struct</span> <span class="n">nx_fontbitmap_s</span> <span class="o">*</span><span class="n">bitmap</span><span class="p">;</span>
<span class="p">};</span>
</pre></div>
</div>
</dd></dl>
<dl class="c struct">
<dt id="c.nx_font_s">
<em class="property">struct </em><code class="sig-name descname">nx_font_s</code><a class="headerlink" href="#c.nx_font_s" title="Permalink to this definition"></a><br /></dt>
<dd><p>This structure describes the overall fontset.</p>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">struct</span> <span class="n">nx_font_s</span>
<span class="p">{</span>
<span class="kt">uint8_t</span> <span class="n">mxheight</span><span class="p">;</span> <span class="cm">/* Max height of one glyph in rows */</span>
<span class="kt">uint8_t</span> <span class="n">mxwidth</span><span class="p">;</span> <span class="cm">/* Max width of any glyph in pixels */</span>
<span class="kt">uint8_t</span> <span class="n">mxbits</span><span class="p">;</span> <span class="cm">/* Max number of bits per character code */</span>
<span class="kt">uint8_t</span> <span class="n">spwidth</span><span class="p">;</span> <span class="cm">/* The width of a space in pixels */</span>
<span class="p">};</span>
</pre></div>
</div>
</dd></dl>
<dl class="c function">
<dt id="c.nxf_getfonthandle">
<a class="reference internal" href="nx.html#c.NXHANDLE" title="NXHANDLE">NXHANDLE</a> <code class="sig-name descname">nxf_getfonthandle</code><span class="sig-paren">(</span><em class="property">enum</em> nx_fontid_e <em>fontid</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.nxf_getfonthandle" title="Permalink to this definition"></a><br /></dt>
<dd><p>Given a numeric font ID, return a handle that may be
subsequently be used to access the font data sets.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>fontid</strong> – Identifies the font set to use</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>A handle that may be subsequently be used to access the font data sets.</p>
</dd>
</dl>
</dd></dl>
<dl class="c function">
<dt id="c.nxf_getfontset">
FAR <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#c.nx_font_s" title="nx_font_s">nx_font_s</a> *<code class="sig-name descname">nxf_getfontset</code><span class="sig-paren">(</span><a class="reference internal" href="nx.html#c.NXHANDLE" title="NXHANDLE">NXHANDLE</a> <em>handle</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.nxf_getfontset" title="Permalink to this definition"></a><br /></dt>
<dd><p>Return information about the current font set.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>handle</strong> – A font handle previously returned by <a class="reference internal" href="#c.nxf_getfonthandle" title="nxf_getfonthandle"><code class="xref c c-func docutils literal notranslate"><span class="pre">nxf_getfonthandle()</span></code></a>.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>An instance of <code class="docutils literal notranslate"><span class="pre">struct</span> <span class="pre">nx_font_s</span></code> describing the font set.</p>
</dd>
</dl>
</dd></dl>
<dl class="c function">
<dt id="c.nxf_getbitmap">
FAR <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#c.nx_fontbitmap_s" title="nx_fontbitmap_s">nx_fontbitmap_s</a> *<code class="sig-name descname">nxf_getbitmap</code><span class="sig-paren">(</span><a class="reference internal" href="nx.html#c.NXHANDLE" title="NXHANDLE">NXHANDLE</a> <em>handle</em>, uint16_t <em>ch</em><span class="sig-paren">)</span><a class="headerlink" href="#c.nxf_getbitmap" title="Permalink to this definition"></a><br /></dt>
<dd><p>Return font bitmap information for the selected
character encoding.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>ch</strong> – The char code for the requested bitmap.</p></li>
<li><p><strong>handle</strong> – A font handle previously returned by <a class="reference internal" href="#c.nxf_getfonthandle" title="nxf_getfonthandle"><code class="xref c c-func docutils literal notranslate"><span class="pre">nxf_getfonthandle()</span></code></a>.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>An instance of <a class="reference internal" href="#c.nx_fontbitmap_s" title="nx_fontbitmap_s"><code class="xref c c-struct docutils literal notranslate"><span class="pre">nx_fontbitmap_s</span></code></a> describing the glyph.</p>
</dd>
</dl>
</dd></dl>
<dl class="c function">
<dt id="c.nxf_convert_2bpp">
int <code class="sig-name descname">nxf_convert_2bpp</code><span class="sig-paren">(</span>FAR uint8_t *<em>dest</em>, uint16_t <em>height</em>, uint16_t <em>width</em>, uint16_t <em>stride</em>, FAR <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#c.nx_fontbitmap_s" title="nx_fontbitmap_s">nx_fontbitmap_s</a> *<em>bm</em>, <a class="reference internal" href="nxgl.html#c.nxgl_mxpixel_t" title="nxgl_mxpixel_t">nxgl_mxpixel_t</a> <em>color</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.nxf_convert_2bpp" title="Permalink to this definition"></a><br /></dt>
<dd></dd></dl>
<dl class="c function">
<dt id="c.nxf_convert_4bpp">
int <code class="sig-name descname">nxf_convert_4bpp</code><span class="sig-paren">(</span>FAR uint8_t *<em>dest</em>, uint16_t <em>height</em>, uint16_t <em>width</em>, uint16_t <em>stride</em>, FAR <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#c.nx_fontbitmap_s" title="nx_fontbitmap_s">nx_fontbitmap_s</a> *<em>bm</em>, <a class="reference internal" href="nxgl.html#c.nxgl_mxpixel_t" title="nxgl_mxpixel_t">nxgl_mxpixel_t</a> <em>color</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.nxf_convert_4bpp" title="Permalink to this definition"></a><br /></dt>
<dd></dd></dl>
<dl class="c function">
<dt id="c.nxf_convert_8bpp">
int <code class="sig-name descname">nxf_convert_8bpp</code><span class="sig-paren">(</span>FAR uint8_t *<em>dest</em>, uint16_t <em>height</em>, uint16_t <em>width</em>, uint16_t <em>stride</em>, FAR <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#c.nx_fontbitmap_s" title="nx_fontbitmap_s">nx_fontbitmap_s</a> *<em>bm</em>, <a class="reference internal" href="nxgl.html#c.nxgl_mxpixel_t" title="nxgl_mxpixel_t">nxgl_mxpixel_t</a> <em>color</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.nxf_convert_8bpp" title="Permalink to this definition"></a><br /></dt>
<dd></dd></dl>
<dl class="c function">
<dt id="c.nxf_convert_16bpp">
int <code class="sig-name descname">nxf_convert_16bpp</code><span class="sig-paren">(</span>FAR uint16_t *<em>dest</em>, uint16_t <em>height</em>, uint16_t <em>width</em>, uint16_t <em>stride</em>, FAR <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#c.nx_fontbitmap_s" title="nx_fontbitmap_s">nx_fontbitmap_s</a> *<em>bm</em>, <a class="reference internal" href="nxgl.html#c.nxgl_mxpixel_t" title="nxgl_mxpixel_t">nxgl_mxpixel_t</a> <em>color</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.nxf_convert_16bpp" title="Permalink to this definition"></a><br /></dt>
<dd></dd></dl>
<dl class="c function">
<dt id="c.nxf_convert_24bpp">
int <code class="sig-name descname">nxf_convert_24bpp</code><span class="sig-paren">(</span>FAR uint32_t *<em>dest</em>, uint16_t <em>height</em>, uint16_t <em>width</em>, uint16_t <em>stride</em>, FAR <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#c.nx_fontbitmap_s" title="nx_fontbitmap_s">nx_fontbitmap_s</a> *<em>bm</em>, <a class="reference internal" href="nxgl.html#c.nxgl_mxpixel_t" title="nxgl_mxpixel_t">nxgl_mxpixel_t</a> <em>color</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.nxf_convert_24bpp" title="Permalink to this definition"></a><br /></dt>
<dd></dd></dl>
<dl class="c function">
<dt id="c.nxf_convert_32bpp">
int <code class="sig-name descname">nxf_convert_32bpp</code><span class="sig-paren">(</span>FAR uint32_t *<em>dest</em>, uint16_t <em>height</em>, uint16_t <em>width</em>, uint16_t <em>stride</em>, FAR <em class="property">const</em> <em class="property">struct</em> <a class="reference internal" href="#c.nx_fontbitmap_s" title="nx_fontbitmap_s">nx_fontbitmap_s</a> *<em>bm</em>, <a class="reference internal" href="nxgl.html#c.nxgl_mxpixel_t" title="nxgl_mxpixel_t">nxgl_mxpixel_t</a> <em>color</em><span class="sig-paren">)</span>;<a class="headerlink" href="#c.nxf_convert_32bpp" title="Permalink to this definition"></a><br /></dt>
<dd><p>Convert the 1BPP font to a new pixel depth.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>dest</strong> – The destination buffer provided by the caller.</p></li>
<li><p><strong>height</strong> – The max height of the returned char in rows.</p></li>
<li><p><strong>width</strong> – The max width of the returned char in pixels.</p></li>
<li><p><strong>stride</strong> – The width of the destination buffer in bytes.</p></li>
<li><p><strong>bm</strong> – Describes the character glyph to convert</p></li>
<li><p><strong>color</strong> – The color to use for ‘1’ bits in the font bitmap (0 bits are transparent).</p></li>
</ul>
</dd>
<dt class="field-even">Returns</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>
</div>
</div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2020, The Apache Software Foundation
</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>