mirror of
https://github.com/AquariaOSE/Aquaria.git
synced 2025-10-05 05:42:18 +00:00
initial commit. This is icculus version 5542b94cae02a6333845854bbbd1abe0a259f1a4
This commit is contained in:
commit
3096eaf5e2
2519 changed files with 816064 additions and 0 deletions
94
ExternalLibs/FTGL/include/FTTextureGlyph.h
Normal file
94
ExternalLibs/FTGL/include/FTTextureGlyph.h
Normal file
|
@ -0,0 +1,94 @@
|
|||
#ifndef __FTTextureGlyph__
|
||||
#define __FTTextureGlyph__
|
||||
|
||||
|
||||
#include <ft2build.h>
|
||||
#include FT_FREETYPE_H
|
||||
#include FT_GLYPH_H
|
||||
|
||||
#include "FTGL.h"
|
||||
#include "FTGlyph.h"
|
||||
|
||||
|
||||
/**
|
||||
* FTTextureGlyph is a specialisation of FTGlyph for creating texture
|
||||
* glyphs.
|
||||
*
|
||||
* @see FTGlyphContainer
|
||||
*
|
||||
*/
|
||||
class FTGL_EXPORT FTTextureGlyph : public FTGlyph
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param glyph The Freetype glyph to be processed
|
||||
* @param id The id of the texture that this glyph will be
|
||||
* drawn in
|
||||
* @param xOffset The x offset into the parent texture to draw
|
||||
* this glyph
|
||||
* @param yOffset The y offset into the parent texture to draw
|
||||
* this glyph
|
||||
* @param width The width of the parent texture
|
||||
* @param height The height (number of rows) of the parent texture
|
||||
*/
|
||||
FTTextureGlyph( FT_GlyphSlot glyph, int id, int xOffset, int yOffset, GLsizei width, GLsizei height);
|
||||
|
||||
/**
|
||||
* Destructor
|
||||
*/
|
||||
virtual ~FTTextureGlyph();
|
||||
|
||||
/**
|
||||
* Renders this glyph at the current pen position.
|
||||
*
|
||||
* @param pen The current pen position.
|
||||
* @return The advance distance for this glyph.
|
||||
*/
|
||||
virtual const FTPoint& Render( const FTPoint& pen);
|
||||
|
||||
/**
|
||||
* Reset the currently active texture to zero to get into a known state before
|
||||
* drawing a string. This is to get round possible threading issues.
|
||||
*/
|
||||
static void ResetActiveTexture(){ activeTextureID = 0;}
|
||||
|
||||
private:
|
||||
/**
|
||||
* The width of the glyph 'image'
|
||||
*/
|
||||
int destWidth;
|
||||
|
||||
/**
|
||||
* The height of the glyph 'image'
|
||||
*/
|
||||
int destHeight;
|
||||
|
||||
/**
|
||||
* Vector from the pen position to the topleft corner of the pixmap
|
||||
*/
|
||||
FTPoint pos;
|
||||
|
||||
/**
|
||||
* The texture co-ords of this glyph within the texture.
|
||||
*/
|
||||
FTPoint uv[2];
|
||||
|
||||
/**
|
||||
* The texture index that this glyph is contained in.
|
||||
*/
|
||||
int glTextureID;
|
||||
|
||||
/**
|
||||
* The texture index of the currently active texture
|
||||
*
|
||||
* We keep track of the currently active texture to try to reduce the number
|
||||
* of texture bind operations.
|
||||
*/
|
||||
static GLint activeTextureID;
|
||||
|
||||
};
|
||||
|
||||
|
||||
#endif // __FTTextureGlyph__
|
Loading…
Add table
Add a link
Reference in a new issue