diff options
| author | Felix Morgner <felix.morgner@gmail.com> | 2026-08-24 11:16:07 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@gmail.com> | 2026-08-24 11:16:07 +0200 |
| commit | c068f22329d5cc722622a2183bbb22eef2093df7 (patch) | |
| tree | 12d56c1aede67988a55e241364606bfbb4dba933 /tool_src/QvLib/QvSFImage.cpp | |
| download | openparsec-main.tar.xz openparsec-main.zip | |
Diffstat (limited to 'tool_src/QvLib/QvSFImage.cpp')
| -rw-r--r-- | tool_src/QvLib/QvSFImage.cpp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/tool_src/QvLib/QvSFImage.cpp b/tool_src/QvLib/QvSFImage.cpp new file mode 100644 index 0000000..d733bf2 --- /dev/null +++ b/tool_src/QvLib/QvSFImage.cpp @@ -0,0 +1,39 @@ +#include <QvSFImage.h> + +// Can't use macro, since we define a constructor. + +QvSFImage::QvSFImage() +{ + size[0] = size[1] = 0; + numComponents = 0; + bytes = NULL; +} + +QvSFImage::~QvSFImage() +{ + if (bytes != NULL) + delete [] bytes; +} +QvBool +QvSFImage::readValue(QvInput *in) +{ + if (! in->read(size[0]) || + ! in->read(size[1]) || + ! in->read(numComponents)) + return FALSE; + + if (bytes != NULL) + delete [] bytes; + bytes = new unsigned char[size[0] * size[1] * numComponents]; + + int byte = 0; + for (int i = 0; i < size[0] * size[1]; i++) { + unsigned long l; + if (! in->read(l)) + return FALSE; + for (int j = 0; j < numComponents; j++) + bytes[byte++] = + (unsigned char) ((l >> (8*(numComponents-j-1))) & 0xFF); + } + return TRUE; +} |
