one more try

This commit is contained in:
David Rose 2007-01-30 13:26:55 +00:00
parent 3e1d2a3a39
commit 6154ac04bf
6 changed files with 127 additions and 131 deletions

View File

@ -182,11 +182,9 @@ ConfigVariableEnum<Texture::WrapMode> text_wrap_mode
("text-wrap-mode", Texture::WM_border_color,
PRC_DESC("The default wrap mode for dynamic text fonts"));
#ifdef HAVE_FREETYPE
ConfigVariableEnum<DynamicTextFont::RenderMode> text_render_mode
ConfigVariableEnum<TextFont::RenderMode> text_render_mode
("text-render-mode", DynamicTextFont::RM_texture,
PRC_DESC("The default render mode for dynamic text fonts"));
#endif

View File

@ -55,10 +55,7 @@ extern ConfigVariableInt text_max_never_break;
extern ConfigVariableEnum<Texture::FilterType> text_minfilter;
extern ConfigVariableEnum<Texture::FilterType> text_magfilter;
extern ConfigVariableEnum<Texture::WrapMode> text_wrap_mode;
#ifdef HAVE_FREETYPE
extern ConfigVariableEnum<DynamicTextFont::RenderMode> text_render_mode;
#endif
extern ConfigVariableEnum<TextFont::RenderMode> text_render_mode;
extern EXPCL_PANDA void init_libtext();

View File

@ -254,50 +254,6 @@ get_glyph(int character, const TextGlyph *&glyph) {
}
////////////////////////////////////////////////////////////////////
// Function: DynamicTextFont::string_render_mode
// Access: Public
// Description: Returns the RenderMode value associated with the given
// string representation, or RM_invalid if the string
// does not match any known RenderMode value.
////////////////////////////////////////////////////////////////////
DynamicTextFont::RenderMode DynamicTextFont::
string_render_mode(const string &string) {
if (cmp_nocase_uh(string, "texture") == 0) {
return RM_texture;
} else if (cmp_nocase_uh(string, "wireframe") == 0) {
return RM_wireframe;
} else if (cmp_nocase_uh(string, "polygon") == 0) {
return RM_polygon;
} else if (cmp_nocase_uh(string, "extruded") == 0) {
return RM_extruded;
} else if (cmp_nocase_uh(string, "solid") == 0) {
return RM_solid;
} else {
return RM_invalid;
}
}
////////////////////////////////////////////////////////////////////
// Function: DynamicTextFont::string_winding_order
// Access: Public
// Description: Returns the WindingOrder value associated with the given
// string representation, or WO_invalid if the string
// does not match any known WindingOrder value.
////////////////////////////////////////////////////////////////////
DynamicTextFont::WindingOrder DynamicTextFont::
string_winding_order(const string &string) {
if (cmp_nocase_uh(string, "default") == 0) {
return WO_default;
} else if (cmp_nocase_uh(string, "left") == 0) {
return WO_left;
} else if (cmp_nocase_uh(string, "right") == 0) {
return WO_right;
} else {
return WO_invalid;
}
}
////////////////////////////////////////////////////////////////////
// Function: DynamicTextFont::initialize
// Access: Private
@ -1023,76 +979,4 @@ outline_nurbs(NurbsCurveResult *ncr) {
return 0;
}
////////////////////////////////////////////////////////////////////
// Function: DynamicTextFont::RenderMode output operator
// Description:
////////////////////////////////////////////////////////////////////
ostream &
operator << (ostream &out, DynamicTextFont::RenderMode rm) {
switch (rm) {
case DynamicTextFont::RM_texture:
return out << "texture";
case DynamicTextFont::RM_wireframe:
return out << "wireframe";
case DynamicTextFont::RM_polygon:
return out << "polygon";
case DynamicTextFont::RM_extruded:
return out << "extruded";
case DynamicTextFont::RM_solid:
return out << "solid";
case DynamicTextFont::RM_invalid:
return out << "invalid";
}
return out << "(**invalid DynamicTextFont::RenderMode(" << (int)rm << ")**)";
}
////////////////////////////////////////////////////////////////////
// Function: DynamicTextFont::RenderMode input operator
// Description:
////////////////////////////////////////////////////////////////////
istream &
operator >> (istream &in, DynamicTextFont::RenderMode &rm) {
string word;
in >> word;
rm = DynamicTextFont::string_render_mode(word);
return in;
}
////////////////////////////////////////////////////////////////////
// Function: DynamicTextFont::WindingOrder output operator
// Description:
////////////////////////////////////////////////////////////////////
ostream &
operator << (ostream &out, DynamicTextFont::WindingOrder wo) {
switch (wo) {
case DynamicTextFont::WO_default:
return out << "default";
case DynamicTextFont::WO_left:
return out << "left";
case DynamicTextFont::WO_right:
return out << "right";
case DynamicTextFont::WO_invalid:
return out << "invalid";
}
return out << "(**invalid DynamicTextFont::WindingOrder(" << (int)wo << ")**)";
}
////////////////////////////////////////////////////////////////////
// Function: DynamicTextFont::WindingOrder input operator
// Description:
////////////////////////////////////////////////////////////////////
istream &
operator >> (istream &in, DynamicTextFont::WindingOrder &wo) {
string word;
in >> word;
wo = DynamicTextFont::string_winding_order(word);
return in;
}
#endif // HAVE_FREETYPE

View File

@ -101,9 +101,6 @@ PUBLISHED:
public:
virtual bool get_glyph(int character, const TextGlyph *&glyph);
static RenderMode string_render_mode(const string &string);
static WindingOrder string_winding_order(const string &string);
private:
void initialize();
void update_filters();
@ -195,11 +192,6 @@ private:
INLINE ostream &operator << (ostream &out, const DynamicTextFont &dtf);
EXPCL_PANDA ostream &operator << (ostream &out, DynamicTextFont::RenderMode rm);
EXPCL_PANDA istream &operator >> (istream &in, DynamicTextFont::RenderMode &rm);
EXPCL_PANDA ostream &operator << (ostream &out, DynamicTextFont::WindingOrder wo);
EXPCL_PANDA istream &operator >> (istream &in, DynamicTextFont::WindingOrder &wo);
#include "dynamicTextFont.I"
#endif // HAVE_FREETYPE

View File

@ -18,6 +18,7 @@
#include "textFont.h"
#include "config_text.h"
#include "string_utils.h"
#include <ctype.h>
TypeHandle TextFont::_type_handle;
@ -53,3 +54,119 @@ write(ostream &out, int indent_level) const {
indent(out, indent_level)
<< "TextFont " << get_name() << "\n";
}
////////////////////////////////////////////////////////////////////
// Function: TextFont::string_render_mode
// Access: Public
// Description: Returns the RenderMode value associated with the given
// string representation, or RM_invalid if the string
// does not match any known RenderMode value.
////////////////////////////////////////////////////////////////////
TextFont::RenderMode TextFont::
string_render_mode(const string &string) {
if (cmp_nocase_uh(string, "texture") == 0) {
return RM_texture;
} else if (cmp_nocase_uh(string, "wireframe") == 0) {
return RM_wireframe;
} else if (cmp_nocase_uh(string, "polygon") == 0) {
return RM_polygon;
} else if (cmp_nocase_uh(string, "extruded") == 0) {
return RM_extruded;
} else if (cmp_nocase_uh(string, "solid") == 0) {
return RM_solid;
} else {
return RM_invalid;
}
}
////////////////////////////////////////////////////////////////////
// Function: TextFont::string_winding_order
// Access: Public
// Description: Returns the WindingOrder value associated with the given
// string representation, or WO_invalid if the string
// does not match any known WindingOrder value.
////////////////////////////////////////////////////////////////////
TextFont::WindingOrder TextFont::
string_winding_order(const string &string) {
if (cmp_nocase_uh(string, "default") == 0) {
return WO_default;
} else if (cmp_nocase_uh(string, "left") == 0) {
return WO_left;
} else if (cmp_nocase_uh(string, "right") == 0) {
return WO_right;
} else {
return WO_invalid;
}
}
////////////////////////////////////////////////////////////////////
// Function: TextFont::RenderMode output operator
// Description:
////////////////////////////////////////////////////////////////////
ostream &
operator << (ostream &out, TextFont::RenderMode rm) {
switch (rm) {
case TextFont::RM_texture:
return out << "texture";
case TextFont::RM_wireframe:
return out << "wireframe";
case TextFont::RM_polygon:
return out << "polygon";
case TextFont::RM_extruded:
return out << "extruded";
case TextFont::RM_solid:
return out << "solid";
case TextFont::RM_invalid:
return out << "invalid";
}
return out << "(**invalid TextFont::RenderMode(" << (int)rm << ")**)";
}
////////////////////////////////////////////////////////////////////
// Function: TextFont::RenderMode input operator
// Description:
////////////////////////////////////////////////////////////////////
istream &
operator >> (istream &in, TextFont::RenderMode &rm) {
string word;
in >> word;
rm = TextFont::string_render_mode(word);
return in;
}
////////////////////////////////////////////////////////////////////
// Function: TextFont::WindingOrder output operator
// Description:
////////////////////////////////////////////////////////////////////
ostream &
operator << (ostream &out, TextFont::WindingOrder wo) {
switch (wo) {
case TextFont::WO_default:
return out << "default";
case TextFont::WO_left:
return out << "left";
case TextFont::WO_right:
return out << "right";
case TextFont::WO_invalid:
return out << "invalid";
}
return out << "(**invalid TextFont::WindingOrder(" << (int)wo << ")**)";
}
////////////////////////////////////////////////////////////////////
// Function: TextFont::WindingOrder input operator
// Description:
////////////////////////////////////////////////////////////////////
istream &
operator >> (istream &in, TextFont::WindingOrder &wo) {
string word;
in >> word;
wo = TextFont::string_winding_order(word);
return in;
}

View File

@ -86,6 +86,9 @@ PUBLISHED:
public:
virtual bool get_glyph(int character, const TextGlyph *&glyph)=0;
static RenderMode string_render_mode(const string &string);
static WindingOrder string_winding_order(const string &string);
protected:
bool _is_valid;
float _line_height;
@ -109,6 +112,11 @@ private:
static TypeHandle _type_handle;
};
EXPCL_PANDA ostream &operator << (ostream &out, TextFont::RenderMode rm);
EXPCL_PANDA istream &operator >> (istream &in, TextFont::RenderMode &rm);
EXPCL_PANDA ostream &operator << (ostream &out, TextFont::WindingOrder wo);
EXPCL_PANDA istream &operator >> (istream &in, TextFont::WindingOrder &wo);
#include "textFont.I"
#endif