OLD | NEW |
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 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 class PdfFileViewerFactory : public SkViewFactory { | 85 class PdfFileViewerFactory : public SkViewFactory { |
86 SkString fFilename; | 86 SkString fFilename; |
87 public: | 87 public: |
88 PdfFileViewerFactory(const SkString& filename) : fFilename(filename) {} | 88 PdfFileViewerFactory(const SkString& filename) : fFilename(filename) {} |
89 SkView* operator() () const override { | 89 SkView* operator() () const override { |
90 return CreateSamplePdfFileViewer(fFilename.c_str()); | 90 return CreateSamplePdfFileViewer(fFilename.c_str()); |
91 } | 91 } |
92 }; | 92 }; |
93 #endif // SAMPLE_PDF_FILE_VIEWER | 93 #endif // SAMPLE_PDF_FILE_VIEWER |
94 | 94 |
95 #if SK_COMMAND_BUFFER | 95 #if SK_ANGLE |
96 #define DEFAULT_TO_COMMAND_BUFFER 1 | |
97 #elif SK_ANGLE | |
98 //#define DEFAULT_TO_ANGLE 1 | 96 //#define DEFAULT_TO_ANGLE 1 |
99 #else | 97 #else |
100 #define DEFAULT_TO_GPU 0 // if 1 default rendering is on GPU | 98 #define DEFAULT_TO_GPU 0 // if 1 default rendering is on GPU |
101 #endif | 99 #endif |
102 | 100 |
103 #define ANIMATING_EVENTTYPE "nextSample" | 101 #define ANIMATING_EVENTTYPE "nextSample" |
104 #define ANIMATING_DELAY 250 | 102 #define ANIMATING_DELAY 250 |
105 | 103 |
106 #ifdef SK_DEBUG | 104 #ifdef SK_DEBUG |
107 #define FPS_REPEAT_MULTIPLIER 1 | 105 #define FPS_REPEAT_MULTIPLIER 1 |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
204 case kGPU_DeviceType: | 202 case kGPU_DeviceType: |
205 // all these guys use the native backend | 203 // all these guys use the native backend |
206 fBackend = kNativeGL_BackEndType; | 204 fBackend = kNativeGL_BackEndType; |
207 break; | 205 break; |
208 #if SK_ANGLE | 206 #if SK_ANGLE |
209 case kANGLE_DeviceType: | 207 case kANGLE_DeviceType: |
210 // ANGLE is really the only odd man out | 208 // ANGLE is really the only odd man out |
211 fBackend = kANGLE_BackEndType; | 209 fBackend = kANGLE_BackEndType; |
212 break; | 210 break; |
213 #endif // SK_ANGLE | 211 #endif // SK_ANGLE |
214 #if SK_COMMAND_BUFFER | |
215 case kCommandBuffer_DeviceType: | |
216 // Command buffer is really the only other odd man out :D | |
217 fBackend = kCommandBuffer_BackEndType; | |
218 break; | |
219 #endif // SK_COMMAND_BUFFER | |
220 default: | 212 default: |
221 SkASSERT(false); | 213 SkASSERT(false); |
222 break; | 214 break; |
223 } | 215 } |
224 AttachmentInfo attachmentInfo; | 216 AttachmentInfo attachmentInfo; |
225 bool result = win->attach(fBackend, msaaSampleCount, deepColor, &attachm
entInfo); | 217 bool result = win->attach(fBackend, msaaSampleCount, deepColor, &attachm
entInfo); |
226 if (!result) { | 218 if (!result) { |
227 SkDebugf("Failed to initialize GL"); | 219 SkDebugf("Failed to initialize GL"); |
228 return; | 220 return; |
229 } | 221 } |
230 fMSAASampleCount = msaaSampleCount; | 222 fMSAASampleCount = msaaSampleCount; |
231 fDeepColor = deepColor; | 223 fDeepColor = deepColor; |
232 // Assume that we have at least 24-bit output, for backends that don't s
upply this data | 224 // Assume that we have at least 24-bit output, for backends that don't s
upply this data |
233 fActualColorBits = SkTMax(attachmentInfo.fColorBits, 24); | 225 fActualColorBits = SkTMax(attachmentInfo.fColorBits, 24); |
234 | 226 |
235 SkASSERT(nullptr == fCurIntf); | 227 SkASSERT(nullptr == fCurIntf); |
236 SkAutoTUnref<const GrGLInterface> glInterface; | 228 SkAutoTUnref<const GrGLInterface> glInterface; |
237 switch (win->getDeviceType()) { | 229 switch (win->getDeviceType()) { |
238 case kRaster_DeviceType: // fallthrough | 230 case kRaster_DeviceType: // fallthrough |
239 case kGPU_DeviceType: | 231 case kGPU_DeviceType: |
240 // all these guys use the native interface | 232 // all these guys use the native interface |
241 glInterface.reset(GrGLCreateNativeInterface()); | 233 glInterface.reset(GrGLCreateNativeInterface()); |
242 break; | 234 break; |
243 #if SK_ANGLE | 235 #if SK_ANGLE |
244 case kANGLE_DeviceType: | 236 case kANGLE_DeviceType: |
245 glInterface.reset(sk_gpu_test::CreateANGLEGLInterface()); | 237 glInterface.reset(sk_gpu_test::CreateANGLEGLInterface()); |
246 break; | 238 break; |
247 #endif // SK_ANGLE | 239 #endif // SK_ANGLE |
248 #if SK_COMMAND_BUFFER | |
249 case kCommandBuffer_DeviceType: | |
250 glInterface.reset(GrGLCreateCommandBufferInterface()); | |
251 break; | |
252 #endif // SK_COMMAND_BUFFER | |
253 default: | 240 default: |
254 SkASSERT(false); | 241 SkASSERT(false); |
255 break; | 242 break; |
256 } | 243 } |
257 | 244 |
258 // Currently SampleApp does not use NVPR. TODO: Provide an NVPR device t
ype that is skipped | 245 // Currently SampleApp does not use NVPR. TODO: Provide an NVPR device t
ype that is skipped |
259 // when the driver doesn't support NVPR. | 246 // when the driver doesn't support NVPR. |
260 fCurIntf = GrGLInterfaceRemoveNVPR(glInterface.get()); | 247 fCurIntf = GrGLInterfaceRemoveNVPR(glInterface.get()); |
261 | 248 |
262 SkASSERT(nullptr == fCurContext); | 249 SkASSERT(nullptr == fCurContext); |
(...skipping 474 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
737 } | 724 } |
738 | 725 |
739 static inline SampleWindow::DeviceType cycle_devicetype(SampleWindow::DeviceType
ct) { | 726 static inline SampleWindow::DeviceType cycle_devicetype(SampleWindow::DeviceType
ct) { |
740 static const SampleWindow::DeviceType gCT[] = { | 727 static const SampleWindow::DeviceType gCT[] = { |
741 SampleWindow::kRaster_DeviceType | 728 SampleWindow::kRaster_DeviceType |
742 #if SK_SUPPORT_GPU | 729 #if SK_SUPPORT_GPU |
743 , SampleWindow::kGPU_DeviceType | 730 , SampleWindow::kGPU_DeviceType |
744 #if SK_ANGLE | 731 #if SK_ANGLE |
745 , SampleWindow::kANGLE_DeviceType | 732 , SampleWindow::kANGLE_DeviceType |
746 #endif // SK_ANGLE | 733 #endif // SK_ANGLE |
747 #if SK_COMMAND_BUFFER | |
748 , SampleWindow::kCommandBuffer_DeviceType | |
749 #endif // SK_COMMAND_BUFFER | |
750 #endif // SK_SUPPORT_GPU | 734 #endif // SK_SUPPORT_GPU |
751 }; | 735 }; |
752 static_assert(SK_ARRAY_COUNT(gCT) == SampleWindow::kDeviceTypeCnt, "array_si
ze_mismatch"); | 736 static_assert(SK_ARRAY_COUNT(gCT) == SampleWindow::kDeviceTypeCnt, "array_si
ze_mismatch"); |
753 return gCT[ct]; | 737 return gCT[ct]; |
754 } | 738 } |
755 | 739 |
756 static SkString getSampleTitle(const SkViewFactory* sampleFactory) { | 740 static SkString getSampleTitle(const SkViewFactory* sampleFactory) { |
757 SkView* view = (*sampleFactory)(); | 741 SkView* view = (*sampleFactory)(); |
758 SkString title; | 742 SkString title; |
759 SampleCode::RequestTitle(view, &title); | 743 SampleCode::RequestTitle(view, &title); |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
906 fDeviceType = kGPU_DeviceType; | 890 fDeviceType = kGPU_DeviceType; |
907 } | 891 } |
908 #endif | 892 #endif |
909 | 893 |
910 #if DEFAULT_TO_GPU | 894 #if DEFAULT_TO_GPU |
911 fDeviceType = kGPU_DeviceType; | 895 fDeviceType = kGPU_DeviceType; |
912 #endif | 896 #endif |
913 #if SK_ANGLE && DEFAULT_TO_ANGLE | 897 #if SK_ANGLE && DEFAULT_TO_ANGLE |
914 fDeviceType = kANGLE_DeviceType; | 898 fDeviceType = kANGLE_DeviceType; |
915 #endif | 899 #endif |
916 #if SK_COMMAND_BUFFER && DEFAULT_TO_COMMAND_BUFFER | |
917 fDeviceType = kCommandBuffer_DeviceType; | |
918 #endif | |
919 | 900 |
920 fUseClip = false; | 901 fUseClip = false; |
921 fUsePicture = false; | 902 fUsePicture = false; |
922 fAnimating = false; | 903 fAnimating = false; |
923 fRotate = false; | 904 fRotate = false; |
924 fPerspAnim = false; | 905 fPerspAnim = false; |
925 fRequestGrabImage = false; | 906 fRequestGrabImage = false; |
926 fTilingMode = kNo_Tiling; | 907 fTilingMode = kNo_Tiling; |
927 fMeasureFPS = false; | 908 fMeasureFPS = false; |
928 fLCDState = SkOSMenu::kMixedState; | 909 fLCDState = SkOSMenu::kMixedState; |
(...skipping 28 matching lines...) Expand all Loading... |
957 fAppMenu->assignKeyEquivalentToItem(itemID, 'C'); | 938 fAppMenu->assignKeyEquivalentToItem(itemID, 'C'); |
958 itemID = fAppMenu->appendSwitch("sRGB SkColor", "sRGB SkColor", sinkID, gTre
atSkColorAsSRGB); | 939 itemID = fAppMenu->appendSwitch("sRGB SkColor", "sRGB SkColor", sinkID, gTre
atSkColorAsSRGB); |
959 fAppMenu->assignKeyEquivalentToItem(itemID, 'S'); | 940 fAppMenu->assignKeyEquivalentToItem(itemID, 'S'); |
960 | 941 |
961 itemID = fAppMenu->appendList("Device Type", "Device Type", sinkID, 0, | 942 itemID = fAppMenu->appendList("Device Type", "Device Type", sinkID, 0, |
962 "Raster", | 943 "Raster", |
963 "OpenGL", | 944 "OpenGL", |
964 #if SK_ANGLE | 945 #if SK_ANGLE |
965 "ANGLE", | 946 "ANGLE", |
966 #endif | 947 #endif |
967 #if SK_COMMAND_BUFFER | |
968 "Command Buffer", | |
969 #endif | |
970 nullptr); | 948 nullptr); |
971 fAppMenu->assignKeyEquivalentToItem(itemID, 'd'); | 949 fAppMenu->assignKeyEquivalentToItem(itemID, 'd'); |
972 itemID = fAppMenu->appendTriState("AA", "AA", sinkID, fAAState); | 950 itemID = fAppMenu->appendTriState("AA", "AA", sinkID, fAAState); |
973 fAppMenu->assignKeyEquivalentToItem(itemID, 'b'); | 951 fAppMenu->assignKeyEquivalentToItem(itemID, 'b'); |
974 itemID = fAppMenu->appendTriState("LCD", "LCD", sinkID, fLCDState); | 952 itemID = fAppMenu->appendTriState("LCD", "LCD", sinkID, fLCDState); |
975 fAppMenu->assignKeyEquivalentToItem(itemID, 'l'); | 953 fAppMenu->assignKeyEquivalentToItem(itemID, 'l'); |
976 itemID = fAppMenu->appendList("FilterQuality", "FilterQuality", sinkID, fFil
terQualityIndex, | 954 itemID = fAppMenu->appendList("FilterQuality", "FilterQuality", sinkID, fFil
terQualityIndex, |
977 gFilterQualityStates[0].fName, | 955 gFilterQualityStates[0].fName, |
978 gFilterQualityStates[1].fName, | 956 gFilterQualityStates[1].fName, |
979 gFilterQualityStates[2].fName, | 957 gFilterQualityStates[2].fName, |
(...skipping 1113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2093 this->updateTitle(); | 2071 this->updateTitle(); |
2094 } | 2072 } |
2095 | 2073 |
2096 static const char* gDeviceTypePrefix[] = { | 2074 static const char* gDeviceTypePrefix[] = { |
2097 "raster: ", | 2075 "raster: ", |
2098 #if SK_SUPPORT_GPU | 2076 #if SK_SUPPORT_GPU |
2099 "opengl: ", | 2077 "opengl: ", |
2100 #if SK_ANGLE | 2078 #if SK_ANGLE |
2101 "angle: ", | 2079 "angle: ", |
2102 #endif // SK_ANGLE | 2080 #endif // SK_ANGLE |
2103 #if SK_COMMAND_BUFFER | |
2104 "command buffer: ", | |
2105 #endif // SK_COMMAND_BUFFER | |
2106 #endif // SK_SUPPORT_GPU | 2081 #endif // SK_SUPPORT_GPU |
2107 }; | 2082 }; |
2108 static_assert(SK_ARRAY_COUNT(gDeviceTypePrefix) == SampleWindow::kDeviceTypeCnt, | 2083 static_assert(SK_ARRAY_COUNT(gDeviceTypePrefix) == SampleWindow::kDeviceTypeCnt, |
2109 "array_size_mismatch"); | 2084 "array_size_mismatch"); |
2110 | 2085 |
2111 static const char* trystate_str(SkOSMenu::TriState state, | 2086 static const char* trystate_str(SkOSMenu::TriState state, |
2112 const char trueStr[], const char falseStr[]) { | 2087 const char trueStr[], const char falseStr[]) { |
2113 if (SkOSMenu::kOnState == state) { | 2088 if (SkOSMenu::kOnState == state) { |
2114 return trueStr; | 2089 return trueStr; |
2115 } else if (SkOSMenu::kOffState == state) { | 2090 } else if (SkOSMenu::kOffState == state) { |
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2424 #ifdef SK_BUILD_FOR_MAC | 2399 #ifdef SK_BUILD_FOR_MAC |
2425 setenv("ANDROID_ROOT", "/android/device/data", 0); | 2400 setenv("ANDROID_ROOT", "/android/device/data", 0); |
2426 #endif | 2401 #endif |
2427 SkGraphics::Init(); | 2402 SkGraphics::Init(); |
2428 SkEvent::Init(); | 2403 SkEvent::Init(); |
2429 } | 2404 } |
2430 | 2405 |
2431 void application_term() { | 2406 void application_term() { |
2432 SkEvent::Term(); | 2407 SkEvent::Term(); |
2433 } | 2408 } |
OLD | NEW |