aboutsummaryrefslogtreecommitdiff
path: root/samplecode/SampleApp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'samplecode/SampleApp.cpp')
-rw-r--r--samplecode/SampleApp.cpp54
1 files changed, 33 insertions, 21 deletions
diff --git a/samplecode/SampleApp.cpp b/samplecode/SampleApp.cpp
index f9865dcfc0..d200e295fb 100644
--- a/samplecode/SampleApp.cpp
+++ b/samplecode/SampleApp.cpp
@@ -189,7 +189,6 @@ public:
#if SK_SUPPORT_GPU
switch (win->getDeviceType()) {
case kRaster_DeviceType: // fallthrough
- case kPicture_DeviceType: // fallthrough
case kGPU_DeviceType:
// all these guys use the native backend
fBackend = kNativeGL_BackEndType;
@@ -222,7 +221,6 @@ public:
SkAutoTUnref<const GrGLInterface> glInterface;
switch (win->getDeviceType()) {
case kRaster_DeviceType: // fallthrough
- case kPicture_DeviceType: // fallthrough
case kGPU_DeviceType:
// all these guys use the native interface
glInterface.reset(GrGLCreateNativeInterface());
@@ -678,17 +676,16 @@ void SampleWindow::updatePointer(int x, int y) {
static inline SampleWindow::DeviceType cycle_devicetype(SampleWindow::DeviceType ct) {
static const SampleWindow::DeviceType gCT[] = {
- SampleWindow::kPicture_DeviceType,
+ SampleWindow::kRaster_DeviceType
#if SK_SUPPORT_GPU
- SampleWindow::kGPU_DeviceType,
+ , SampleWindow::kGPU_DeviceType
#if SK_ANGLE
- SampleWindow::kANGLE_DeviceType,
+ , SampleWindow::kANGLE_DeviceType
#endif // SK_ANGLE
#if SK_COMMAND_BUFFER
- SampleWindow::kCommandBuffer_DeviceType,
+ , SampleWindow::kCommandBuffer_DeviceType
#endif // SK_COMMAND_BUFFER
#endif // SK_SUPPORT_GPU
- SampleWindow::kRaster_DeviceType,
};
static_assert(SK_ARRAY_COUNT(gCT) == SampleWindow::kDeviceTypeCnt, "array_size_mismatch");
return gCT[ct];
@@ -862,6 +859,7 @@ SampleWindow::SampleWindow(void* hwnd, int argc, char** argv, DeviceManager* dev
#endif
fUseClip = false;
+ fUseMPD = false;
fAnimating = false;
fRotate = false;
fPerspAnim = false;
@@ -895,15 +893,16 @@ SampleWindow::SampleWindow(void* hwnd, int argc, char** argv, DeviceManager* dev
fAppMenu->setTitle("Global Settings");
int itemID;
- itemID =fAppMenu->appendList("Device Type", "Device Type", sinkID, 0,
- "Raster", "Picture", "OpenGL",
+ itemID = fAppMenu->appendList("Device Type", "Device Type", sinkID, 0,
+ "Raster",
+ "OpenGL",
#if SK_ANGLE
- "ANGLE",
+ "ANGLE",
#endif
#if SK_COMMAND_BUFFER
- "Command Buffer",
+ "Command Buffer",
#endif
- nullptr);
+ nullptr);
fAppMenu->assignKeyEquivalentToItem(itemID, 'd');
itemID = fAppMenu->appendTriState("AA", "AA", sinkID, fAAState);
fAppMenu->assignKeyEquivalentToItem(itemID, 'b');
@@ -1331,7 +1330,9 @@ SkCanvas* SampleWindow::beforeChildren(SkCanvas* canvas) {
#endif
fPDFDocument.reset(SkDocument::CreatePDF(name.c_str()));
canvas = fPDFDocument->beginPage(this->width(), this->height());
- } else if (kPicture_DeviceType == fDeviceType) {
+ } else if (fSaveToSKP) {
+ canvas = fRecorder.beginRecording(9999, 9999, nullptr, 0);
+ } else if (fUseMPD) {
canvas = fRecorder.beginRecording(9999, 9999, nullptr, 0);
} else {
canvas = this->INHERITED::beforeChildren(canvas);
@@ -1380,17 +1381,21 @@ void SampleWindow::afterChildren(SkCanvas* orig) {
SkImageEncoder::EncodeFile(name.c_str(), bmp,
SkImageEncoder::kPNG_Type, 100);
}
+ this->inval(nullptr);
+ return;
}
- if (kPicture_DeviceType == fDeviceType) {
+ if (fSaveToSKP) {
SkAutoTUnref<const SkPicture> picture(fRecorder.endRecording());
+ SkFILEWStream stream("sample_app.skp");
+ picture->serialize(&stream);
+ fSaveToSKP = false;
+ this->inval(nullptr);
+ return;
+ }
- if (fSaveToSKP) {
- SkFILEWStream stream("sample_app.skp");
- picture->serialize(&stream);
- fSaveToSKP = false;
- }
-
+ if (fUseMPD) {
+ SkAutoTUnref<const SkPicture> picture(fRecorder.endRecording());
if (true) {
if (true) {
SkImageInfo info;
@@ -1791,6 +1796,11 @@ bool SampleWindow::onHandleChar(SkUnichar uni) {
fSaveToSKP = true;
this->inval(nullptr);
return true;
+ case 'M':
+ fUseMPD = !fUseMPD;
+ this->inval(nullptr);
+ this->updateTitle();
+ return true;
#if SK_SUPPORT_GPU
case 'p':
{
@@ -2011,7 +2021,6 @@ void SampleWindow::loadView(SkView* view) {
static const char* gDeviceTypePrefix[] = {
"raster: ",
- "picture: ",
#if SK_SUPPORT_GPU
"opengl: ",
#if SK_ANGLE
@@ -2065,6 +2074,9 @@ void SampleWindow::updateTitle() {
if (this->getSurfaceProps().flags() & SkSurfaceProps::kUseDeviceIndependentFonts_Flag) {
title.prepend("<DIF> ");
}
+ if (fUseMPD) {
+ title.prepend("<MPD> ");
+ }
title.prepend(trystate_str(fLCDState, "LCD ", "lcd "));
title.prepend(trystate_str(fAAState, "AA ", "aa "));