Files
Work/boneyard/rawimg.cpp
2024-08-07 09:12:07 -04:00

32 lines
1.4 KiB
C++

#include <boneyard/rawimg.hpp>
bool RawImage::getRawData(GlobalData<BYTE> &rawData)const
{
if(!isOkay())return false;
rawData.size(mImageData.size());
::memcpy(&rawData[0],&((RawImage&)*this).mImageData[0],mImageData.size());
return true;
}
bool RawImage::setRawData(const GlobalData<BYTE> &rawData)
{
if(!rawData.size())return false;
mImageData.size(rawData.size());
::memcpy(&mImageData[0],&((GlobalData<BYTE>&)rawData)[0],rawData.size());
return true;
}
bool RawImage::draw(PureDevice &displayDevice,const Point &dstPoint,const Point &srcPoint)
{
if(!mImageData.size())return false;
return ::SetDIBitsToDevice(displayDevice,dstPoint.x(),dstPoint.y(),width(),height(),srcPoint.x(),srcPoint.y(),0,height(),&mImageData[0],(BITMAPINFO*)mBitmapInfo,DIB_RGB_COLORS);
}
bool RawImage::stretch(PureDevice &displayDevice,const Point &dstDim,const Point &srcPoint)
{
if(!mImageData.size())return false;
return ::StretchDIBits(displayDevice,0,0,dstDim.x(),dstDim.y(),srcPoint.x(),srcPoint.y(),width(),height(),&mImageData[0],(BITMAPINFO*)mBitmapInfo,DIB_RGB_COLORS,SRCCOPY);
}
// ::SetDIBitsToDevice(displayDevice,0,0,640,480,0,0,startScanLine,pureBitmap.height(),&bitmapBytes[0],(BITMAPINFO*)bmInfo,DIB_RGB_COLORS);
// ::StretchDIBits(displayDevice,0,0,windowWidth,windowHeight,0,0,pureBitmap.width(),pureBitmap.height(),&bitmapBytes[0],(BITMAPINFO*)bmInfo,DIB_RGB_COLORS,SRCCOPY);