bool
PictureTest::Test(draw_func* func, BRect frame)
{
	CleanUp();

	fDirectBitmap = CreateBitmap(func, frame);
	TEST_AND_RETURN(fDirectBitmap == NULL, "Could not create direct draw bitmap!", false);

	BPicture *picture = RecordPicture(func, frame);
	AutoDelete<BPicture> _picture(picture);
	TEST_AND_RETURN(picture == NULL, "Picture could not be recorded!", false);
		
	BPicture *archivedPicture = SaveAndRestore(picture);
	AutoDelete<BPicture> _archivedPicture(archivedPicture);
	TEST_AND_RETURN(picture == NULL, "Picture could not be flattened and unflattened!", false);
	
	fBitmapFromPicture = CreateBitmap(picture, frame);
	TEST_AND_RETURN(fBitmapFromPicture == NULL, "Could not create bitmap from original picture!", false);
		
	fBitmapFromRestoredPicture = CreateBitmap(archivedPicture, frame);
	TEST_AND_RETURN(fBitmapFromRestoredPicture == NULL, "Could not create bitmap from archived picture!", false);
	
	BString reason;
	if (!IsSame(fDirectBitmap, fBitmapFromPicture, reason)) {
		BString message("Bitmap from picture differs from direct drawing bitmap: ");
		message += reason;
		SetErrorMessage(message.String());
		return false;
	}
	if (!IsSame(fDirectBitmap, fBitmapFromRestoredPicture, reason)) {
		BString message("Bitmap from restored picture differs from direct drawing bitmap: ");
		message += reason;
		SetErrorMessage(message.String());
		return false;
	}
	return true;
}
Exemple #2
0
Forum::Forum() : ServiceBuilding(Service::forum, object::forum, Size(2)), _d( new Impl )
{
  _d->taxValue = 0;
  _picture().load( ResourceGroup::govt, 10 );
}
Exemple #3
0
Merchant::Merchant( EmpirePtr empire )
  : Object( empire ), _d( new Impl )
{
  //default picture
  _picture().load( ResourceGroup::empirebits, PicID::landTradeRoute );
}