#include "SampleApp.h"
#include "OverView.h"
+#include "Resources.h"
#include "SampleCode.h"
#include "SamplePipeControllers.h"
#include "SkCanvas.h"
SkString filename;
while (iter.next(&filename)) {
*fSamples.append() = new PictFileFactory(
- SkOSPath::SkPathJoin(FLAGS_pictureDir[0], filename.c_str()));
+ SkOSPath::Join(FLAGS_pictureDir[0], filename.c_str()));
}
}
if (!FLAGS_picture.isEmpty()) {
SkString filename;
while (iter.next(&filename)) {
*fSamples.append() = new PdfFileViewerFactory(
- SkOSPath::SkPathJoin(FLAGS_pictureDir[0], filename.c_str()));
+ SkOSPath::Join(FLAGS_pictureDir[0], filename.c_str()));
}
}
#endif
SampleWindow::~SampleWindow() {
delete fPdfCanvas;
- fTypeface->unref();
-
+ SkSafeUnref(fTypeface);
SkSafeUnref(fDevManager);
}
static bool bitmap_diff(SkCanvas* canvas, const SkBitmap& orig,
SkBitmap* diff) {
- const SkBitmap& src = canvas->getDevice()->accessBitmap(false);
+ SkBitmap src = capture_bitmap(canvas);
SkAutoLockPixels alp0(src);
SkAutoLockPixels alp1(orig);
SkCanvas* SampleWindow::beforeChildren(SkCanvas* canvas) {
if (fSaveToPdf) {
- const SkBitmap& bmp = canvas->getDevice()->accessBitmap(false);
+ const SkBitmap bmp = capture_bitmap(canvas);
SkISize size = SkISize::Make(bmp.width(), bmp.height());
SkPDFDevice* pdfDevice = new SkPDFDevice(size, size,
canvas->getTotalMatrix());
return canvas;
}
-static void paint_rgn(const SkBitmap& bm, const SkIRect& r,
- const SkRegion& rgn) {
- SkCanvas canvas(bm);
- SkRegion inval(rgn);
-
- inval.translate(r.fLeft, r.fTop);
- canvas.clipRegion(inval);
- canvas.drawColor(0xFFFF8080);
-}
#include "SkData.h"
void SampleWindow::afterChildren(SkCanvas* orig) {
if (fSaveToPdf) {
SkString name;
name.printf("%s.pdf", this->getTitle());
SkPDFDocument doc;
- SkPDFDevice* device = static_cast<SkPDFDevice*>(fPdfCanvas->getDevice());
+ SkPDFDevice* device = NULL;//static_cast<SkPDFDevice*>(fPdfCanvas->getDevice());
+ SkASSERT(false);
doc.appendPage(device);
#ifdef SK_BUILD_FOR_ANDROID
name.prepend("/sdcard/");
if (fRequestGrabImage) {
fRequestGrabImage = false;
- SkBaseDevice* device = orig->getDevice();
- SkBitmap bmp;
- if (device->accessBitmap(false).copyTo(&bmp, kN32_SkColorType)) {
+ SkBitmap bmp = capture_bitmap(orig);
+ if (!bmp.isNull()) {
static int gSampleGrabCounter;
SkString name;
name.printf("sample_grab_%d.png", gSampleGrabCounter++);
}
if (kPicture_DeviceType == fDeviceType) {
- SkAutoTUnref<SkPicture> picture(fRecorder.endRecording());
+ SkAutoTUnref<const SkPicture> picture(fRecorder.endRecording());
if (true) {
- SkPicture* pict = new SkPicture(*picture);
this->installDrawFilter(orig);
- orig->drawPicture(pict);
- pict->unref();
+ orig->drawPicture(picture);
} else if (true) {
SkDynamicMemoryWStream ostream;
picture->serialize(&ostream);
if (fMeasureFPS && fMeasureFPS_StartTime) {
fMeasureFPS_Time += SkTime::GetMSecs() - fMeasureFPS_StartTime;
}
-
- // if ((fScrollTestX | fScrollTestY) != 0)
- if (false) {
- const SkBitmap& bm = orig->getDevice()->accessBitmap(true);
- int dx = fScrollTestX * 7;
- int dy = fScrollTestY * 7;
- SkIRect r;
- SkRegion inval;
-
- r.set(50, 50, 50+100, 50+100);
- bm.scrollRect(&r, dx, dy, &inval);
- paint_rgn(bm, r, inval);
- }
}
void SampleWindow::beforeChild(SkView* child, SkCanvas* canvas) {
}
#endif
+DECLARE_bool(portableFonts);
+
bool SampleWindow::onHandleChar(SkUnichar uni) {
{
SkView* view = curr_view(this);
// only
toggleFPS();
break;
+ case 'F':
+ FLAGS_portableFonts ^= true;
+ this->inval(NULL);
+ break;
case 'g':
fRequestGrabImage = true;
this->inval(NULL);
} else {
SkGPipeWriter writer;
SimplePC controller(canvas);
- TiledPipeController tc(canvas->getDevice()->accessBitmap(false),
- &SkImageDecoder::DecodeMemory,
- &canvas->getTotalMatrix());
+ SkBitmap bitmap = capture_bitmap(canvas);
+ TiledPipeController tc(bitmap, &SkImageDecoder::DecodeMemory, &canvas->getTotalMatrix());
SkGPipeController* pc;
if (SkOSMenu::kMixedState == fPipeState) {
pc = &tc;
}
#ifdef SK_BUILD_FOR_IOS
-void save_args(int argc, char *argv[]) {
+IOS_launch_type set_cmd_line_args(int , char *[], const char* resourceDir) {
+ SetResourcePath(resourceDir);
+ return kApplication__iOSLaunchType;
}
#endif
-// FIXME: this should be in a header
-void application_init();
void application_init() {
// setenv("ANDROID_ROOT", "../../../data", 0);
#ifdef SK_BUILD_FOR_MAC
SkEvent::Init();
}
-// FIXME: this should be in a header
-void application_term();
void application_term() {
SkEvent::Term();
SkGraphics::Term();