| 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 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 74 #ifdef PIPE_FILE | 74 #ifdef PIPE_FILE |
| 75 #define FILE_PATH "/path/to/drawing.data" | 75 #define FILE_PATH "/path/to/drawing.data" |
| 76 #endif | 76 #endif |
| 77 | 77 |
| 78 #define PIPE_NETx | 78 #define PIPE_NETx |
| 79 #ifdef PIPE_NET | 79 #ifdef PIPE_NET |
| 80 #include "SkSockets.h" | 80 #include "SkSockets.h" |
| 81 SkTCPServer gServer; | 81 SkTCPServer gServer; |
| 82 #endif | 82 #endif |
| 83 | 83 |
| 84 #if SK_ANGLE | 84 #if SK_COMMAND_BUFFER |
| 85 #define DEFAULT_TO_COMMAND_BUFFER 1 |
| 86 #elif SK_ANGLE |
| 85 //#define DEFAULT_TO_ANGLE 1 | 87 //#define DEFAULT_TO_ANGLE 1 |
| 86 #else | 88 #else |
| 87 #define DEFAULT_TO_GPU 0 // if 1 default rendering is on GPU | 89 #define DEFAULT_TO_GPU 0 // if 1 default rendering is on GPU |
| 88 #endif | 90 #endif |
| 89 | 91 |
| 90 #define ANIMATING_EVENTTYPE "nextSample" | 92 #define ANIMATING_EVENTTYPE "nextSample" |
| 91 #define ANIMATING_DELAY 250 | 93 #define ANIMATING_DELAY 250 |
| 92 | 94 |
| 93 #ifdef SK_DEBUG | 95 #ifdef SK_DEBUG |
| 94 #define FPS_REPEAT_MULTIPLIER 1 | 96 #define FPS_REPEAT_MULTIPLIER 1 |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 190 case kGPU_DeviceType: | 192 case kGPU_DeviceType: |
| 191 // all these guys use the native backend | 193 // all these guys use the native backend |
| 192 fBackend = kNativeGL_BackEndType; | 194 fBackend = kNativeGL_BackEndType; |
| 193 break; | 195 break; |
| 194 #if SK_ANGLE | 196 #if SK_ANGLE |
| 195 case kANGLE_DeviceType: | 197 case kANGLE_DeviceType: |
| 196 // ANGLE is really the only odd man out | 198 // ANGLE is really the only odd man out |
| 197 fBackend = kANGLE_BackEndType; | 199 fBackend = kANGLE_BackEndType; |
| 198 break; | 200 break; |
| 199 #endif // SK_ANGLE | 201 #endif // SK_ANGLE |
| 202 #if SK_COMMAND_BUFFER |
| 203 case kCommandBuffer_DeviceType: |
| 204 // Command buffer is really the only other odd man out :D |
| 205 fBackend = kCommandBuffer_BackEndType; |
| 206 break; |
| 207 #endif // SK_COMMAND_BUFFER |
| 200 default: | 208 default: |
| 201 SkASSERT(false); | 209 SkASSERT(false); |
| 202 break; | 210 break; |
| 203 } | 211 } |
| 204 AttachmentInfo attachmentInfo; | 212 AttachmentInfo attachmentInfo; |
| 205 bool result = win->attach(fBackend, msaaSampleCount, &attachmentInfo); | 213 bool result = win->attach(fBackend, msaaSampleCount, &attachmentInfo); |
| 206 if (!result) { | 214 if (!result) { |
| 207 SkDebugf("Failed to initialize GL"); | 215 SkDebugf("Failed to initialize GL"); |
| 208 return; | 216 return; |
| 209 } | 217 } |
| 210 fMSAASampleCount = msaaSampleCount; | 218 fMSAASampleCount = msaaSampleCount; |
| 211 | 219 |
| 212 SkASSERT(nullptr == fCurIntf); | 220 SkASSERT(nullptr == fCurIntf); |
| 213 SkAutoTUnref<const GrGLInterface> glInterface; | 221 SkAutoTUnref<const GrGLInterface> glInterface; |
| 214 switch (win->getDeviceType()) { | 222 switch (win->getDeviceType()) { |
| 215 case kRaster_DeviceType: // fallthrough | 223 case kRaster_DeviceType: // fallthrough |
| 216 case kPicture_DeviceType: // fallthrough | 224 case kPicture_DeviceType: // fallthrough |
| 217 case kGPU_DeviceType: | 225 case kGPU_DeviceType: |
| 218 // all these guys use the native interface | 226 // all these guys use the native interface |
| 219 glInterface.reset(GrGLCreateNativeInterface()); | 227 glInterface.reset(GrGLCreateNativeInterface()); |
| 220 break; | 228 break; |
| 221 #if SK_ANGLE | 229 #if SK_ANGLE |
| 222 case kANGLE_DeviceType: | 230 case kANGLE_DeviceType: |
| 223 glInterface.reset(GrGLCreateANGLEInterface()); | 231 glInterface.reset(GrGLCreateANGLEInterface()); |
| 224 break; | 232 break; |
| 225 #endif // SK_ANGLE | 233 #endif // SK_ANGLE |
| 234 #if SK_COMMAND_BUFFER |
| 235 case kCommandBuffer_DeviceType: |
| 236 glInterface.reset(GrGLCreateCommandBufferInterface()); |
| 237 break; |
| 238 #endif // SK_COMMAND_BUFFER |
| 226 default: | 239 default: |
| 227 SkASSERT(false); | 240 SkASSERT(false); |
| 228 break; | 241 break; |
| 229 } | 242 } |
| 230 | 243 |
| 231 // Currently SampleApp does not use NVPR. TODO: Provide an NVPR device t
ype that is skipped | 244 // Currently SampleApp does not use NVPR. TODO: Provide an NVPR device t
ype that is skipped |
| 232 // when the driver doesn't support NVPR. | 245 // when the driver doesn't support NVPR. |
| 233 fCurIntf = GrGLInterfaceRemoveNVPR(glInterface.get()); | 246 fCurIntf = GrGLInterfaceRemoveNVPR(glInterface.get()); |
| 234 | 247 |
| 235 SkASSERT(nullptr == fCurContext); | 248 SkASSERT(nullptr == fCurContext); |
| (...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 663 } | 676 } |
| 664 | 677 |
| 665 static inline SampleWindow::DeviceType cycle_devicetype(SampleWindow::DeviceType
ct) { | 678 static inline SampleWindow::DeviceType cycle_devicetype(SampleWindow::DeviceType
ct) { |
| 666 static const SampleWindow::DeviceType gCT[] = { | 679 static const SampleWindow::DeviceType gCT[] = { |
| 667 SampleWindow::kPicture_DeviceType, | 680 SampleWindow::kPicture_DeviceType, |
| 668 #if SK_SUPPORT_GPU | 681 #if SK_SUPPORT_GPU |
| 669 SampleWindow::kGPU_DeviceType, | 682 SampleWindow::kGPU_DeviceType, |
| 670 #if SK_ANGLE | 683 #if SK_ANGLE |
| 671 SampleWindow::kANGLE_DeviceType, | 684 SampleWindow::kANGLE_DeviceType, |
| 672 #endif // SK_ANGLE | 685 #endif // SK_ANGLE |
| 686 #if SK_COMMAND_BUFFER |
| 687 SampleWindow::kCommandBuffer_DeviceType, |
| 688 #endif // SK_COMMAND_BUFFER |
| 673 #endif // SK_SUPPORT_GPU | 689 #endif // SK_SUPPORT_GPU |
| 674 SampleWindow::kRaster_DeviceType, | 690 SampleWindow::kRaster_DeviceType, |
| 675 }; | 691 }; |
| 676 static_assert(SK_ARRAY_COUNT(gCT) == SampleWindow::kDeviceTypeCnt, "array_si
ze_mismatch"); | 692 static_assert(SK_ARRAY_COUNT(gCT) == SampleWindow::kDeviceTypeCnt, "array_si
ze_mismatch"); |
| 677 return gCT[ct]; | 693 return gCT[ct]; |
| 678 } | 694 } |
| 679 | 695 |
| 680 static SkString getSampleTitle(const SkViewFactory* sampleFactory) { | 696 static SkString getSampleTitle(const SkViewFactory* sampleFactory) { |
| 681 SkView* view = (*sampleFactory)(); | 697 SkView* view = (*sampleFactory)(); |
| 682 SkString title; | 698 SkString title; |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 783 #endif | 799 #endif |
| 784 | 800 |
| 785 fDeviceType = kRaster_DeviceType; | 801 fDeviceType = kRaster_DeviceType; |
| 786 | 802 |
| 787 #if DEFAULT_TO_GPU | 803 #if DEFAULT_TO_GPU |
| 788 fDeviceType = kGPU_DeviceType; | 804 fDeviceType = kGPU_DeviceType; |
| 789 #endif | 805 #endif |
| 790 #if SK_ANGLE && DEFAULT_TO_ANGLE | 806 #if SK_ANGLE && DEFAULT_TO_ANGLE |
| 791 fDeviceType = kANGLE_DeviceType; | 807 fDeviceType = kANGLE_DeviceType; |
| 792 #endif | 808 #endif |
| 809 #if SK_COMMAND_BUFFER && DEFAULT_TO_COMMAND_BUFFER |
| 810 fDeviceType = kCommandBuffer_DeviceType; |
| 811 #endif |
| 793 | 812 |
| 794 fUseClip = false; | 813 fUseClip = false; |
| 795 fAnimating = false; | 814 fAnimating = false; |
| 796 fRotate = false; | 815 fRotate = false; |
| 797 fPerspAnim = false; | 816 fPerspAnim = false; |
| 798 fRequestGrabImage = false; | 817 fRequestGrabImage = false; |
| 799 fPipeState = SkOSMenu::kOffState; | 818 fPipeState = SkOSMenu::kOffState; |
| 800 fTilingMode = kNo_Tiling; | 819 fTilingMode = kNo_Tiling; |
| 801 fMeasureFPS = false; | 820 fMeasureFPS = false; |
| 802 fLCDState = SkOSMenu::kMixedState; | 821 fLCDState = SkOSMenu::kMixedState; |
| (...skipping 20 matching lines...) Expand all Loading... |
| 823 int sinkID = this->getSinkID(); | 842 int sinkID = this->getSinkID(); |
| 824 fAppMenu = new SkOSMenu; | 843 fAppMenu = new SkOSMenu; |
| 825 fAppMenu->setTitle("Global Settings"); | 844 fAppMenu->setTitle("Global Settings"); |
| 826 int itemID; | 845 int itemID; |
| 827 | 846 |
| 828 itemID =fAppMenu->appendList("Device Type", "Device Type", sinkID, 0, | 847 itemID =fAppMenu->appendList("Device Type", "Device Type", sinkID, 0, |
| 829 "Raster", "Picture", "OpenGL", | 848 "Raster", "Picture", "OpenGL", |
| 830 #if SK_ANGLE | 849 #if SK_ANGLE |
| 831 "ANGLE", | 850 "ANGLE", |
| 832 #endif | 851 #endif |
| 852 #if SK_COMMAND_BUFFER |
| 853 "Command Buffer", |
| 854 #endif |
| 833 nullptr); | 855 nullptr); |
| 834 fAppMenu->assignKeyEquivalentToItem(itemID, 'd'); | 856 fAppMenu->assignKeyEquivalentToItem(itemID, 'd'); |
| 835 itemID = fAppMenu->appendTriState("AA", "AA", sinkID, fAAState); | 857 itemID = fAppMenu->appendTriState("AA", "AA", sinkID, fAAState); |
| 836 fAppMenu->assignKeyEquivalentToItem(itemID, 'b'); | 858 fAppMenu->assignKeyEquivalentToItem(itemID, 'b'); |
| 837 itemID = fAppMenu->appendTriState("LCD", "LCD", sinkID, fLCDState); | 859 itemID = fAppMenu->appendTriState("LCD", "LCD", sinkID, fLCDState); |
| 838 fAppMenu->assignKeyEquivalentToItem(itemID, 'l'); | 860 fAppMenu->assignKeyEquivalentToItem(itemID, 'l'); |
| 839 itemID = fAppMenu->appendList("FilterQuality", "FilterQuality", sinkID, fFil
terQualityIndex, | 861 itemID = fAppMenu->appendList("FilterQuality", "FilterQuality", sinkID, fFil
terQualityIndex, |
| 840 gFilterQualityStates[0].fName, | 862 gFilterQualityStates[0].fName, |
| 841 gFilterQualityStates[1].fName, | 863 gFilterQualityStates[1].fName, |
| 842 gFilterQualityStates[2].fName, | 864 gFilterQualityStates[2].fName, |
| (...skipping 1089 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1932 } | 1954 } |
| 1933 | 1955 |
| 1934 static const char* gDeviceTypePrefix[] = { | 1956 static const char* gDeviceTypePrefix[] = { |
| 1935 "raster: ", | 1957 "raster: ", |
| 1936 "picture: ", | 1958 "picture: ", |
| 1937 #if SK_SUPPORT_GPU | 1959 #if SK_SUPPORT_GPU |
| 1938 "opengl: ", | 1960 "opengl: ", |
| 1939 #if SK_ANGLE | 1961 #if SK_ANGLE |
| 1940 "angle: ", | 1962 "angle: ", |
| 1941 #endif // SK_ANGLE | 1963 #endif // SK_ANGLE |
| 1964 #if SK_COMMAND_BUFFER |
| 1965 "command buffer: ", |
| 1966 #endif // SK_COMMAND_BUFFER |
| 1942 #endif // SK_SUPPORT_GPU | 1967 #endif // SK_SUPPORT_GPU |
| 1943 }; | 1968 }; |
| 1944 static_assert(SK_ARRAY_COUNT(gDeviceTypePrefix) == SampleWindow::kDeviceTypeCnt, | 1969 static_assert(SK_ARRAY_COUNT(gDeviceTypePrefix) == SampleWindow::kDeviceTypeCnt, |
| 1945 "array_size_mismatch"); | 1970 "array_size_mismatch"); |
| 1946 | 1971 |
| 1947 static const char* trystate_str(SkOSMenu::TriState state, | 1972 static const char* trystate_str(SkOSMenu::TriState state, |
| 1948 const char trueStr[], const char falseStr[]) { | 1973 const char trueStr[], const char falseStr[]) { |
| 1949 if (SkOSMenu::kOnState == state) { | 1974 if (SkOSMenu::kOnState == state) { |
| 1950 return trueStr; | 1975 return trueStr; |
| 1951 } else if (SkOSMenu::kOffState == state) { | 1976 } else if (SkOSMenu::kOffState == state) { |
| (...skipping 415 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2367 setenv("ANDROID_ROOT", "/android/device/data", 0); | 2392 setenv("ANDROID_ROOT", "/android/device/data", 0); |
| 2368 #endif | 2393 #endif |
| 2369 SkGraphics::Init(); | 2394 SkGraphics::Init(); |
| 2370 SkEvent::Init(); | 2395 SkEvent::Init(); |
| 2371 } | 2396 } |
| 2372 | 2397 |
| 2373 void application_term() { | 2398 void application_term() { |
| 2374 SkEvent::Term(); | 2399 SkEvent::Term(); |
| 2375 SkGraphics::Term(); | 2400 SkGraphics::Term(); |
| 2376 } | 2401 } |
| OLD | NEW |