|
|
|||
File indexing completed on 2025-12-16 10:15:00
0001 /* 0002 * FTGL - OpenGL font library 0003 * 0004 * Copyright (c) 2001-2004 Henry Maddocks <ftgl@opengl.geek.nz> 0005 * Copyright (c) 2008 Sam Hocevar <sam@hocevar.net> 0006 * Copyright (c) 2008 Sean Morrison <learner@brlcad.org> 0007 * 0008 * Permission is hereby granted, free of charge, to any person obtaining 0009 * a copy of this software and associated documentation files (the 0010 * "Software"), to deal in the Software without restriction, including 0011 * without limitation the rights to use, copy, modify, merge, publish, 0012 * distribute, sublicense, and/or sell copies of the Software, and to 0013 * permit persons to whom the Software is furnished to do so, subject to 0014 * the following conditions: 0015 * 0016 * The above copyright notice and this permission notice shall be 0017 * included in all copies or substantial portions of the Software. 0018 * 0019 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 0020 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 0021 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 0022 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 0023 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 0024 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 0025 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 0026 */ 0027 0028 #ifndef __ftgl__ 0029 # warning This header is deprecated. Please use <FTGL/ftgl.h> from now. 0030 # include <FTGL/ftgl.h> 0031 #endif 0032 0033 #ifndef __FTPolygonFont__ 0034 #define __FTPolygonFont__ 0035 0036 #ifdef __cplusplus 0037 0038 #include <vector> 0039 0040 /** 0041 * FTPolygonFont is a specialisation of the FTFont class for handling 0042 * tesselated Polygon Mesh fonts 0043 * 0044 * @see FTFont 0045 */ 0046 class FTGL_EXPORT FTPolygonFont : public FTFont 0047 { 0048 public: 0049 /** 0050 * Open and read a font file. Sets Error flag. 0051 * 0052 * @param fontFilePath font file path. 0053 */ 0054 FTPolygonFont(const char* fontFilePath); 0055 0056 /** 0057 * Open and read a font from a buffer in memory. Sets Error flag. 0058 * The buffer is owned by the client and is NOT copied by FTGL. The 0059 * pointer must be valid while using FTGL. 0060 * 0061 * @param pBufferBytes the in-memory buffer 0062 * @param bufferSizeInBytes the length of the buffer in bytes 0063 */ 0064 FTPolygonFont(const unsigned char *pBufferBytes, 0065 size_t bufferSizeInBytes); 0066 0067 /** 0068 * Destructor 0069 */ 0070 ~FTPolygonFont(); 0071 0072 0073 protected: 0074 /** 0075 * Construct a glyph of the correct type. 0076 * 0077 * Clients must override the function and return their specialised 0078 * FTGlyph. 0079 * 0080 * @param slot A FreeType glyph slot. 0081 * @return An FT****Glyph or <code>null</code> on failure. 0082 */ 0083 virtual FTGlyph* MakeGlyph(FT_GlyphSlot slot); 0084 }; 0085 0086 #define FTGLPolygonFont FTPolygonFont 0087 0088 #endif //__cplusplus 0089 0090 FTGL_BEGIN_C_DECLS 0091 0092 /** 0093 * Create a specialised FTGLfont object for handling tesselated polygon 0094 * mesh fonts. 0095 * 0096 * @param file The font file name. 0097 * @return An FTGLfont* object. 0098 * 0099 * @see FTGLfont 0100 */ 0101 FTGL_EXPORT FTGLfont *ftglCreatePolygonFont(const char *file); 0102 0103 /** 0104 * Create a specialised FTGLfont object for handling tesselated polygon 0105 * mesh fonts from a buffer in memory. Sets Error flag. The buffer is owned 0106 * by the client and is NOT copied by FTGL. The pointer must be valid while 0107 * using FTGL. 0108 * 0109 * @param bytes the in-memory buffer 0110 * @param len the length of the buffer in bytes 0111 * @return An FTGLfont* object. 0112 */ 0113 FTGL_EXPORT FTGLfont *ftglCreatePolygonFontFromMem(const unsigned char *bytes, 0114 size_t len); 0115 0116 FTGL_END_C_DECLS 0117 0118 #endif // __FTPolygonFont__ 0119
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|