1 /* 2 * FTGL - OpenGL font library 3 * 4 * Copyright (c) 2001-2004 Henry Maddocks <ftgl@opengl.geek.nz> 5 * Copyright (c) 2008 Sam Hocevar <sam@zoy.org> 6 * Copyright (c) 2008 Sean Morrison <learner@brlcad.org> 7 * 8 * Permission is hereby granted, free of charge, to any person obtaining 9 * a copy of this software and associated documentation files (the 10 * "Software"), to deal in the Software without restriction, including 11 * without limitation the rights to use, copy, modify, merge, publish, 12 * distribute, sublicense, and/or sell copies of the Software, and to 13 * permit persons to whom the Software is furnished to do so, subject to 14 * the following conditions: 15 * 16 * The above copyright notice and this permission notice shall be 17 * included in all copies or substantial portions of the Software. 18 * 19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 20 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 21 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 22 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 23 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 24 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 25 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 26 */ 27 28 #ifndef __ftgl__ 29 # warning This header is deprecated. Please use <FTGL/ftgl.h> from now. 30 # include <FTGL/ftgl.h> 31 #endif 32 33 #ifndef __FTExtrudeFont__ 34 #define __FTExtrudeFont__ 35 36 #ifdef __cplusplus 37 38 39 /** 40 * FTExtrudeFont is a specialisation of the FTFont class for handling 41 * extruded Polygon fonts 42 * 43 * @see FTFont 44 * @see FTPolygonFont 45 */ 46 class FTGL_EXPORT FTExtrudeFont : public FTFont 47 { 48 public: 49 /** 50 * Open and read a font file. Sets Error flag. 51 * 52 * @param fontFilePath font file path. 53 */ 54 FTExtrudeFont(const char* fontFilePath); 55 56 /** 57 * Open and read a font from a buffer in memory. Sets Error flag. 58 * The buffer is owned by the client and is NOT copied by FTGL. The 59 * pointer must be valid while using FTGL. 60 * 61 * @param pBufferBytes the in-memory buffer 62 * @param bufferSizeInBytes the length of the buffer in bytes 63 */ 64 FTExtrudeFont(const unsigned char *pBufferBytes, 65 size_t bufferSizeInBytes); 66 67 /** 68 * Destructor 69 */ 70 ~FTExtrudeFont(); 71 72 protected: 73 /** 74 * Construct a glyph of the correct type. 75 * 76 * Clients must override the function and return their specialised 77 * FTGlyph. 78 * 79 * @param slot A FreeType glyph slot. 80 * @return An FT****Glyph or <code>null</code> on failure. 81 */ 82 virtual FTGlyph* MakeGlyph(FT_GlyphSlot slot); 83 }; 84 85 #define FTGLExtrdFont FTExtrudeFont 86 87 #endif //__cplusplus 88 89 FTGL_BEGIN_C_DECLS 90 91 /** 92 * Create a specialised FTGLfont object for handling extruded poygon fonts. 93 * 94 * @param file The font file name. 95 * @return An FTGLfont* object. 96 * 97 * @see FTGLfont 98 * @see ftglCreatePolygonFont 99 */ 100 FTGL_EXPORT FTGLfont *ftglCreateExtrudeFont(const char *file); 101 102 FTGL_END_C_DECLS 103 104 #endif // __FTExtrudeFont__ 105 106