Initial commit
This commit is contained in:
164
Include/ZRendererUtil/ZFontRenderer.hpp
Normal file
164
Include/ZRendererUtil/ZFontRenderer.hpp
Normal file
@@ -0,0 +1,164 @@
|
||||
/*
|
||||
ZFontRenderer.h
|
||||
Author: Patrick Baggett <ptbaggett@762studios.com>
|
||||
|
||||
Purpose: TODO
|
||||
|
||||
Changelog
|
||||
2011/09/18 - creation (ptbaggett)
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef _ZFONTRENDERER_HPP
|
||||
#define _ZFONTRENDERER_HPP
|
||||
|
||||
#include <SST/SST_Mat44.h>
|
||||
|
||||
#include <ZRenderer/ZRenderer.hpp>
|
||||
|
||||
//Font Face
|
||||
typedef void* ZFontFace;
|
||||
|
||||
//ZFontBounds struct, used as such
|
||||
// top --- right
|
||||
// | |
|
||||
// left --- bottom
|
||||
struct ZFontBounds
|
||||
{
|
||||
//ZFontBounds of a rectangle (lower-left orientation)
|
||||
int left, bottom, right, top;
|
||||
};
|
||||
|
||||
class ZFontRenderer
|
||||
{
|
||||
protected:
|
||||
//Protected Constructor
|
||||
ZFontRenderer() { }
|
||||
|
||||
public:
|
||||
//Virtual Destructor
|
||||
virtual ~ZFontRenderer() { }
|
||||
|
||||
/*
|
||||
virtual public ZFontRenderer::createFontFace
|
||||
|
||||
Creates a font face from a memory image of a font file.
|
||||
|
||||
@param _pixelSize - The pixel size of a character. To use point size (ala MS Word), use (point size / 72.0) * DPI.
|
||||
@param _fontData - The font file's data
|
||||
@param _dataSize - The size in bytes of the file data.
|
||||
@return (ZFontFace)
|
||||
@context (all)
|
||||
*/
|
||||
virtual ZFontFace CreateFontFace(int _pixelSize, const void* _fontData, unsigned int _dataSize) = 0;
|
||||
|
||||
/*
|
||||
virtual public ZFontRenderer::deleteFontFace
|
||||
|
||||
Deletes a font face. If this face is the currently active face, then the active face is set to NULL.
|
||||
|
||||
@param face - The font face to delete.
|
||||
@return (void)
|
||||
@context (all)
|
||||
*/
|
||||
virtual void DeleteFontFace(ZFontFace face) = 0;
|
||||
|
||||
/*
|
||||
virtual public ZFontRenderer::beginText
|
||||
|
||||
Sets up render state to begin drawing text. The only legal functions to call between beginText(),
|
||||
and endText() are renderText(), computeBounds(), and setColor().
|
||||
|
||||
@param _ctx - The ZFrameContext for this frame
|
||||
@param _xform - The transformation
|
||||
@return (void)
|
||||
@context (all)
|
||||
*/
|
||||
virtual void BeginText(ZFrameContext _ctx, const SST_Mat44f& _xform) = 0;
|
||||
|
||||
/*
|
||||
virtual public ZFontRenderer::endText
|
||||
|
||||
Restores render state when done drawing text, flushes any buffered text.
|
||||
|
||||
@return (void)
|
||||
@context (all)
|
||||
*/
|
||||
virtual void EndText() = 0;
|
||||
|
||||
/*
|
||||
virtual public ZFontRenderer::renderText
|
||||
|
||||
Renders text at the given XY location
|
||||
|
||||
@param x - The left edge of the text
|
||||
@param y - The bottom edge of the text
|
||||
@param text - Some letters render below this line (e.g. the letter g's "tail").
|
||||
@return (void)
|
||||
@context (all)
|
||||
*/
|
||||
virtual void RenderText(int x, int y, const char* text) = 0;
|
||||
|
||||
/*
|
||||
virtual public ZFontRenderer::computeBounds
|
||||
|
||||
Computes the bounding box for text, as if it was placed at the origin.
|
||||
|
||||
@param text - The text to compute a bounding box for.
|
||||
@param bounds - Pointer to where the computed boundaries are stored.
|
||||
@return (void)
|
||||
@context (all)
|
||||
*/
|
||||
virtual void ComputeBounds(const char* text, ZFontBounds* bounds) = 0;
|
||||
|
||||
/*
|
||||
virtual public ZFontRenderer::setColor
|
||||
|
||||
Sets the color of the text. Requires that there is a current font face, set with setFontFace().
|
||||
|
||||
@param r - The red component in the range of [0,1]
|
||||
@param g - The green component in the range of [0,1]
|
||||
@param b - The blue component in the range of [0,1]
|
||||
@param a - The alpha (transparency) component in the range of [0,1]
|
||||
@return (void)
|
||||
@context (all)
|
||||
*/
|
||||
virtual void SetColor(float r, float g, float b, float a) = 0;
|
||||
|
||||
/*
|
||||
virtual public ZFontRenderer::setColor
|
||||
|
||||
Sets a color with a packed 32-bit integer, converting to 4x32-bit floats first. Due to
|
||||
endian-ness differences, don't typecast an char[4] to int* and then dereference it!
|
||||
|
||||
@param rgba - The RGBA color stored as (hex) 0xRRGGBBAA
|
||||
@return (void)
|
||||
@context (all)
|
||||
*/
|
||||
virtual void SetColor(unsigned int rgba) = 0;
|
||||
|
||||
/*
|
||||
public ZFontRenderer::setFontFace
|
||||
|
||||
Sets the current font face.
|
||||
|
||||
@param face - The face to make current
|
||||
@return (void)
|
||||
@context (all)
|
||||
*/
|
||||
virtual void SetFontFace(ZFontFace face) = 0;
|
||||
|
||||
/*
|
||||
public ZFontRenderer::getFontFace
|
||||
|
||||
Gets the current font face.
|
||||
|
||||
@return (ZFontFace) - Handle to the current font face. It is not reference counted.
|
||||
@context (all)
|
||||
*/
|
||||
virtual ZFontFace GetFontFace() = 0;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user