1*38e8c45fSAndroid Build Coastguard Worker /* 2*38e8c45fSAndroid Build Coastguard Worker * Copyright (C) 2019 The Android Open Source Project 3*38e8c45fSAndroid Build Coastguard Worker * 4*38e8c45fSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*38e8c45fSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*38e8c45fSAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*38e8c45fSAndroid Build Coastguard Worker * 8*38e8c45fSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*38e8c45fSAndroid Build Coastguard Worker * 10*38e8c45fSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*38e8c45fSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*38e8c45fSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*38e8c45fSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*38e8c45fSAndroid Build Coastguard Worker * limitations under the License. 15*38e8c45fSAndroid Build Coastguard Worker */ 16*38e8c45fSAndroid Build Coastguard Worker 17*38e8c45fSAndroid Build Coastguard Worker /** 18*38e8c45fSAndroid Build Coastguard Worker * @addtogroup Font 19*38e8c45fSAndroid Build Coastguard Worker * @{ 20*38e8c45fSAndroid Build Coastguard Worker */ 21*38e8c45fSAndroid Build Coastguard Worker 22*38e8c45fSAndroid Build Coastguard Worker /** 23*38e8c45fSAndroid Build Coastguard Worker * @file font.h 24*38e8c45fSAndroid Build Coastguard Worker * @brief Provides some constants used in system_fonts.h or fonts_matcher.h 25*38e8c45fSAndroid Build Coastguard Worker * 26*38e8c45fSAndroid Build Coastguard Worker * Available since API level 29. 27*38e8c45fSAndroid Build Coastguard Worker */ 28*38e8c45fSAndroid Build Coastguard Worker 29*38e8c45fSAndroid Build Coastguard Worker #ifndef ANDROID_FONT_H 30*38e8c45fSAndroid Build Coastguard Worker #define ANDROID_FONT_H 31*38e8c45fSAndroid Build Coastguard Worker 32*38e8c45fSAndroid Build Coastguard Worker #include <stdbool.h> 33*38e8c45fSAndroid Build Coastguard Worker #include <stddef.h> 34*38e8c45fSAndroid Build Coastguard Worker #include <stdint.h> 35*38e8c45fSAndroid Build Coastguard Worker #include <sys/cdefs.h> 36*38e8c45fSAndroid Build Coastguard Worker 37*38e8c45fSAndroid Build Coastguard Worker /****************************************************************** 38*38e8c45fSAndroid Build Coastguard Worker * 39*38e8c45fSAndroid Build Coastguard Worker * IMPORTANT NOTICE: 40*38e8c45fSAndroid Build Coastguard Worker * 41*38e8c45fSAndroid Build Coastguard Worker * This file is part of Android's set of stable system headers 42*38e8c45fSAndroid Build Coastguard Worker * exposed by the Android NDK (Native Development Kit). 43*38e8c45fSAndroid Build Coastguard Worker * 44*38e8c45fSAndroid Build Coastguard Worker * Third-party source AND binary code relies on the definitions 45*38e8c45fSAndroid Build Coastguard Worker * here to be FROZEN ON ALL UPCOMING PLATFORM RELEASES. 46*38e8c45fSAndroid Build Coastguard Worker * 47*38e8c45fSAndroid Build Coastguard Worker * - DO NOT MODIFY ENUMS (EXCEPT IF YOU ADD NEW 32-BIT VALUES) 48*38e8c45fSAndroid Build Coastguard Worker * - DO NOT MODIFY CONSTANTS OR FUNCTIONAL MACROS 49*38e8c45fSAndroid Build Coastguard Worker * - DO NOT CHANGE THE SIGNATURE OF FUNCTIONS IN ANY WAY 50*38e8c45fSAndroid Build Coastguard Worker * - DO NOT CHANGE THE LAYOUT OR SIZE OF STRUCTURES 51*38e8c45fSAndroid Build Coastguard Worker */ 52*38e8c45fSAndroid Build Coastguard Worker 53*38e8c45fSAndroid Build Coastguard Worker __BEGIN_DECLS 54*38e8c45fSAndroid Build Coastguard Worker 55*38e8c45fSAndroid Build Coastguard Worker enum { 56*38e8c45fSAndroid Build Coastguard Worker /** The minimum value fot the font weight value. */ 57*38e8c45fSAndroid Build Coastguard Worker AFONT_WEIGHT_MIN = 0, 58*38e8c45fSAndroid Build Coastguard Worker 59*38e8c45fSAndroid Build Coastguard Worker /** A font weight value for the thin weight. */ 60*38e8c45fSAndroid Build Coastguard Worker AFONT_WEIGHT_THIN = 100, 61*38e8c45fSAndroid Build Coastguard Worker 62*38e8c45fSAndroid Build Coastguard Worker /** A font weight value for the extra-light weight. */ 63*38e8c45fSAndroid Build Coastguard Worker AFONT_WEIGHT_EXTRA_LIGHT = 200, 64*38e8c45fSAndroid Build Coastguard Worker 65*38e8c45fSAndroid Build Coastguard Worker /** A font weight value for the light weight. */ 66*38e8c45fSAndroid Build Coastguard Worker AFONT_WEIGHT_LIGHT = 300, 67*38e8c45fSAndroid Build Coastguard Worker 68*38e8c45fSAndroid Build Coastguard Worker /** A font weight value for the normal weight. */ 69*38e8c45fSAndroid Build Coastguard Worker AFONT_WEIGHT_NORMAL = 400, 70*38e8c45fSAndroid Build Coastguard Worker 71*38e8c45fSAndroid Build Coastguard Worker /** A font weight value for the medium weight. */ 72*38e8c45fSAndroid Build Coastguard Worker AFONT_WEIGHT_MEDIUM = 500, 73*38e8c45fSAndroid Build Coastguard Worker 74*38e8c45fSAndroid Build Coastguard Worker /** A font weight value for the semi-bold weight. */ 75*38e8c45fSAndroid Build Coastguard Worker AFONT_WEIGHT_SEMI_BOLD = 600, 76*38e8c45fSAndroid Build Coastguard Worker 77*38e8c45fSAndroid Build Coastguard Worker /** A font weight value for the bold weight. */ 78*38e8c45fSAndroid Build Coastguard Worker AFONT_WEIGHT_BOLD = 700, 79*38e8c45fSAndroid Build Coastguard Worker 80*38e8c45fSAndroid Build Coastguard Worker /** A font weight value for the extra-bold weight. */ 81*38e8c45fSAndroid Build Coastguard Worker AFONT_WEIGHT_EXTRA_BOLD = 800, 82*38e8c45fSAndroid Build Coastguard Worker 83*38e8c45fSAndroid Build Coastguard Worker /** A font weight value for the black weight. */ 84*38e8c45fSAndroid Build Coastguard Worker AFONT_WEIGHT_BLACK = 900, 85*38e8c45fSAndroid Build Coastguard Worker 86*38e8c45fSAndroid Build Coastguard Worker /** The maximum value for the font weight value. */ 87*38e8c45fSAndroid Build Coastguard Worker AFONT_WEIGHT_MAX = 1000 88*38e8c45fSAndroid Build Coastguard Worker }; 89*38e8c45fSAndroid Build Coastguard Worker 90*38e8c45fSAndroid Build Coastguard Worker struct AFont; 91*38e8c45fSAndroid Build Coastguard Worker /** 92*38e8c45fSAndroid Build Coastguard Worker * AFont provides information of the single font configuration. 93*38e8c45fSAndroid Build Coastguard Worker */ 94*38e8c45fSAndroid Build Coastguard Worker typedef struct AFont AFont; 95*38e8c45fSAndroid Build Coastguard Worker 96*38e8c45fSAndroid Build Coastguard Worker /** 97*38e8c45fSAndroid Build Coastguard Worker * Close an AFont. 98*38e8c45fSAndroid Build Coastguard Worker * 99*38e8c45fSAndroid Build Coastguard Worker * Available since API level 29. 100*38e8c45fSAndroid Build Coastguard Worker * 101*38e8c45fSAndroid Build Coastguard Worker * \param font a font returned by ASystemFontIterator_next or AFontMatchert_match. 102*38e8c45fSAndroid Build Coastguard Worker * Do nothing if NULL is passed. 103*38e8c45fSAndroid Build Coastguard Worker */ 104*38e8c45fSAndroid Build Coastguard Worker void AFont_close(AFont* _Nullable font) __INTRODUCED_IN(29); 105*38e8c45fSAndroid Build Coastguard Worker 106*38e8c45fSAndroid Build Coastguard Worker /** 107*38e8c45fSAndroid Build Coastguard Worker * Return an absolute path to the current font file. 108*38e8c45fSAndroid Build Coastguard Worker * 109*38e8c45fSAndroid Build Coastguard Worker * Here is a list of font formats returned by this method: 110*38e8c45fSAndroid Build Coastguard Worker * <ul> 111*38e8c45fSAndroid Build Coastguard Worker * <li>OpenType</li> 112*38e8c45fSAndroid Build Coastguard Worker * <li>OpenType Font Collection</li> 113*38e8c45fSAndroid Build Coastguard Worker * <li>TrueType</li> 114*38e8c45fSAndroid Build Coastguard Worker * <li>TrueType Collection</li> 115*38e8c45fSAndroid Build Coastguard Worker * </ul> 116*38e8c45fSAndroid Build Coastguard Worker * The file extension could be one of *.otf, *.ttf, *.otc or *.ttc. 117*38e8c45fSAndroid Build Coastguard Worker * 118*38e8c45fSAndroid Build Coastguard Worker * The font file returned is guaranteed to be opend with O_RDONLY. 119*38e8c45fSAndroid Build Coastguard Worker * Note that the returned pointer is valid until AFont_close() is called for the given font. 120*38e8c45fSAndroid Build Coastguard Worker * 121*38e8c45fSAndroid Build Coastguard Worker * Available since API level 29. 122*38e8c45fSAndroid Build Coastguard Worker * 123*38e8c45fSAndroid Build Coastguard Worker * \param font a font object. Passing NULL is not allowed. 124*38e8c45fSAndroid Build Coastguard Worker * \return a string of the font file path. 125*38e8c45fSAndroid Build Coastguard Worker */ 126*38e8c45fSAndroid Build Coastguard Worker const char* _Nonnull AFont_getFontFilePath(const AFont* _Nonnull font) __INTRODUCED_IN(29); 127*38e8c45fSAndroid Build Coastguard Worker 128*38e8c45fSAndroid Build Coastguard Worker /** 129*38e8c45fSAndroid Build Coastguard Worker * Return a weight value associated with the current font. 130*38e8c45fSAndroid Build Coastguard Worker * 131*38e8c45fSAndroid Build Coastguard Worker * The weight values are positive and less than or equal to 1000. 132*38e8c45fSAndroid Build Coastguard Worker * Here are pairs of the common names and their values. 133*38e8c45fSAndroid Build Coastguard Worker * <p> 134*38e8c45fSAndroid Build Coastguard Worker * <table> 135*38e8c45fSAndroid Build Coastguard Worker * <tr> 136*38e8c45fSAndroid Build Coastguard Worker * <th align="center">Value</th> 137*38e8c45fSAndroid Build Coastguard Worker * <th align="center">Name</th> 138*38e8c45fSAndroid Build Coastguard Worker * <th align="center">NDK Definition</th> 139*38e8c45fSAndroid Build Coastguard Worker * </tr> 140*38e8c45fSAndroid Build Coastguard Worker * <tr> 141*38e8c45fSAndroid Build Coastguard Worker * <td align="center">100</td> 142*38e8c45fSAndroid Build Coastguard Worker * <td align="center">Thin</td> 143*38e8c45fSAndroid Build Coastguard Worker * <td align="center">{@link AFONT_WEIGHT_THIN}</td> 144*38e8c45fSAndroid Build Coastguard Worker * </tr> 145*38e8c45fSAndroid Build Coastguard Worker * <tr> 146*38e8c45fSAndroid Build Coastguard Worker * <td align="center">200</td> 147*38e8c45fSAndroid Build Coastguard Worker * <td align="center">Extra Light (Ultra Light)</td> 148*38e8c45fSAndroid Build Coastguard Worker * <td align="center">{@link AFONT_WEIGHT_EXTRA_LIGHT}</td> 149*38e8c45fSAndroid Build Coastguard Worker * </tr> 150*38e8c45fSAndroid Build Coastguard Worker * <tr> 151*38e8c45fSAndroid Build Coastguard Worker * <td align="center">300</td> 152*38e8c45fSAndroid Build Coastguard Worker * <td align="center">Light</td> 153*38e8c45fSAndroid Build Coastguard Worker * <td align="center">{@link AFONT_WEIGHT_LIGHT}</td> 154*38e8c45fSAndroid Build Coastguard Worker * </tr> 155*38e8c45fSAndroid Build Coastguard Worker * <tr> 156*38e8c45fSAndroid Build Coastguard Worker * <td align="center">400</td> 157*38e8c45fSAndroid Build Coastguard Worker * <td align="center">Normal (Regular)</td> 158*38e8c45fSAndroid Build Coastguard Worker * <td align="center">{@link AFONT_WEIGHT_NORMAL}</td> 159*38e8c45fSAndroid Build Coastguard Worker * </tr> 160*38e8c45fSAndroid Build Coastguard Worker * <tr> 161*38e8c45fSAndroid Build Coastguard Worker * <td align="center">500</td> 162*38e8c45fSAndroid Build Coastguard Worker * <td align="center">Medium</td> 163*38e8c45fSAndroid Build Coastguard Worker * <td align="center">{@link AFONT_WEIGHT_MEDIUM}</td> 164*38e8c45fSAndroid Build Coastguard Worker * </tr> 165*38e8c45fSAndroid Build Coastguard Worker * <tr> 166*38e8c45fSAndroid Build Coastguard Worker * <td align="center">600</td> 167*38e8c45fSAndroid Build Coastguard Worker * <td align="center">Semi Bold (Demi Bold)</td> 168*38e8c45fSAndroid Build Coastguard Worker * <td align="center">{@link AFONT_WEIGHT_SEMI_BOLD}</td> 169*38e8c45fSAndroid Build Coastguard Worker * </tr> 170*38e8c45fSAndroid Build Coastguard Worker * <tr> 171*38e8c45fSAndroid Build Coastguard Worker * <td align="center">700</td> 172*38e8c45fSAndroid Build Coastguard Worker * <td align="center">Bold</td> 173*38e8c45fSAndroid Build Coastguard Worker * <td align="center">{@link AFONT_WEIGHT_BOLD}</td> 174*38e8c45fSAndroid Build Coastguard Worker * </tr> 175*38e8c45fSAndroid Build Coastguard Worker * <tr> 176*38e8c45fSAndroid Build Coastguard Worker * <td align="center">800</td> 177*38e8c45fSAndroid Build Coastguard Worker * <td align="center">Extra Bold (Ultra Bold)</td> 178*38e8c45fSAndroid Build Coastguard Worker * <td align="center">{@link AFONT_WEIGHT_EXTRA_BOLD}</td> 179*38e8c45fSAndroid Build Coastguard Worker * </tr> 180*38e8c45fSAndroid Build Coastguard Worker * <tr> 181*38e8c45fSAndroid Build Coastguard Worker * <td align="center">900</td> 182*38e8c45fSAndroid Build Coastguard Worker * <td align="center">Black (Heavy)</td> 183*38e8c45fSAndroid Build Coastguard Worker * <td align="center">{@link AFONT_WEIGHT_BLACK}</td> 184*38e8c45fSAndroid Build Coastguard Worker * </tr> 185*38e8c45fSAndroid Build Coastguard Worker * </table> 186*38e8c45fSAndroid Build Coastguard Worker * </p> 187*38e8c45fSAndroid Build Coastguard Worker * Note that the weight value may fall in between above values, e.g. 250 weight. 188*38e8c45fSAndroid Build Coastguard Worker * 189*38e8c45fSAndroid Build Coastguard Worker * For more information about font weight, read [OpenType usWeightClass](https://docs.microsoft.com/en-us/typography/opentype/spec/os2#usweightclass) 190*38e8c45fSAndroid Build Coastguard Worker * 191*38e8c45fSAndroid Build Coastguard Worker * Available since API level 29. 192*38e8c45fSAndroid Build Coastguard Worker * 193*38e8c45fSAndroid Build Coastguard Worker * \param font a font object. Passing NULL is not allowed. 194*38e8c45fSAndroid Build Coastguard Worker * \return a positive integer less than or equal to {@link AFONT_WEIGHT_MAX} is returned. 195*38e8c45fSAndroid Build Coastguard Worker */ 196*38e8c45fSAndroid Build Coastguard Worker uint16_t AFont_getWeight(const AFont* _Nonnull font) __INTRODUCED_IN(29); 197*38e8c45fSAndroid Build Coastguard Worker 198*38e8c45fSAndroid Build Coastguard Worker /** 199*38e8c45fSAndroid Build Coastguard Worker * Return true if the current font is italic, otherwise returns false. 200*38e8c45fSAndroid Build Coastguard Worker * 201*38e8c45fSAndroid Build Coastguard Worker * Available since API level 29. 202*38e8c45fSAndroid Build Coastguard Worker * 203*38e8c45fSAndroid Build Coastguard Worker * \param font a font object. Passing NULL is not allowed. 204*38e8c45fSAndroid Build Coastguard Worker * \return true if italic, otherwise false. 205*38e8c45fSAndroid Build Coastguard Worker */ 206*38e8c45fSAndroid Build Coastguard Worker bool AFont_isItalic(const AFont* _Nonnull font) __INTRODUCED_IN(29); 207*38e8c45fSAndroid Build Coastguard Worker 208*38e8c45fSAndroid Build Coastguard Worker /** 209*38e8c45fSAndroid Build Coastguard Worker * Return a IETF BCP47 compliant language tag associated with the current font. 210*38e8c45fSAndroid Build Coastguard Worker * 211*38e8c45fSAndroid Build Coastguard Worker * For information about IETF BCP47, read [Locale.forLanguageTag(java.lang.String)](https://developer.android.com/reference/java/util/Locale.html#forLanguageTag(java.lang.String)") 212*38e8c45fSAndroid Build Coastguard Worker * 213*38e8c45fSAndroid Build Coastguard Worker * Note that the returned pointer is valid until AFont_close() is called. 214*38e8c45fSAndroid Build Coastguard Worker * 215*38e8c45fSAndroid Build Coastguard Worker * Available since API level 29. 216*38e8c45fSAndroid Build Coastguard Worker * 217*38e8c45fSAndroid Build Coastguard Worker * \param font a font object. Passing NULL is not allowed. 218*38e8c45fSAndroid Build Coastguard Worker * \return a IETF BCP47 compliant language tag or nullptr if not available. 219*38e8c45fSAndroid Build Coastguard Worker */ 220*38e8c45fSAndroid Build Coastguard Worker const char* _Nullable AFont_getLocale(const AFont* _Nonnull font) __INTRODUCED_IN(29); 221*38e8c45fSAndroid Build Coastguard Worker 222*38e8c45fSAndroid Build Coastguard Worker /** 223*38e8c45fSAndroid Build Coastguard Worker * Return a font collection index value associated with the current font. 224*38e8c45fSAndroid Build Coastguard Worker * 225*38e8c45fSAndroid Build Coastguard Worker * In case the target font file is a font collection (e.g. .ttc or .otc), this 226*38e8c45fSAndroid Build Coastguard Worker * returns a non-negative value as an font offset in the collection. This 227*38e8c45fSAndroid Build Coastguard Worker * always returns 0 if the target font file is a regular font. 228*38e8c45fSAndroid Build Coastguard Worker * 229*38e8c45fSAndroid Build Coastguard Worker * Available since API level 29. 230*38e8c45fSAndroid Build Coastguard Worker * 231*38e8c45fSAndroid Build Coastguard Worker * \param font a font object. Passing NULL is not allowed. 232*38e8c45fSAndroid Build Coastguard Worker * \return a font collection index. 233*38e8c45fSAndroid Build Coastguard Worker */ 234*38e8c45fSAndroid Build Coastguard Worker size_t AFont_getCollectionIndex(const AFont* _Nonnull font) __INTRODUCED_IN(29); 235*38e8c45fSAndroid Build Coastguard Worker 236*38e8c45fSAndroid Build Coastguard Worker /** 237*38e8c45fSAndroid Build Coastguard Worker * Return a count of font variation settings associated with the current font 238*38e8c45fSAndroid Build Coastguard Worker * 239*38e8c45fSAndroid Build Coastguard Worker * The font variation settings are provided as multiple tag-values pairs. 240*38e8c45fSAndroid Build Coastguard Worker * 241*38e8c45fSAndroid Build Coastguard Worker * For example, bold italic font may have following font variation settings: 242*38e8c45fSAndroid Build Coastguard Worker * 'wght' 700, 'slnt' -12 243*38e8c45fSAndroid Build Coastguard Worker * In this case, AFont_getAxisCount returns 2 and AFont_getAxisTag 244*38e8c45fSAndroid Build Coastguard Worker * and AFont_getAxisValue will return following values. 245*38e8c45fSAndroid Build Coastguard Worker * \code{.cpp} 246*38e8c45fSAndroid Build Coastguard Worker * AFont* font = ASystemFontIterator_next(ite); 247*38e8c45fSAndroid Build Coastguard Worker * 248*38e8c45fSAndroid Build Coastguard Worker * // Returns the number of axes 249*38e8c45fSAndroid Build Coastguard Worker * AFont_getAxisCount(font); // Returns 2 250*38e8c45fSAndroid Build Coastguard Worker * 251*38e8c45fSAndroid Build Coastguard Worker * // Returns the tag-value pair for the first axis. 252*38e8c45fSAndroid Build Coastguard Worker * AFont_getAxisTag(font, 0); // Returns 'wght'(0x77676874) 253*38e8c45fSAndroid Build Coastguard Worker * AFont_getAxisValue(font, 0); // Returns 700.0 254*38e8c45fSAndroid Build Coastguard Worker * 255*38e8c45fSAndroid Build Coastguard Worker * // Returns the tag-value pair for the second axis. 256*38e8c45fSAndroid Build Coastguard Worker * AFont_getAxisTag(font, 1); // Returns 'slnt'(0x736c6e74) 257*38e8c45fSAndroid Build Coastguard Worker * AFont_getAxisValue(font, 1); // Returns -12.0 258*38e8c45fSAndroid Build Coastguard Worker * \endcode 259*38e8c45fSAndroid Build Coastguard Worker * 260*38e8c45fSAndroid Build Coastguard Worker * For more information about font variation settings, read [Font Variations Table](https://docs.microsoft.com/en-us/typography/opentype/spec/fvar) 261*38e8c45fSAndroid Build Coastguard Worker * 262*38e8c45fSAndroid Build Coastguard Worker * Available since API level 29. 263*38e8c45fSAndroid Build Coastguard Worker * 264*38e8c45fSAndroid Build Coastguard Worker * \param font a font object. Passing NULL is not allowed. 265*38e8c45fSAndroid Build Coastguard Worker * \return a number of font variation settings. 266*38e8c45fSAndroid Build Coastguard Worker */ 267*38e8c45fSAndroid Build Coastguard Worker size_t AFont_getAxisCount(const AFont* _Nonnull font) __INTRODUCED_IN(29); 268*38e8c45fSAndroid Build Coastguard Worker 269*38e8c45fSAndroid Build Coastguard Worker 270*38e8c45fSAndroid Build Coastguard Worker /** 271*38e8c45fSAndroid Build Coastguard Worker * Return an OpenType axis tag associated with the current font. 272*38e8c45fSAndroid Build Coastguard Worker * 273*38e8c45fSAndroid Build Coastguard Worker * See AFont_getAxisCount for more details. 274*38e8c45fSAndroid Build Coastguard Worker * 275*38e8c45fSAndroid Build Coastguard Worker * Available since API level 29. 276*38e8c45fSAndroid Build Coastguard Worker * 277*38e8c45fSAndroid Build Coastguard Worker * \param font a font object. Passing NULL is not allowed. 278*38e8c45fSAndroid Build Coastguard Worker * \param axisIndex an index to the font variation settings. Passing value larger than or 279*38e8c45fSAndroid Build Coastguard Worker * equal to {@link AFont_getAxisCount} is not allowed. 280*38e8c45fSAndroid Build Coastguard Worker * \return an OpenType axis tag value for the given font variation setting. 281*38e8c45fSAndroid Build Coastguard Worker */ 282*38e8c45fSAndroid Build Coastguard Worker uint32_t AFont_getAxisTag(const AFont* _Nonnull font, uint32_t axisIndex) 283*38e8c45fSAndroid Build Coastguard Worker __INTRODUCED_IN(29); 284*38e8c45fSAndroid Build Coastguard Worker 285*38e8c45fSAndroid Build Coastguard Worker /** 286*38e8c45fSAndroid Build Coastguard Worker * Return an OpenType axis value associated with the current font. 287*38e8c45fSAndroid Build Coastguard Worker * 288*38e8c45fSAndroid Build Coastguard Worker * See AFont_getAxisCount for more details. 289*38e8c45fSAndroid Build Coastguard Worker * 290*38e8c45fSAndroid Build Coastguard Worker * Available since API level 29. 291*38e8c45fSAndroid Build Coastguard Worker * 292*38e8c45fSAndroid Build Coastguard Worker * \param font a font object. Passing NULL is not allowed. 293*38e8c45fSAndroid Build Coastguard Worker * \param axisIndex an index to the font variation settings. Passing value larger than or 294*38e8c45fSAndroid Build Coastguard Worker * equal to {@link AFont_getAxisCount} is not allowed. 295*38e8c45fSAndroid Build Coastguard Worker * \return a float value for the given font variation setting. 296*38e8c45fSAndroid Build Coastguard Worker */ 297*38e8c45fSAndroid Build Coastguard Worker float AFont_getAxisValue(const AFont* _Nonnull font, uint32_t axisIndex) 298*38e8c45fSAndroid Build Coastguard Worker __INTRODUCED_IN(29); 299*38e8c45fSAndroid Build Coastguard Worker 300*38e8c45fSAndroid Build Coastguard Worker __END_DECLS 301*38e8c45fSAndroid Build Coastguard Worker 302*38e8c45fSAndroid Build Coastguard Worker #endif // ANDROID_FONT_H 303*38e8c45fSAndroid Build Coastguard Worker 304*38e8c45fSAndroid Build Coastguard Worker /** @} */ 305