nvidia-texture-tools/src/nvcore/TextWriter.cpp

46 lines
923 B
C++
Raw Normal View History

2010-05-27 23:18:08 +00:00
// This code is in the public domain -- Ignacio Casta<74>o <castano@gmail.com>
2007-11-06 10:14:57 +00:00
#include "TextWriter.h"
2007-11-06 10:14:57 +00:00
using namespace nv;
/// Constructor
TextWriter::TextWriter(Stream * s) :
2010-05-27 23:18:08 +00:00
s(s),
str(1024)
2007-11-06 10:14:57 +00:00
{
2010-05-27 23:18:08 +00:00
nvCheck(s != NULL);
nvCheck(s->isSaving());
2007-11-06 10:14:57 +00:00
}
void TextWriter::writeString(const char * str)
{
2010-05-27 23:18:08 +00:00
nvDebugCheck(s != NULL);
s->serialize(const_cast<char *>(str), (int)strlen(str));
2007-11-06 10:14:57 +00:00
}
void TextWriter::writeString(const char * str, uint len)
{
2010-05-27 23:18:08 +00:00
nvDebugCheck(s != NULL);
s->serialize(const_cast<char *>(str), len);
2007-11-06 10:14:57 +00:00
}
void TextWriter::write(const char * format, ...)
{
2010-05-27 23:18:08 +00:00
va_list arg;
va_start(arg,format);
str.formatList(format, arg);
2010-05-27 23:18:08 +00:00
writeString(str.str(), str.length());
va_end(arg);
2007-11-06 10:14:57 +00:00
}
void TextWriter::write(const char * format, va_list arg)
{
2010-05-27 23:18:08 +00:00
va_list tmp;
va_copy(tmp, arg);
str.formatList(format, arg);
2010-05-27 23:18:08 +00:00
writeString(str.str(), str.length());
va_end(tmp);
2007-11-06 10:14:57 +00:00
}