mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-15 14:16:07 -06:00
110 lines
2.1 KiB
C++
110 lines
2.1 KiB
C++
#include "PdfDraw.h"
|
|
|
|
namespace Upp {
|
|
|
|
TTFReader::TTFStream& TTFReader::TTFStream::operator%(byte& q) {
|
|
Raw(&q, 1);
|
|
return *this;
|
|
}
|
|
|
|
#ifdef CPU_LE
|
|
TTFReader::TTFStream& TTFReader::TTFStream::operator%(int32& q) {
|
|
byte *h = (byte *)&q;
|
|
*this % h[3] % h[2] % h[1] % h[0];
|
|
return *this;
|
|
}
|
|
|
|
TTFReader::TTFStream& TTFReader::TTFStream::operator%(uint32& q) {
|
|
byte *h = (byte *)&q;
|
|
*this % h[3] % h[2] % h[1] % h[0];
|
|
return *this;
|
|
}
|
|
|
|
TTFReader::TTFStream& TTFReader::TTFStream::operator%(int16& q) {
|
|
byte *h = (byte *)&q;
|
|
*this % h[1] % h[0];
|
|
return *this;
|
|
}
|
|
|
|
TTFReader::TTFStream& TTFReader::TTFStream::operator%(uint16& q) {
|
|
byte *h = (byte *)&q;
|
|
*this % h[1] % h[0];
|
|
return *this;
|
|
}
|
|
#else
|
|
TTFReader::TTFStream& TTFReader::TTFStream::operator%(int32& q) {
|
|
byte *h = (byte *)&q;
|
|
*this % h[0] % h[1] % h[2] % h[3];
|
|
return *this;
|
|
}
|
|
|
|
TTFReader::TTFStream& TTFReader::TTFStream::operator%(uint32& q) {
|
|
byte *h = (byte *)&q;
|
|
*this % h[0] % h[1] % h[2] % h[3];
|
|
return *this;
|
|
}
|
|
|
|
TTFReader::TTFStream& TTFReader::TTFStream::operator%(int16& q) {
|
|
byte *h = (byte *)&q;
|
|
*this % h[0] % h[1];
|
|
return *this;
|
|
}
|
|
|
|
TTFReader::TTFStream& TTFReader::TTFStream::operator%(uint16& q) {
|
|
byte *h = (byte *)&q;
|
|
*this % h[0] % h[1];
|
|
return *this;
|
|
}
|
|
#endif
|
|
|
|
void TTFReader::TTFStreamIn::Seek(int offset)
|
|
{
|
|
ASSERT(offset >= 0 && offset < lim - beg);
|
|
s = beg + offset;
|
|
}
|
|
|
|
int TTFReader::TTFStreamIn::Get8()
|
|
{
|
|
if(s + 1 > lim)
|
|
throw Fail();
|
|
int q = (byte)*s;
|
|
s++;
|
|
return q;
|
|
}
|
|
|
|
int TTFReader::TTFStreamIn::Get16()
|
|
{
|
|
if(s + 2 > lim)
|
|
throw Fail();
|
|
int q = ((byte)s[0] << 8) | (byte)s[1];
|
|
s += 2;
|
|
return q;
|
|
|
|
}
|
|
|
|
int TTFReader::TTFStreamIn::Get32()
|
|
{
|
|
if(s + 4 > lim)
|
|
throw Fail();
|
|
int q = ((byte)s[0] << 24) | ((byte)s[1] << 16) | ((byte)s[2] << 8) | (byte)s[3];
|
|
s += 2;
|
|
return q;
|
|
}
|
|
|
|
String TTFReader::TTFStreamIn::Get(int n)
|
|
{
|
|
if(s + n > lim)
|
|
throw Fail();
|
|
String r(s, n);
|
|
s += n;
|
|
return r;
|
|
}
|
|
|
|
void TTFReader::TTFStreamIn::Raw(void *ptr, int count) {
|
|
if(s + count > lim)
|
|
throw Fail();
|
|
memcpy(ptr, s, count);
|
|
s += count;
|
|
}
|
|
|
|
}
|