current state of test app, contains some cleanup too

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10919 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stephan Aßmus
2005-01-20 23:08:17 +00:00
parent f71ffba994
commit fd78338f60
+40 -27
View File
@@ -60,6 +60,16 @@ fprintf(stdout, "done\n");
} }
float penSize = 3.0; float penSize = 3.0;
float scale = 1.0; float scale = 1.0;
rgb_color lineColor1 = (rgb_color){ 20, 20, 20, 255 };
// rgb_color lineColor2 = (rgb_color){ 20, 20, 20, 255 };
rgb_color textColor1 = (rgb_color){ 200, 200, 200, 255 };
// rgb_color textColor2 = (rgb_color){ 200, 200, 200, 255 };
rgb_color rectColorH = (rgb_color){ 255, 0, 0, 255 };
rgb_color rectColorL = (rgb_color){ 0, 0, 255, 255 };
rgb_color arcColor = (rgb_color){ 255, 0, 0, 255 };
rgb_color ellipseColorH = (rgb_color){ 255, 255, 0, 255 };
rgb_color ellipseColorL = (rgb_color){ 128, 0, 50, 255 };
rgb_color roundRectColor = (rgb_color){ 0, 0, 255, 255 };
// TODO: Painter behaves differently when origin has subpixel offset // TODO: Painter behaves differently when origin has subpixel offset
// BPoint origin(20.3, 10.8); // BPoint origin(20.3, 10.8);
BPoint origin(20, 10); BPoint origin(20, 10);
@@ -79,7 +89,7 @@ fprintf(stdout, "done\n");
font.SetRotation(8.0); font.SetRotation(8.0);
// font.SetFamilyAndStyle(1); // font.SetFamilyAndStyle(1);
BBitmap* testBitmap = new BBitmap(BRect(20, 5, 72, 46), 0, B_RGB32); BBitmap* testBitmap = new BBitmap(BRect(20, 0, 150, 50), 0, B_RGB32);
// fill testBitmap with content // fill testBitmap with content
uint8* bits = (uint8*)testBitmap->Bits(); uint8* bits = (uint8*)testBitmap->Bits();
uint32 bitmapWidth = testBitmap->Bounds().IntegerWidth() + 1; uint32 bitmapWidth = testBitmap->Bounds().IntegerWidth() + 1;
@@ -104,14 +114,16 @@ fprintf(stdout, "done\n");
*(uint32*)(&bits[(bitmapHeight - 1) * bpr + (bitmapWidth - 1) * 4]) = 0; *(uint32*)(&bits[(bitmapHeight - 1) * bpr + (bitmapWidth - 1) * 4]) = 0;
BRect testBitmapCrop(testBitmap->Bounds()); BRect testBitmapCrop(testBitmap->Bounds());
// testBitmapCrop.left += 20.0; testBitmapCrop.left += 20.0;
BRect testBitmapDestRect = testBitmapCrop; BRect testBitmapDestRect = testBitmapCrop;
testBitmapDestRect.OffsetBy(200, 20); testBitmapDestRect.OffsetBy(50, 20);
testBitmapDestRect.right = testBitmapDestRect.left + testBitmapDestRect.Width() * 2; // testBitmapDestRect.OffsetTo(0, 0);
testBitmapDestRect.bottom = testBitmapDestRect.top + testBitmapDestRect.Height() * 2; // testBitmapDestRect.right = testBitmapDestRect.left + testBitmapDestRect.Width() * 2;
// testBitmapDestRect.bottom = testBitmapDestRect.top + testBitmapDestRect.Height() * 2;
// frame buffer // frame buffer
BBitmap* bitmap = new BBitmap(bounds, B_RGB32); BBitmap* bitmap = new BBitmap(bounds, B_RGB32);
//memset(bitmap->Bits(), 0, bitmap->BitsLength());
BitmapBuffer* buffer = new BitmapBuffer(bitmap); BitmapBuffer* buffer = new BitmapBuffer(bitmap);
Painter painter; Painter painter;
painter.AttachToBuffer(buffer); painter.AttachToBuffer(buffer);
@@ -126,15 +138,15 @@ fprintf(stdout, "done\n");
bigtime_t painterNow = system_time(); bigtime_t painterNow = system_time();
painter.SetDrawingMode(B_OP_OVER); painter.SetDrawingMode(B_OP_SUBTRACT);
painter.SetHighColor(210, 210, 210); painter.SetHighColor(lineColor1);
for (uint32 y = 0; y <= height / 2; y += 10) for (uint32 y = 0; y <= height / 2; y += 10)
painter.StrokeLine(BPoint(0, 0), BPoint(width / 2, y)); painter.StrokeLine(BPoint(0, 0), BPoint(width / 2, y));
for (uint32 x = 0; x <= width; x += 10) for (uint32 x = 0; x <= width; x += 10)
painter.StrokeLine(BPoint(0, 0), BPoint(x, height)); painter.StrokeLine(BPoint(0, 0), BPoint(x, height));
painter.SetPenSize(penSize * 5); painter.SetPenSize(penSize * 5);
painter.SetHighColor(255, 0, 0, 255); painter.SetHighColor(rectColorH);
painter.SetLowColor(128, 0, 255, 255); painter.SetLowColor(rectColorL);
// painter.SetScale(1.0); // painter.SetScale(1.0);
// painter.SetOrigin(B_ORIGIN); // painter.SetOrigin(B_ORIGIN);
// painter.SetDrawingMode(B_OP_INVERT); // painter.SetDrawingMode(B_OP_INVERT);
@@ -149,11 +161,11 @@ bigtime_t painterNow = system_time();
painter.StrokeLine(BPoint(230.0, 50.0)); painter.StrokeLine(BPoint(230.0, 50.0));
painter.StrokeLine(BPoint(230.0, 30.0));*/ painter.StrokeLine(BPoint(230.0, 30.0));*/
painter.SetHighColor(255, 255, 0, 255); painter.SetHighColor(ellipseColorH);
painter.SetLowColor(128, 0, 50, 255); painter.SetLowColor(ellipseColorL);
painter.SetDrawingMode(B_OP_OVER); painter.SetDrawingMode(B_OP_OVER);
painter.StrokeEllipse(center, xRadius, yRadius, kDottedBigger); painter.StrokeEllipse(center, xRadius, yRadius, kDottedBigger);
painter.SetHighColor(255, 0, 0, 255); painter.SetHighColor(arcColor);
painter.SetDrawingMode(B_OP_INVERT); painter.SetDrawingMode(B_OP_INVERT);
painter.FillArc(center, xRadius * 2, yRadius * 2, angle, span); painter.FillArc(center, xRadius * 2, yRadius * 2, angle, span);
// painter.StrokeArc(center, xRadius * 2, yRadius * 2, angle, span); // painter.StrokeArc(center, xRadius * 2, yRadius * 2, angle, span);
@@ -163,13 +175,13 @@ bigtime_t painterNow = system_time();
// painter.FillEllipse(center, xRadius * 3, yRadius * 2); // painter.FillEllipse(center, xRadius * 3, yRadius * 2);
// painter.StrokeLine(bounds.RightTop()); // painter.StrokeLine(bounds.RightTop());
// painter.FillRect(rect); // painter.FillRect(rect);
painter.SetHighColor(0, 0, 255, 255); painter.SetHighColor(roundRectColor);
painter.SetPenSize(1.0); painter.SetPenSize(1.0);
painter.StrokeRoundRect(rect2, 40, 40); painter.StrokeRoundRect(rect2, 40, 40);
// painter.FillRoundRect(rect2, 40, 40); // painter.FillRoundRect(rect2, 40, 40);
painter.SetFont(font); painter.SetFont(font);
painter.SetHighColor(0, 20, 80, 255); painter.SetHighColor(textColor1);
painter.SetDrawingMode(B_OP_OVER); painter.SetDrawingMode(B_OP_OVER);
painter.DrawString(string, stringLocation); painter.DrawString(string, stringLocation);
painter.DrawString(string2); painter.DrawString(string2);
@@ -193,8 +205,8 @@ bigtime_t painterNow = system_time();
// painter.DrawString("Hello Nurse!", stringLocation2); // painter.DrawString("Hello Nurse!", stringLocation2);
// bitmap drawing // bitmap drawing
// painter.SetScale(0.5); painter.SetScale(1.5);
painter.SetDrawingMode(B_OP_ADD); painter.SetDrawingMode(B_OP_BLEND);
painter.DrawBitmap(testBitmap, testBitmapCrop, testBitmapDestRect); painter.DrawBitmap(testBitmap, testBitmapCrop, testBitmapDestRect);
@@ -205,6 +217,7 @@ printf("Painter: %lld µsecs\n", painterNow);
bitmap = new BBitmap(bounds, B_RGB32, true); bitmap = new BBitmap(bounds, B_RGB32, true);
BView* view = new BView(bounds, NULL, B_FOLLOW_NONE, B_WILL_DRAW); BView* view = new BView(bounds, NULL, B_FOLLOW_NONE, B_WILL_DRAW);
//memset(bitmap->Bits(), 0, bitmap->BitsLength());
bitmap->Lock(); bitmap->Lock();
bitmap->AddChild(view); bitmap->AddChild(view);
@@ -215,15 +228,15 @@ printf("Painter: %lld µsecs\n", painterNow);
bigtime_t viewNow = system_time(); bigtime_t viewNow = system_time();
view->SetDrawingMode(B_OP_OVER); view->SetDrawingMode(B_OP_SUBTRACT);
view->SetHighColor(210, 210, 210); view->SetHighColor(lineColor1);
for (uint32 y = 0; y <= height / 2; y += 10) for (uint32 y = 0; y <= height / 2; y += 10)
view->StrokeLine(BPoint(0, 0), BPoint(width / 2, y)); view->StrokeLine(BPoint(0, 0), BPoint(width / 2, y));
for (uint32 x = 0; x <= width; x += 10) for (uint32 x = 0; x <= width; x += 10)
view->StrokeLine(BPoint(0, 0), BPoint(x, height)); view->StrokeLine(BPoint(0, 0), BPoint(x, height));
view->SetPenSize(penSize * 5); view->SetPenSize(penSize * 5);
view->SetHighColor(255, 0, 0, 255); view->SetHighColor(rectColorH);
view->SetLowColor(128, 0, 255, 255); view->SetLowColor(rectColorL);
// view->SetScale(1.0); // view->SetScale(1.0);
// view->SetOrigin(B_ORIGIN); // view->SetOrigin(B_ORIGIN);
// view->SetDrawingMode(B_OP_INVERT); // view->SetDrawingMode(B_OP_INVERT);
@@ -238,12 +251,12 @@ bigtime_t viewNow = system_time();
view->StrokeLine(BPoint(230.0, 50.0)); view->StrokeLine(BPoint(230.0, 50.0));
view->StrokeLine(BPoint(230.0, 30.0));*/ view->StrokeLine(BPoint(230.0, 30.0));*/
view->SetHighColor(255, 255, 0, 255); view->SetHighColor(ellipseColorH);
view->SetLowColor(128, 0, 50, 255); view->SetLowColor(ellipseColorL);
view->SetDrawingMode(B_OP_OVER); view->SetDrawingMode(B_OP_OVER);
view->StrokeEllipse(center, xRadius, yRadius, kDottedBigger); view->StrokeEllipse(center, xRadius, yRadius, kDottedBigger);
view->SetDrawingMode(B_OP_INVERT); view->SetDrawingMode(B_OP_INVERT);
view->SetHighColor(255, 0, 0, 255); view->SetHighColor(arcColor);
view->FillArc(center, xRadius * 2, yRadius * 2, angle, span); view->FillArc(center, xRadius * 2, yRadius * 2, angle, span);
// view->StrokeArc(center, xRadius * 2, yRadius * 2, angle, span); // view->StrokeArc(center, xRadius * 2, yRadius * 2, angle, span);
view->SetDrawingMode(B_OP_OVER); view->SetDrawingMode(B_OP_OVER);
@@ -252,14 +265,14 @@ bigtime_t viewNow = system_time();
// view->FillEllipse(center, xRadius * 3, yRadius * 2); // view->FillEllipse(center, xRadius * 3, yRadius * 2);
// view->StrokeLine(bounds.RightTop()); // view->StrokeLine(bounds.RightTop());
// view->FillRect(rect); // view->FillRect(rect);
view->SetHighColor(0, 0, 255, 255); view->SetHighColor(roundRectColor);
view->SetPenSize(1.0); view->SetPenSize(1.0);
view->StrokeRoundRect(rect2, 40, 40); view->StrokeRoundRect(rect2, 40, 40);
// view->FillRoundRect(rect2, 40, 40); // view->FillRoundRect(rect2, 40, 40);
// text drawing // text drawing
view->SetFont(&font); view->SetFont(&font);
view->SetHighColor(0, 20, 80, 255); view->SetHighColor(textColor1);
view->SetDrawingMode(B_OP_OVER); view->SetDrawingMode(B_OP_OVER);
view->DrawString(string, stringLocation); view->DrawString(string, stringLocation);
view->DrawString(string2); view->DrawString(string2);
@@ -283,9 +296,9 @@ bigtime_t viewNow = system_time();
// view->DrawString("Hello Nurse!", stringLocation2); // view->DrawString("Hello Nurse!", stringLocation2);
// bitmap drawing // bitmap drawing
// view->SetScale(0.5); view->SetScale(1.5);
view->SetLowColor(0, 0, 0, 0); view->SetLowColor(0, 0, 0, 0);
view->SetDrawingMode(B_OP_ADD); view->SetDrawingMode(B_OP_BLEND);
view->DrawBitmap(testBitmap, testBitmapCrop, testBitmapDestRect); view->DrawBitmap(testBitmap, testBitmapCrop, testBitmapDestRect);
view->Sync(); view->Sync();