diff options
| author | Treeki <treeki@gmail.com> | 2010-10-07 15:56:13 +0200 | 
|---|---|---|
| committer | Treeki <treeki@gmail.com> | 2010-10-07 15:56:13 +0200 | 
| commit | 5f6dad55d75cbe146ff7fefc899a02ccd39078ba (patch) | |
| tree | 0822df14cc6d2c0329810c9ae7b4a4a638fe82b1 /lyt/common.h | |
| download | LayoutStudio-5f6dad55d75cbe146ff7fefc899a02ccd39078ba.tar.gz LayoutStudio-5f6dad55d75cbe146ff7fefc899a02ccd39078ba.zip  | |
initial commit -- everything compiles except for material.cpp. the material system still needs quite a bit of work; this will come in due time
Diffstat (limited to 'lyt/common.h')
| -rw-r--r-- | lyt/common.h | 104 | 
1 files changed, 104 insertions, 0 deletions
diff --git a/lyt/common.h b/lyt/common.h new file mode 100644 index 0000000..72149d4 --- /dev/null +++ b/lyt/common.h @@ -0,0 +1,104 @@ +#ifndef LYTCOMMON_H +#define LYTCOMMON_H + +#include <QtGlobal> +#include <QtCore/QByteArray> +#include <QtGui/QColor> +#include <QtCore/QPointF> +#include <QtCore/QDataStream> +#include <QtCore/QStringList> +#include <QtCore/QDebug> +#include <QtCore/QVector> + +union Magic { +	char str[4]; +	quint32 value; +}; + +union Version { +	char str[2]; +	quint16 value; +}; + + + +inline quint32 BitExtract(quint32 value, int count, int start) { +	// this function relies on heavy compiler optimisation to be efficient :p +	quint32 mask = 0; +	for (int i = start; i < start+count; i++) { +		mask |= (0x80000000 >> i); +	} + +	return (value & mask) >> (32 - (start + count)); +} + + +QByteArray PadByteArray(QByteArray original, int newLength, char padWith='\0'); + +inline quint32 ColorToRGBA(QColor col) { +	return (col.red() << 24) | (col.green() << 16) | (col.blue() << 8) | (col.alpha()); +} + +inline QColor RGBAToColor(quint32 col) { +	return QColor(col >> 24, (col >> 16) & 0xFF, (col >> 8) & 0xFF, col & 0xFF); +} + +inline void ReadRGBA8Color(QColor &out, QDataStream &in) { +	quint32 col; +	in >> (quint32&)col; +	out = RGBAToColor(col); +} + +inline void WriteRGBA8Color(QColor &in, QDataStream &out) { +	out << (quint32)ColorToRGBA(in); +} + +inline void ReadS10Color(QColor &out, QDataStream &in) { +	quint16 r, g, b, a; +	in >> (quint16&)r; +	in >> (quint16&)g; +	in >> (quint16&)b; +	in >> (quint16&)a; +	out.setRgb(r, g, b, a); +} + +inline void WriteS10Color(QColor &in, QDataStream &out) { +	out << (quint16)in.red(); +	out << (quint16)in.green(); +	out << (quint16)in.blue(); +	out << (quint16)in.alpha(); +} + + + + +struct LYTTexCoords { +	QPointF coord[4]; +}; + +inline void ReadPointF(QDataStream &stream, QPointF &point) { +	float x, y; +	stream >> x; +	stream >> y; +	point.setX(x); +	point.setY(y); +} + +inline void WritePointF(QDataStream &stream, const QPointF &point) { +	stream << (float)point.x(); +	stream << (float)point.y(); +} + +inline void InitDataStream(QDataStream &stream) { +	stream.setByteOrder(QDataStream::BigEndian); +	stream.setVersion(QDataStream::Qt_4_5); +} + +QStringList ReadStringList(QDataStream &in); + +QString ReadFixedLengthASCII(QDataStream &in, int length); +void WriteFixedLengthASCII(QDataStream &out, QString str, int length); + + + +#endif // LYTCOMMON_H  | 
