32 lines
1.4 KiB
C++
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);
|