|
|
//===== Copyright � 1996-2005, Valve Corporation, All rights reserved. ======//
//
// Purpose:
//
// $NoKeywords: $
//===========================================================================//
#ifndef IFONTSURFACE_H
#define IFONTSURFACE_H
#ifdef _WIN32
#pragma once
#endif
#include "mathlib/vector2d.h" // must be before the namespace line
#ifdef CreateFont
#undef CreateFont
#endif
// returns true if the surface supports minimize & maximize capabilities
// Numbered this way to prevent interface change in surface.
enum FontFeature_t { FONT_FEATURE_ANTIALIASED_FONTS = 1, FONT_FEATURE_DROPSHADOW_FONTS = 2, FONT_FEATURE_OUTLINE_FONTS = 6, };
// adds to the font
enum FontFlags_t { FONTFLAG_NONE, FONTFLAG_ITALIC = 0x001, FONTFLAG_UNDERLINE = 0x002, FONTFLAG_STRIKEOUT = 0x004, FONTFLAG_SYMBOL = 0x008, FONTFLAG_ANTIALIAS = 0x010, FONTFLAG_GAUSSIANBLUR = 0x020, FONTFLAG_ROTARY = 0x040, FONTFLAG_DROPSHADOW = 0x080, FONTFLAG_ADDITIVE = 0x100, FONTFLAG_OUTLINE = 0x200, FONTFLAG_CUSTOM = 0x400, // custom generated font - never fall back to asian compatibility mode
FONTFLAG_BITMAP = 0x800, // compiled bitmap font - no fallbacks
};
enum FontDrawType_t { // Use the "additive" value from the scheme file
FONT_DRAW_DEFAULT = 0,
// Overrides
FONT_DRAW_NONADDITIVE, FONT_DRAW_ADDITIVE,
FONT_DRAW_TYPE_COUNT = 2, };
struct FontVertex_t { FontVertex_t() {} FontVertex_t( const Vector2D &pos, const Vector2D &coord = Vector2D( 0, 0 ) ) { m_Position = pos; m_TexCoord = coord; } void Init( const Vector2D &pos, const Vector2D &coord = Vector2D( 0, 0 ) ) { m_Position = pos; m_TexCoord = coord; } Vector2D m_Position; Vector2D m_TexCoord; };
typedef unsigned long FontHandle_t;
struct FontCharRenderInfo { // Text pos
int x, y; // Top left and bottom right
// This is now a pointer to an array maintained by the surface, to avoid copying the data on the 360
FontVertex_t *verts; int textureId; int abcA; int abcB; int abcC; int fontTall; FontHandle_t currentFont; // In:
FontDrawType_t drawType; wchar_t ch;
// Out
bool valid; // In/Out (true by default)
bool shouldclip; };
#endif // IFONTSURFACE_H
|