From c068f22329d5cc722622a2183bbb22eef2093df7 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Mon, 24 Aug 2026 11:16:07 +0200 Subject: initial import --- tool_src/QvLib/QvSFImage.cpp | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 tool_src/QvLib/QvSFImage.cpp (limited to 'tool_src/QvLib/QvSFImage.cpp') 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 + +// 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; +} -- cgit v1.2.3