\hypertarget{unifont-support_8c_source}{}\doxysection{unifont-\/support.c}
\label{unifont-support_8c_source}\index{src/unifont-\/support.c@{src/unifont-\/support.c}}
\mbox{\hyperlink{unifont-support_8c}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00001}00001 \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00002}00002 \textcolor{comment}{   @file: unifont-\/support.c}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00003}00003 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00004}00004 \textcolor{comment}{   @brief: Support functions for Unifont .hex files.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00005}00005 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00006}00006 \textcolor{comment}{   @author Paul Hardy}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00007}00007 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00008}00008 \textcolor{comment}{   @copyright Copyright © 2023 Paul Hardy}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00009}00009 \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00010}00010 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00011}00011 \textcolor{comment}{   LICENSE:}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00012}00012 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00013}00013 \textcolor{comment}{      This program is free software: you can redistribute it and/or modify}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00014}00014 \textcolor{comment}{      it under the terms of the GNU General Public License as published by}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00015}00015 \textcolor{comment}{      the Free Software Foundation, either version 2 of the License, or}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00016}00016 \textcolor{comment}{      (at your option) any later version.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00017}00017 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00018}00018 \textcolor{comment}{      This program is distributed in the hope that it will be useful,}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00019}00019 \textcolor{comment}{      but WITHOUT ANY WARRANTY; without even the implied warranty of}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00020}00020 \textcolor{comment}{      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00021}00021 \textcolor{comment}{      GNU General Public License for more details.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00022}00022 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00023}00023 \textcolor{comment}{      You should have received a copy of the GNU General Public License}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00024}00024 \textcolor{comment}{      along with this program.  If not, see <http://www.gnu.org/licenses/>.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00025}00025 \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00026}00026 \textcolor{preprocessor}{\#include <stdio.h>}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00027}00027 \textcolor{preprocessor}{\#include <stdlib.h>}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00028}00028 \textcolor{preprocessor}{\#include <string.h>}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00029}00029 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00030}00030 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00031}00031 \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00032}00032 \textcolor{comment}{   @brief Decode a Unifont .hex file into Uniocde code point and glyph.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00033}00033 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00034}00034 \textcolor{comment}{   This function takes one line from a Unifont .hex file and decodes}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00035}00035 \textcolor{comment}{   it into a code point followed by a 16-\/row glyph array.  The glyph}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00036}00036 \textcolor{comment}{   array can be one byte (8 columns) or two bytes (16 columns).}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00037}00037 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00038}00038 \textcolor{comment}{   @param[in] hexstring The Unicode .hex string for one code point.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00039}00039 \textcolor{comment}{   @param[out] width The number of columns in a glyph with 16 rows.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00040}00040 \textcolor{comment}{   @param[out] codept The code point, contained in the first .hex file field.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00041}00041 \textcolor{comment}{   @param[out] glyph The Unifont glyph, as 16 rows by 1 or 2 bytes wide.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00042}00042 \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00043}00043 \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00044}\mbox{\hyperlink{unifont-support_8c_ac9dc2e18133dd52df3d7a09122f63c5f}{00044}} \mbox{\hyperlink{unifont-support_8c_ac9dc2e18133dd52df3d7a09122f63c5f}{parse\_hex}} (\textcolor{keywordtype}{char} *hexstring,}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00045}00045            \textcolor{keywordtype}{int} *width,}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00046}00046            \textcolor{keywordtype}{unsigned} *codept,}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00047}00047            \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} glyph[16][2]) \{}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00048}00048 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00049}00049    \textcolor{keywordtype}{int} i;}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00050}00050    \textcolor{keywordtype}{int} row;}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00051}00051    \textcolor{keywordtype}{int} length;}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00052}00052 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00053}00053    sscanf (hexstring, \textcolor{stringliteral}{"{}\%X"{}}, codept);}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00054}00054    length = strlen (hexstring);}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00055}00055    \textcolor{keywordflow}{for} (i = length -\/ 1; i > 0 \&\& hexstring[i] != \textcolor{charliteral}{'\(\backslash\)n'}; i-\/-\/);}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00056}00056    hexstring[i] = \textcolor{charliteral}{'\(\backslash\)0'};}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00057}00057    \textcolor{keywordflow}{for} (i = 0; i < 9 \&\& hexstring[i] != \textcolor{charliteral}{':'}; i++);}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00058}00058    i++;  \textcolor{comment}{/* Skip over ':' */}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00059}00059    *width = (length -\/ i) * 4 / 16;  \textcolor{comment}{/* 16 rows per glyphbits */}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00060}00060 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00061}00061    \textcolor{keywordflow}{for} (row = 0; row < 16; row++) \{}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00062}00062       sscanf (\&hexstring[i], \textcolor{stringliteral}{"{}\%2hhX"{}}, \&glyph [row][0]);}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00063}00063       i += 2;}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00064}00064       \textcolor{keywordflow}{if} (*width > 8) \{}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00065}00065         sscanf (\&hexstring[i], \textcolor{stringliteral}{"{}\%2hhX"{}}, \&glyph [row][1]);}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00066}00066         i += 2;}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00067}00067       \}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00068}00068       \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00069}00069          glyph [row][1] = 0x00;}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00070}00070       \}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00071}00071    \}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00072}00072 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00073}00073 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00074}00074    \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00075}00075 \}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00076}00076 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00077}00077 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00078}00078 \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00079}00079 \textcolor{comment}{   @brief Convert a Unifont binary glyph into a binary glyph array of bits.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00080}00080 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00081}00081 \textcolor{comment}{   This function takes a Unifont 16-\/row by 1-\/ or 2-\/byte wide binary glyph}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00082}00082 \textcolor{comment}{   and returns an array of 16 rows by 16 columns.  For each output array}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00083}00083 \textcolor{comment}{   element, a 1 indicates the corresponding bit was set in the binary}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00084}00084 \textcolor{comment}{   glyph, and a 0 indicates the corresponding bit was not set.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00085}00085 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00086}00086 \textcolor{comment}{   @param[in] width The number of columns in the glyph.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00087}00087 \textcolor{comment}{   @param[in] glyph The binary glyph, as a 16-\/row by 2-\/byte array.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00088}00088 \textcolor{comment}{   @param[out] glyphbits The converted glyph, as a 16-\/row, 16-\/column array.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00089}00089 \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00090}00090 \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00091}\mbox{\hyperlink{unifont-support_8c_a2eeb053259792aa3fb7ff53813f7d7e4}{00091}} \mbox{\hyperlink{unifont-support_8c_a2eeb053259792aa3fb7ff53813f7d7e4}{glyph2bits}} (\textcolor{keywordtype}{int} width, }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00092}00092             \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} glyph[16][2],}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00093}00093             \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} glyphbits [16][16]) \{}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00094}00094 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00095}00095    \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} tmp\_byte;}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00096}00096    \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} mask;}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00097}00097    \textcolor{keywordtype}{int} row, column;}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00098}00098 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00099}00099    \textcolor{keywordflow}{for} (row = 0; row < 16; row++) \{}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00100}00100       tmp\_byte = glyph [row][0];}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00101}00101       mask = 0x80;}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00102}00102       \textcolor{keywordflow}{for} (column = 0; column < 8; column++) \{}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00103}00103          glyphbits [row][column] = tmp\_byte \& mask ? 1 : 0;}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00104}00104          mask >>= 1;}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00105}00105       \}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00106}00106 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00107}00107       \textcolor{keywordflow}{if} (width > 8)}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00108}00108          tmp\_byte = glyph [row][1];}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00109}00109       \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00110}00110          tmp\_byte = 0x00;}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00111}00111 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00112}00112       mask = 0x80;}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00113}00113       \textcolor{keywordflow}{for} (column = 8; column < 16; column++) \{}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00114}00114          glyphbits [row][column] = tmp\_byte \& mask ? 1 : 0;}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00115}00115          mask >>= 1;}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00116}00116       \}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00117}00117    \}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00118}00118 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00119}00119 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00120}00120    \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00121}00121 \}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00122}00122 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00123}00123 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00124}00124 \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00125}00125 \textcolor{comment}{   @brief Transpose a Unifont .hex format glyph into 2 column-\/major sub-\/arrays.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00126}00126 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00127}00127 \textcolor{comment}{   This function takes a 16-\/by-\/16 cell bit array made from a Unifont}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00128}00128 \textcolor{comment}{   glyph (as created by the glyph2bits function) and outputs a transposed}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00129}00129 \textcolor{comment}{   array of 2 sets of 8 or 16 columns, depending on the glyph width.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00130}00130 \textcolor{comment}{   This format simplifies outputting these bit patterns on a graphics}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00131}00131 \textcolor{comment}{   display with a controller chip designed to output a column of 8 pixels}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00132}00132 \textcolor{comment}{   at a time.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00133}00133 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00134}00134 \textcolor{comment}{   For a line of text with Unifont output, first all glyphs can have}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00135}00135 \textcolor{comment}{   their first 8 rows of pixels displayed on a line.  Then the second}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00136}00136 \textcolor{comment}{   8 rows of all glyphs on the line can be displayed.  This simplifies}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00137}00137 \textcolor{comment}{   code for such controller chips that are designed to automatically}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00138}00138 \textcolor{comment}{   increment input bytes of column data by one column at a time for}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00139}00139 \textcolor{comment}{   each successive byte.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00140}00140 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00141}00141 \textcolor{comment}{   The glyphbits array contains a '1' in each cell where the corresponding}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00142}00142 \textcolor{comment}{   non-\/transposed glyph has a pixel set, and 0 in each cell where a pixel}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00143}00143 \textcolor{comment}{   is not set.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00144}00144 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00145}00145 \textcolor{comment}{   @param[in] width The number of columns in the glyph.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00146}00146 \textcolor{comment}{   @param[in] glyphbits The 16-\/by-\/16 pixel glyph bits.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00147}00147 \textcolor{comment}{   @param[out] transpose The array of 2 sets of 8 ot 16 columns of 8 pixels.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00148}00148 \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00149}00149 \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00150}\mbox{\hyperlink{unifont-support_8c_a0156000204eb606b3288854b0a38acf0}{00150}} \mbox{\hyperlink{unifont-support_8c_a0156000204eb606b3288854b0a38acf0}{hexpose}} (\textcolor{keywordtype}{int} width,}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00151}00151          \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} glyphbits [16][16],}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00152}00152          \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} transpose [2][16]) \{}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00153}00153 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00154}00154    \textcolor{keywordtype}{int} column;}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00155}00155 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00156}00156 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00157}00157    \textcolor{keywordflow}{for} (column = 0; column < 8; column++) \{}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00158}00158       transpose [0][column] =}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00159}00159                (glyphbits [ 0][column] << 7) |}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00160}00160                (glyphbits [ 1][column] << 6) |}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00161}00161                (glyphbits [ 2][column] << 5) |}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00162}00162                (glyphbits [ 3][column] << 4) |}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00163}00163                (glyphbits [ 4][column] << 3) |}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00164}00164                (glyphbits [ 5][column] << 2) |}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00165}00165                (glyphbits [ 6][column] << 1) |}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00166}00166                (glyphbits [ 7][column]     );}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00167}00167       transpose [1][column] =}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00168}00168                (glyphbits [ 8][column] << 7) |}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00169}00169                (glyphbits [ 9][column] << 6) |}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00170}00170                (glyphbits [10][column] << 5) |}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00171}00171                (glyphbits [11][column] << 4) |}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00172}00172                (glyphbits [12][column] << 3) |}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00173}00173                (glyphbits [13][column] << 2) |}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00174}00174                (glyphbits [14][column] << 1) |}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00175}00175                (glyphbits [15][column]     );}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00176}00176    \}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00177}00177    \textcolor{keywordflow}{if} (width > 8) \{}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00178}00178       \textcolor{keywordflow}{for} (column = 8; column < width; column++) \{}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00179}00179          transpose [0][column] =}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00180}00180                   (glyphbits [0][column] << 7) |}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00181}00181                   (glyphbits [1][column] << 6) |}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00182}00182                   (glyphbits [2][column] << 5) |}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00183}00183                   (glyphbits [3][column] << 4) |}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00184}00184                   (glyphbits [4][column] << 3) |}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00185}00185                   (glyphbits [5][column] << 2) |}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00186}00186                   (glyphbits [6][column] << 1) |}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00187}00187                   (glyphbits [7][column]     );}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00188}00188          transpose [1][column] =}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00189}00189                   (glyphbits [ 8][column] << 7) |}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00190}00190                   (glyphbits [ 9][column] << 6) |}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00191}00191                   (glyphbits [10][column] << 5) |}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00192}00192                   (glyphbits [11][column] << 4) |}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00193}00193                   (glyphbits [12][column] << 3) |}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00194}00194                   (glyphbits [13][column] << 2) |}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00195}00195                   (glyphbits [14][column] << 1) |}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00196}00196                   (glyphbits [15][column]     );}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00197}00197       \}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00198}00198    \}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00199}00199    \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00200}00200       \textcolor{keywordflow}{for} (column = 8; column < width; column++)}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00201}00201          transpose [0][column] = transpose [1][column] = 0x00;}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00202}00202    \}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00203}00203 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00204}00204 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00205}00205    \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00206}00206 \}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00207}00207 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00208}00208 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00209}00209 \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00210}00210 \textcolor{comment}{   @brief Convert a glyph code point and byte array into a Unifont .hex string.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00211}00211 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00212}00212 \textcolor{comment}{   This function takes a code point and a 16-\/row by 1-\/ or 2-\/byte binary}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00213}00213 \textcolor{comment}{   glyph, and converts it into a Unifont .hex format character array.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00214}00214 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00215}00215 \textcolor{comment}{   @param[in] width The number of columns in the glyph.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00216}00216 \textcolor{comment}{   @param[in] codept The code point to appear in the output .hex string.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00217}00217 \textcolor{comment}{   @param[in] glyph The glyph, with each of 16 rows 1 or 2 bytes wide.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00218}00218 \textcolor{comment}{   @param[out] outstring The output string, in Unifont .hex format.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00219}00219 \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00220}00220 \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00221}\mbox{\hyperlink{unifont-support_8c_ad5e42b72976f20fc70b2a837d3f2d654}{00221}} \mbox{\hyperlink{unifont-support_8c_ad5e42b72976f20fc70b2a837d3f2d654}{glyph2string}} (\textcolor{keywordtype}{int} width, \textcolor{keywordtype}{unsigned} codept,}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00222}00222               \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} glyph [16][2],}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00223}00223               \textcolor{keywordtype}{char} *outstring) \{}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00224}00224 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00225}00225    \textcolor{keywordtype}{int} i;            \textcolor{comment}{/* index into outstring array */}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00226}00226    \textcolor{keywordtype}{int} row;}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00227}00227 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00228}00228    \textcolor{keywordflow}{if} (codept <= 0xFFFF) \{}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00229}00229       sprintf (outstring, \textcolor{stringliteral}{"{}\%04X:"{}}, codept);}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00230}00230       i = 5;}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00231}00231    \}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00232}00232    \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00233}00233       sprintf (outstring, \textcolor{stringliteral}{"{}\%06X:"{}}, codept);}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00234}00234       i = 7;}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00235}00235    \}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00236}00236 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00237}00237    \textcolor{keywordflow}{for} (row = 0; row < 16; row++) \{}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00238}00238       sprintf (\&outstring[i], \textcolor{stringliteral}{"{}\%02X"{}}, glyph [row][0]);}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00239}00239       i += 2;}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00240}00240 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00241}00241       \textcolor{keywordflow}{if} (width > 8) \{}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00242}00242          sprintf (\&outstring[i], \textcolor{stringliteral}{"{}\%02X"{}}, glyph [row][1]);}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00243}00243          i += 2;}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00244}00244       \}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00245}00245    \}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00246}00246 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00247}00247    outstring[i] = \textcolor{charliteral}{'\(\backslash\)0'};  \textcolor{comment}{/* terminate output string */}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00248}00248   }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00249}00249 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00250}00250    \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00251}00251 \}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00252}00252 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00253}00253 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00254}00254 \textcolor{comment}{/**}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00255}00255 \textcolor{comment}{   @brief Convert a code point and transposed glyph into a Unifont .hex string.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00256}00256 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00257}00257 \textcolor{comment}{   This function takes a code point and a transposed Unifont glyph}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00258}00258 \textcolor{comment}{   of 2 rows of 8 pixels in a column, and converts it into a Unifont}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00259}00259 \textcolor{comment}{   .hex format character array.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00260}00260 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00261}00261 \textcolor{comment}{   @param[in] width The number of columns in the glyph.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00262}00262 \textcolor{comment}{   @param[in] codept The code point to appear in the output .hex string.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00263}00263 \textcolor{comment}{   @param[in] transpose The transposed glyph, with 2 sets of 8-\/row data.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00264}00264 \textcolor{comment}{   @param[out] outstring The output string, in Unifont .hex format.}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00265}00265 \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00266}00266 \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00267}\mbox{\hyperlink{unifont-support_8c_a9292d6df99f93635cc891baaf8f66346}{00267}} \mbox{\hyperlink{unifont-support_8c_a9292d6df99f93635cc891baaf8f66346}{xglyph2string}} (\textcolor{keywordtype}{int} width, \textcolor{keywordtype}{unsigned} codept,}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00268}00268                \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} transpose [2][16],}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00269}00269                \textcolor{keywordtype}{char} *outstring) \{}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00270}00270 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00271}00271    \textcolor{keywordtype}{int} i;            \textcolor{comment}{/* index into outstring array */}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00272}00272    \textcolor{keywordtype}{int}  column;}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00273}00273 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00274}00274    \textcolor{keywordflow}{if} (codept <= 0xFFFF) \{}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00275}00275       sprintf (outstring, \textcolor{stringliteral}{"{}\%04X:"{}}, codept);}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00276}00276       i = 5;}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00277}00277    \}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00278}00278    \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00279}00279       sprintf (outstring, \textcolor{stringliteral}{"{}\%06X:"{}}, codept);}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00280}00280       i = 7;}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00281}00281    \}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00282}00282 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00283}00283    \textcolor{keywordflow}{for} (column = 0; column < 8; column++) \{}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00284}00284       sprintf (\&outstring[i], \textcolor{stringliteral}{"{}\%02X"{}}, transpose [0][column]);}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00285}00285       i += 2;}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00286}00286    \}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00287}00287    \textcolor{keywordflow}{if} (width > 8) \{}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00288}00288       \textcolor{keywordflow}{for} (column = 8; column < 16; column++) \{}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00289}00289          sprintf (\&outstring[i], \textcolor{stringliteral}{"{}\%02X"{}}, transpose [0][column]);}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00290}00290          i += 2;}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00291}00291       \}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00292}00292    \}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00293}00293    \textcolor{keywordflow}{for} (column = 0; column < 8; column++) \{}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00294}00294       sprintf (\&outstring[i], \textcolor{stringliteral}{"{}\%02X"{}}, transpose [1][column]);}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00295}00295       i += 2;}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00296}00296    \}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00297}00297    \textcolor{keywordflow}{if} (width > 8) \{}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00298}00298       \textcolor{keywordflow}{for} (column = 8; column < 16; column++) \{}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00299}00299          sprintf (\&outstring[i], \textcolor{stringliteral}{"{}\%02X"{}}, transpose [1][column]);}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00300}00300          i += 2;}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00301}00301       \}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00302}00302    \}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00303}00303 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00304}00304    outstring[i] = \textcolor{charliteral}{'\(\backslash\)0'};  \textcolor{comment}{/* terminate output string */}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00305}00305   }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00306}00306 }
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00307}00307    \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00308}00308 \}}
\DoxyCodeLine{\Hypertarget{unifont-support_8c_source_l00309}00309 }

\end{DoxyCode}
