xref: /haiku/src/servers/app/drawing/BitmapBuffer.cpp (revision 359c905c57c9d43ce84badcaef859fa94322897c)
14594032dSStephan Aßmus // BitmapBuffer.h
24594032dSStephan Aßmus 
3*359c905cSStephan Aßmus #include "ServerBitmap.h"
44594032dSStephan Aßmus 
54594032dSStephan Aßmus #include "BitmapBuffer.h"
64594032dSStephan Aßmus 
7*359c905cSStephan Aßmus // TODO: It should be more or less guaranteed that this object
8*359c905cSStephan Aßmus // is not used if InitCheck() returns an error, so the checks
9*359c905cSStephan Aßmus // in all thos functions should probably be removed...
10*359c905cSStephan Aßmus 
114594032dSStephan Aßmus // constructor
BitmapBuffer(ServerBitmap * bitmap)12*359c905cSStephan Aßmus BitmapBuffer::BitmapBuffer(ServerBitmap* bitmap)
134594032dSStephan Aßmus 	: fBitmap(bitmap)
144594032dSStephan Aßmus {
154594032dSStephan Aßmus }
164594032dSStephan Aßmus 
174594032dSStephan Aßmus // destructor
~BitmapBuffer()184594032dSStephan Aßmus BitmapBuffer::~BitmapBuffer()
194594032dSStephan Aßmus {
20*359c905cSStephan Aßmus 	// We don't own the ServerBitmap
214594032dSStephan Aßmus }
224594032dSStephan Aßmus 
234594032dSStephan Aßmus // InitCheck
244594032dSStephan Aßmus status_t
InitCheck() const254594032dSStephan Aßmus BitmapBuffer::InitCheck() const
264594032dSStephan Aßmus {
274594032dSStephan Aßmus 	status_t ret = B_NO_INIT;
284594032dSStephan Aßmus 	if (fBitmap)
29*359c905cSStephan Aßmus 		ret = fBitmap->IsValid() ? B_OK : B_ERROR;
304594032dSStephan Aßmus 	return ret;
314594032dSStephan Aßmus }
324594032dSStephan Aßmus 
334594032dSStephan Aßmus // ColorSpace
344594032dSStephan Aßmus color_space
ColorSpace() const354594032dSStephan Aßmus BitmapBuffer::ColorSpace() const
364594032dSStephan Aßmus {
374594032dSStephan Aßmus 	if (InitCheck() >= B_OK)
384594032dSStephan Aßmus 		return fBitmap->ColorSpace();
394594032dSStephan Aßmus 	return B_NO_COLOR_SPACE;
404594032dSStephan Aßmus }
414594032dSStephan Aßmus 
424594032dSStephan Aßmus // Bits
434594032dSStephan Aßmus void*
Bits() const444594032dSStephan Aßmus BitmapBuffer::Bits() const
454594032dSStephan Aßmus {
464594032dSStephan Aßmus 	if (InitCheck() >= B_OK)
474594032dSStephan Aßmus 		return fBitmap->Bits();
484594032dSStephan Aßmus 	return NULL;
494594032dSStephan Aßmus }
504594032dSStephan Aßmus 
514594032dSStephan Aßmus // BytesPerRow
524594032dSStephan Aßmus uint32
BytesPerRow() const534594032dSStephan Aßmus BitmapBuffer::BytesPerRow() const
544594032dSStephan Aßmus {
554594032dSStephan Aßmus 	if (InitCheck() >= B_OK)
564594032dSStephan Aßmus 		return fBitmap->BytesPerRow();
574594032dSStephan Aßmus 	return 0;
584594032dSStephan Aßmus }
594594032dSStephan Aßmus 
604594032dSStephan Aßmus // Width
614594032dSStephan Aßmus uint32
Width() const624594032dSStephan Aßmus BitmapBuffer::Width() const
634594032dSStephan Aßmus {
644594032dSStephan Aßmus 	if (InitCheck() >= B_OK)
65*359c905cSStephan Aßmus 		return fBitmap->Width();
664594032dSStephan Aßmus 	return 0;
674594032dSStephan Aßmus }
684594032dSStephan Aßmus 
694594032dSStephan Aßmus // Height
704594032dSStephan Aßmus uint32
Height() const714594032dSStephan Aßmus BitmapBuffer::Height() const
724594032dSStephan Aßmus {
734594032dSStephan Aßmus 	if (InitCheck() >= B_OK)
74*359c905cSStephan Aßmus 		return fBitmap->Height();
754594032dSStephan Aßmus 	return 0;
764594032dSStephan Aßmus }
774594032dSStephan Aßmus 
78