engine/dgl/bitmapBm8.cc
2024-01-07 04:36:33 +00:00

53 lines
1.2 KiB
C++

//-----------------------------------------------------------------------------
// V12 Engine
//
// Copyright (c) 2001 GarageGames.Com
// Portions Copyright (c) 2001 by Sierra Online, Inc.
//-----------------------------------------------------------------------------
#include "dgl/gBitmap.h"
#include "dgl/gPalette.h"
#include "Core/stream.h"
#include "Platform/platform.h"
bool GBitmap::readBmp8(Stream& stream)
{
stream.read(&byteSize);
stream.read(&width);
stream.read(&height);
stream.read(&bytesPerPixel);
stream.read(&numMipLevels);
U32 i;
for (i = 0; i < numMipLevels; i++)
stream.read(&mipLevelOffsets[i]);
internalFormat = GBitmap::Palettized;
pPalette = new GPalette;
pPalette->read(stream);
pBits = new U8[byteSize];
stream.read(byteSize, pBits);
return true;
}
bool GBitmap::writeBmp8(Stream& stream)
{
AssertFatal(pPalette != NULL, "Error, must have a palette to write the bmp!");
stream.write(byteSize);
stream.write(width);
stream.write(height);
stream.write(bytesPerPixel);
stream.write(numMipLevels);
U32 i;
for (i = 0; i < numMipLevels; i++)
stream.write(mipLevelOffsets[i]);
pPalette->write(stream);
stream.write(byteSize, pBits);
return true;
}