1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
/*******************************************************
* Copyright (c) 2015-2019, ArrayFire
* All rights reserved.
*
* This file is distributed under 3-clause BSD license.
* The complete license agreement can be obtained at:
* http://arrayfire.com/licenses/BSD-3-Clause
********************************************************/
#pragma once
#include <fg/defines.h>
#ifdef __cplusplus
extern "C" {
#endif
/** \addtogroup font_functions
* @{
*/
/**
Create a Font object
\param[out] pFont will point to the font object created after this function returns
\return \ref fg_err error code
*/
FGAPI fg_err fg_create_font(fg_font* pFont);
/**
Increase reference count of the resource
\param[out] pOut is the new handle to existing resource
\param[in] pIn is the existing resource handle
\return \ref fg_err error code
*/
FGAPI fg_err fg_retain_font(fg_font *pOut, fg_font pIn);
/**
Destroy font object
\param[in] pFont is the font handle
\return \ref fg_err error code
*/
FGAPI fg_err fg_release_font(fg_font pFont);
/**
Load a given font file
\param[in] pFont is the font handle
\param[in] pFileFullPath True Type Font file path
\return \ref fg_err error code
*/
FGAPI fg_err fg_load_font_file(fg_font pFont, const char* const pFileFullPath);
/**
Load a system font based on the name
\param[in] pFont is the font handle
\param[in] pFontName True Type Font name
\return \ref fg_err error code
*/
FGAPI fg_err fg_load_system_font(fg_font pFont, const char* const pFontName);
/** @} */
#ifdef __cplusplus
}
#endif
#ifdef __cplusplus
namespace forge
{
/**
\class Font
\brief Font object is essentially a resource handler for the specific font you want to use
*/
class Font {
private:
fg_font mValue;
public:
/**
Creates Font object
*/
FGAPI Font();
/**
Copy constructor for Font
\param[in] other is the Font object of which we make a copy of, this is not a deep copy.
*/
FGAPI Font(const Font& other);
/**
Font Destructor
*/
FGAPI ~Font();
/**
Load a given font file
\param[in] pFile True Type Font file path
*/
FGAPI void loadFontFile(const char* const pFile);
/**
Load a system font based on the name
\param[in] pName True Type Font name
*/
FGAPI void loadSystemFont(const char* const pName);
/**
Get handle for internal implementation of Font object
*/
FGAPI fg_font get() const;
};
}
#endif
|