Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(143)

Side by Side Diff: samplecode/SampleApp.cpp

Issue 1538343002: SampleApp: remove Picture_DeviceType (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « samplecode/SampleApp.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2011 Google Inc. 2 * Copyright 2011 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "SampleApp.h" 8 #include "SampleApp.h"
9 9
10 #include "OverView.h" 10 #include "OverView.h"
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 } 182 }
183 183
184 void setUpBackend(SampleWindow* win, int msaaSampleCount) override { 184 void setUpBackend(SampleWindow* win, int msaaSampleCount) override {
185 SkASSERT(kNone_BackEndType == fBackend); 185 SkASSERT(kNone_BackEndType == fBackend);
186 186
187 fBackend = kNone_BackEndType; 187 fBackend = kNone_BackEndType;
188 188
189 #if SK_SUPPORT_GPU 189 #if SK_SUPPORT_GPU
190 switch (win->getDeviceType()) { 190 switch (win->getDeviceType()) {
191 case kRaster_DeviceType: // fallthrough 191 case kRaster_DeviceType: // fallthrough
192 case kPicture_DeviceType: // fallthrough
193 case kGPU_DeviceType: 192 case kGPU_DeviceType:
194 // all these guys use the native backend 193 // all these guys use the native backend
195 fBackend = kNativeGL_BackEndType; 194 fBackend = kNativeGL_BackEndType;
196 break; 195 break;
197 #if SK_ANGLE 196 #if SK_ANGLE
198 case kANGLE_DeviceType: 197 case kANGLE_DeviceType:
199 // ANGLE is really the only odd man out 198 // ANGLE is really the only odd man out
200 fBackend = kANGLE_BackEndType; 199 fBackend = kANGLE_BackEndType;
201 break; 200 break;
202 #endif // SK_ANGLE 201 #endif // SK_ANGLE
(...skipping 12 matching lines...) Expand all
215 if (!result) { 214 if (!result) {
216 SkDebugf("Failed to initialize GL"); 215 SkDebugf("Failed to initialize GL");
217 return; 216 return;
218 } 217 }
219 fMSAASampleCount = msaaSampleCount; 218 fMSAASampleCount = msaaSampleCount;
220 219
221 SkASSERT(nullptr == fCurIntf); 220 SkASSERT(nullptr == fCurIntf);
222 SkAutoTUnref<const GrGLInterface> glInterface; 221 SkAutoTUnref<const GrGLInterface> glInterface;
223 switch (win->getDeviceType()) { 222 switch (win->getDeviceType()) {
224 case kRaster_DeviceType: // fallthrough 223 case kRaster_DeviceType: // fallthrough
225 case kPicture_DeviceType: // fallthrough
226 case kGPU_DeviceType: 224 case kGPU_DeviceType:
227 // all these guys use the native interface 225 // all these guys use the native interface
228 glInterface.reset(GrGLCreateNativeInterface()); 226 glInterface.reset(GrGLCreateNativeInterface());
229 break; 227 break;
230 #if SK_ANGLE 228 #if SK_ANGLE
231 case kANGLE_DeviceType: 229 case kANGLE_DeviceType:
232 glInterface.reset(GrGLCreateANGLEInterface()); 230 glInterface.reset(GrGLCreateANGLEInterface());
233 break; 231 break;
234 #endif // SK_ANGLE 232 #endif // SK_ANGLE
235 #if SK_COMMAND_BUFFER 233 #if SK_COMMAND_BUFFER
(...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after
671 void SampleWindow::updatePointer(int x, int y) { 669 void SampleWindow::updatePointer(int x, int y) {
672 fMouseX = x; 670 fMouseX = x;
673 fMouseY = y; 671 fMouseY = y;
674 if (fShowZoomer) { 672 if (fShowZoomer) {
675 this->inval(nullptr); 673 this->inval(nullptr);
676 } 674 }
677 } 675 }
678 676
679 static inline SampleWindow::DeviceType cycle_devicetype(SampleWindow::DeviceType ct) { 677 static inline SampleWindow::DeviceType cycle_devicetype(SampleWindow::DeviceType ct) {
680 static const SampleWindow::DeviceType gCT[] = { 678 static const SampleWindow::DeviceType gCT[] = {
681 SampleWindow::kPicture_DeviceType, 679 SampleWindow::kRaster_DeviceType
682 #if SK_SUPPORT_GPU 680 #if SK_SUPPORT_GPU
683 SampleWindow::kGPU_DeviceType, 681 , SampleWindow::kGPU_DeviceType
684 #if SK_ANGLE 682 #if SK_ANGLE
685 SampleWindow::kANGLE_DeviceType, 683 , SampleWindow::kANGLE_DeviceType
686 #endif // SK_ANGLE 684 #endif // SK_ANGLE
687 #if SK_COMMAND_BUFFER 685 #if SK_COMMAND_BUFFER
688 SampleWindow::kCommandBuffer_DeviceType, 686 , SampleWindow::kCommandBuffer_DeviceType
689 #endif // SK_COMMAND_BUFFER 687 #endif // SK_COMMAND_BUFFER
690 #endif // SK_SUPPORT_GPU 688 #endif // SK_SUPPORT_GPU
691 SampleWindow::kRaster_DeviceType,
692 }; 689 };
693 static_assert(SK_ARRAY_COUNT(gCT) == SampleWindow::kDeviceTypeCnt, "array_si ze_mismatch"); 690 static_assert(SK_ARRAY_COUNT(gCT) == SampleWindow::kDeviceTypeCnt, "array_si ze_mismatch");
694 return gCT[ct]; 691 return gCT[ct];
695 } 692 }
696 693
697 static SkString getSampleTitle(const SkViewFactory* sampleFactory) { 694 static SkString getSampleTitle(const SkViewFactory* sampleFactory) {
698 SkView* view = (*sampleFactory)(); 695 SkView* view = (*sampleFactory)();
699 SkString title; 696 SkString title;
700 SampleCode::RequestTitle(view, &title); 697 SampleCode::RequestTitle(view, &title);
701 view->unref(); 698 view->unref();
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
855 fDeviceType = kGPU_DeviceType; 852 fDeviceType = kGPU_DeviceType;
856 #endif 853 #endif
857 #if SK_ANGLE && DEFAULT_TO_ANGLE 854 #if SK_ANGLE && DEFAULT_TO_ANGLE
858 fDeviceType = kANGLE_DeviceType; 855 fDeviceType = kANGLE_DeviceType;
859 #endif 856 #endif
860 #if SK_COMMAND_BUFFER && DEFAULT_TO_COMMAND_BUFFER 857 #if SK_COMMAND_BUFFER && DEFAULT_TO_COMMAND_BUFFER
861 fDeviceType = kCommandBuffer_DeviceType; 858 fDeviceType = kCommandBuffer_DeviceType;
862 #endif 859 #endif
863 860
864 fUseClip = false; 861 fUseClip = false;
862 fUseMPD = false;
865 fAnimating = false; 863 fAnimating = false;
866 fRotate = false; 864 fRotate = false;
867 fPerspAnim = false; 865 fPerspAnim = false;
868 fRequestGrabImage = false; 866 fRequestGrabImage = false;
869 fPipeState = SkOSMenu::kOffState; 867 fPipeState = SkOSMenu::kOffState;
870 fTilingMode = kNo_Tiling; 868 fTilingMode = kNo_Tiling;
871 fMeasureFPS = false; 869 fMeasureFPS = false;
872 fLCDState = SkOSMenu::kMixedState; 870 fLCDState = SkOSMenu::kMixedState;
873 fAAState = SkOSMenu::kMixedState; 871 fAAState = SkOSMenu::kMixedState;
874 fSubpixelState = SkOSMenu::kMixedState; 872 fSubpixelState = SkOSMenu::kMixedState;
(...skipping 13 matching lines...) Expand all
888 fMagnify = false; 886 fMagnify = false;
889 887
890 fSaveToPdf = false; 888 fSaveToPdf = false;
891 fSaveToSKP = false; 889 fSaveToSKP = false;
892 890
893 int sinkID = this->getSinkID(); 891 int sinkID = this->getSinkID();
894 fAppMenu = new SkOSMenu; 892 fAppMenu = new SkOSMenu;
895 fAppMenu->setTitle("Global Settings"); 893 fAppMenu->setTitle("Global Settings");
896 int itemID; 894 int itemID;
897 895
898 itemID =fAppMenu->appendList("Device Type", "Device Type", sinkID, 0, 896 itemID = fAppMenu->appendList("Device Type", "Device Type", sinkID, 0,
899 "Raster", "Picture", "OpenGL", 897 "Raster",
898 "OpenGL",
900 #if SK_ANGLE 899 #if SK_ANGLE
901 "ANGLE", 900 "ANGLE",
902 #endif 901 #endif
903 #if SK_COMMAND_BUFFER 902 #if SK_COMMAND_BUFFER
904 "Command Buffer", 903 "Command Buffer",
905 #endif 904 #endif
906 nullptr); 905 nullptr);
907 fAppMenu->assignKeyEquivalentToItem(itemID, 'd'); 906 fAppMenu->assignKeyEquivalentToItem(itemID, 'd');
908 itemID = fAppMenu->appendTriState("AA", "AA", sinkID, fAAState); 907 itemID = fAppMenu->appendTriState("AA", "AA", sinkID, fAAState);
909 fAppMenu->assignKeyEquivalentToItem(itemID, 'b'); 908 fAppMenu->assignKeyEquivalentToItem(itemID, 'b');
910 itemID = fAppMenu->appendTriState("LCD", "LCD", sinkID, fLCDState); 909 itemID = fAppMenu->appendTriState("LCD", "LCD", sinkID, fLCDState);
911 fAppMenu->assignKeyEquivalentToItem(itemID, 'l'); 910 fAppMenu->assignKeyEquivalentToItem(itemID, 'l');
912 itemID = fAppMenu->appendList("FilterQuality", "FilterQuality", sinkID, fFil terQualityIndex, 911 itemID = fAppMenu->appendList("FilterQuality", "FilterQuality", sinkID, fFil terQualityIndex,
913 gFilterQualityStates[0].fName, 912 gFilterQualityStates[0].fName,
914 gFilterQualityStates[1].fName, 913 gFilterQualityStates[1].fName,
915 gFilterQualityStates[2].fName, 914 gFilterQualityStates[2].fName,
916 gFilterQualityStates[3].fName, 915 gFilterQualityStates[3].fName,
(...skipping 407 matching lines...) Expand 10 before | Expand all | Expand 10 after
1324 SkString name; 1323 SkString name;
1325 if (!this->getRawTitle(&name)) { 1324 if (!this->getRawTitle(&name)) {
1326 name.set("unknown_sample"); 1325 name.set("unknown_sample");
1327 } 1326 }
1328 name.append(".pdf"); 1327 name.append(".pdf");
1329 #ifdef SK_BUILD_FOR_ANDROID 1328 #ifdef SK_BUILD_FOR_ANDROID
1330 name.prepend("/sdcard/"); 1329 name.prepend("/sdcard/");
1331 #endif 1330 #endif
1332 fPDFDocument.reset(SkDocument::CreatePDF(name.c_str())); 1331 fPDFDocument.reset(SkDocument::CreatePDF(name.c_str()));
1333 canvas = fPDFDocument->beginPage(this->width(), this->height()); 1332 canvas = fPDFDocument->beginPage(this->width(), this->height());
1334 } else if (kPicture_DeviceType == fDeviceType) { 1333 } else if (fSaveToSKP) {
1334 canvas = fRecorder.beginRecording(9999, 9999, nullptr, 0);
1335 } else if (fUseMPD) {
1335 canvas = fRecorder.beginRecording(9999, 9999, nullptr, 0); 1336 canvas = fRecorder.beginRecording(9999, 9999, nullptr, 0);
1336 } else { 1337 } else {
1337 canvas = this->INHERITED::beforeChildren(canvas); 1338 canvas = this->INHERITED::beforeChildren(canvas);
1338 } 1339 }
1339 1340
1340 if (fUseClip) { 1341 if (fUseClip) {
1341 canvas->drawColor(0xFFFF88FF); 1342 canvas->drawColor(0xFFFF88FF);
1342 canvas->clipPath(fClipPath, SkRegion::kIntersect_Op, true); 1343 canvas->clipPath(fClipPath, SkRegion::kIntersect_Op, true);
1343 } 1344 }
1344 1345
(...skipping 28 matching lines...) Expand all
1373 fRequestGrabImage = false; 1374 fRequestGrabImage = false;
1374 1375
1375 SkBitmap bmp = capture_bitmap(orig); 1376 SkBitmap bmp = capture_bitmap(orig);
1376 if (!bmp.isNull()) { 1377 if (!bmp.isNull()) {
1377 static int gSampleGrabCounter; 1378 static int gSampleGrabCounter;
1378 SkString name; 1379 SkString name;
1379 name.printf("sample_grab_%d.png", gSampleGrabCounter++); 1380 name.printf("sample_grab_%d.png", gSampleGrabCounter++);
1380 SkImageEncoder::EncodeFile(name.c_str(), bmp, 1381 SkImageEncoder::EncodeFile(name.c_str(), bmp,
1381 SkImageEncoder::kPNG_Type, 100); 1382 SkImageEncoder::kPNG_Type, 100);
1382 } 1383 }
1384 this->inval(nullptr);
1385 return;
1383 } 1386 }
1384 1387
1385 if (kPicture_DeviceType == fDeviceType) { 1388 if (fSaveToSKP) {
1386 SkAutoTUnref<const SkPicture> picture(fRecorder.endRecording()); 1389 SkAutoTUnref<const SkPicture> picture(fRecorder.endRecording());
1390 SkFILEWStream stream("sample_app.skp");
1391 picture->serialize(&stream);
1392 fSaveToSKP = false;
1393 this->inval(nullptr);
1394 return;
1395 }
1387 1396
1388 if (fSaveToSKP) { 1397 if (fUseMPD) {
1389 SkFILEWStream stream("sample_app.skp"); 1398 SkAutoTUnref<const SkPicture> picture(fRecorder.endRecording());
1390 picture->serialize(&stream);
1391 fSaveToSKP = false;
1392 }
1393
1394 if (true) { 1399 if (true) {
1395 if (true) { 1400 if (true) {
1396 SkImageInfo info; 1401 SkImageInfo info;
1397 size_t rowBytes; 1402 size_t rowBytes;
1398 void* addr = orig->accessTopLayerPixels(&info, &rowBytes); 1403 void* addr = orig->accessTopLayerPixels(&info, &rowBytes);
1399 if (addr) { 1404 if (addr) {
1400 SkSurface* surfs[4]; 1405 SkSurface* surfs[4];
1401 SkMultiPictureDraw md; 1406 SkMultiPictureDraw md;
1402 1407
1403 SkImageInfo n = SkImageInfo::Make(info.width()/2, info.heigh t()/2, 1408 SkImageInfo n = SkImageInfo::Make(info.width()/2, info.heigh t()/2,
(...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after
1784 return true; 1789 return true;
1785 case 'k': 1790 case 'k':
1786 fPerspAnim = !fPerspAnim; 1791 fPerspAnim = !fPerspAnim;
1787 this->inval(nullptr); 1792 this->inval(nullptr);
1788 this->updateTitle(); 1793 this->updateTitle();
1789 return true; 1794 return true;
1790 case 'K': 1795 case 'K':
1791 fSaveToSKP = true; 1796 fSaveToSKP = true;
1792 this->inval(nullptr); 1797 this->inval(nullptr);
1793 return true; 1798 return true;
1799 case 'M':
1800 fUseMPD = !fUseMPD;
1801 this->inval(nullptr);
1802 this->updateTitle();
1803 return true;
1794 #if SK_SUPPORT_GPU 1804 #if SK_SUPPORT_GPU
1795 case 'p': 1805 case 'p':
1796 { 1806 {
1797 GrContext* grContext = this->getGrContext(); 1807 GrContext* grContext = this->getGrContext();
1798 if (grContext) { 1808 if (grContext) {
1799 size_t cacheBytes; 1809 size_t cacheBytes;
1800 grContext->getResourceCacheUsage(nullptr, &cacheBytes); 1810 grContext->getResourceCacheUsage(nullptr, &cacheBytes);
1801 grContext->freeGpuResources(); 1811 grContext->freeGpuResources();
1802 SkDebugf("Purged %d bytes from the GPU resource cache.\n", c acheBytes); 1812 SkDebugf("Purged %d bytes from the GPU resource cache.\n", c acheBytes);
1803 } 1813 }
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
2004 SampleView* sampleView = (SampleView*)view; 2014 SampleView* sampleView = (SampleView*)view;
2005 sampleView->requestMenu(fSlideMenu); 2015 sampleView->requestMenu(fSlideMenu);
2006 sampleView->onTileSizeChanged(this->tileSize()); 2016 sampleView->onTileSizeChanged(this->tileSize());
2007 } 2017 }
2008 this->onUpdateMenu(fSlideMenu); 2018 this->onUpdateMenu(fSlideMenu);
2009 this->updateTitle(); 2019 this->updateTitle();
2010 } 2020 }
2011 2021
2012 static const char* gDeviceTypePrefix[] = { 2022 static const char* gDeviceTypePrefix[] = {
2013 "raster: ", 2023 "raster: ",
2014 "picture: ",
2015 #if SK_SUPPORT_GPU 2024 #if SK_SUPPORT_GPU
2016 "opengl: ", 2025 "opengl: ",
2017 #if SK_ANGLE 2026 #if SK_ANGLE
2018 "angle: ", 2027 "angle: ",
2019 #endif // SK_ANGLE 2028 #endif // SK_ANGLE
2020 #if SK_COMMAND_BUFFER 2029 #if SK_COMMAND_BUFFER
2021 "command buffer: ", 2030 "command buffer: ",
2022 #endif // SK_COMMAND_BUFFER 2031 #endif // SK_COMMAND_BUFFER
2023 #endif // SK_SUPPORT_GPU 2032 #endif // SK_SUPPORT_GPU
2024 }; 2033 };
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
2058 } 2067 }
2059 if (fRotate) { 2068 if (fRotate) {
2060 title.prepend("<R> "); 2069 title.prepend("<R> ");
2061 } 2070 }
2062 if (fPerspAnim) { 2071 if (fPerspAnim) {
2063 title.prepend("<K> "); 2072 title.prepend("<K> ");
2064 } 2073 }
2065 if (this->getSurfaceProps().flags() & SkSurfaceProps::kUseDeviceIndependentF onts_Flag) { 2074 if (this->getSurfaceProps().flags() & SkSurfaceProps::kUseDeviceIndependentF onts_Flag) {
2066 title.prepend("<DIF> "); 2075 title.prepend("<DIF> ");
2067 } 2076 }
2077 if (fUseMPD) {
2078 title.prepend("<MPD> ");
2079 }
2068 2080
2069 title.prepend(trystate_str(fLCDState, "LCD ", "lcd ")); 2081 title.prepend(trystate_str(fLCDState, "LCD ", "lcd "));
2070 title.prepend(trystate_str(fAAState, "AA ", "aa ")); 2082 title.prepend(trystate_str(fAAState, "AA ", "aa "));
2071 title.prepend(gFilterQualityStates[fFilterQualityIndex].fLabel); 2083 title.prepend(gFilterQualityStates[fFilterQualityIndex].fLabel);
2072 title.prepend(trystate_str(fSubpixelState, "S ", "s ")); 2084 title.prepend(trystate_str(fSubpixelState, "S ", "s "));
2073 title.prepend(fFlipAxis & kFlipAxis_X ? "X " : nullptr); 2085 title.prepend(fFlipAxis & kFlipAxis_X ? "X " : nullptr);
2074 title.prepend(fFlipAxis & kFlipAxis_Y ? "Y " : nullptr); 2086 title.prepend(fFlipAxis & kFlipAxis_Y ? "Y " : nullptr);
2075 title.prepend(gHintingStates[fHintingState].label); 2087 title.prepend(gHintingStates[fHintingState].label);
2076 2088
2077 if (fZoomLevel) { 2089 if (fZoomLevel) {
(...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after
2453 #ifdef SK_BUILD_FOR_MAC 2465 #ifdef SK_BUILD_FOR_MAC
2454 setenv("ANDROID_ROOT", "/android/device/data", 0); 2466 setenv("ANDROID_ROOT", "/android/device/data", 0);
2455 #endif 2467 #endif
2456 SkGraphics::Init(); 2468 SkGraphics::Init();
2457 SkEvent::Init(); 2469 SkEvent::Init();
2458 } 2470 }
2459 2471
2460 void application_term() { 2472 void application_term() {
2461 SkEvent::Term(); 2473 SkEvent::Term();
2462 } 2474 }
OLDNEW
« no previous file with comments | « samplecode/SampleApp.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698