aboutsummaryrefslogtreecommitdiffhomepage
path: root/samplecode
diff options
context:
space:
mode:
authorGravatar hendrikw <hendrikw@chromium.org>2015-08-27 10:38:39 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-08-27 10:38:39 -0700
commit885bf0925514b9dfe3365bab227d36897d866b5d (patch)
tree4a80bbcffa086e8bbdede4903a30993dd4783800 /samplecode
parent33c594c9611529ba72474ec52586be65f3e2d76f (diff)
skia: add ability to load command_buffer_gles2
Diffstat (limited to 'samplecode')
-rw-r--r--samplecode/SampleApp.cpp27
-rw-r--r--samplecode/SampleApp.h6
2 files changed, 32 insertions, 1 deletions
diff --git a/samplecode/SampleApp.cpp b/samplecode/SampleApp.cpp
index 44daeb63a1..5205007114 100644
--- a/samplecode/SampleApp.cpp
+++ b/samplecode/SampleApp.cpp
@@ -81,7 +81,9 @@ public:
SkTCPServer gServer;
#endif
-#if SK_ANGLE
+#if SK_COMMAND_BUFFER
+#define DEFAULT_TO_COMMAND_BUFFER 1
+#elif SK_ANGLE
//#define DEFAULT_TO_ANGLE 1
#else
#define DEFAULT_TO_GPU 0 // if 1 default rendering is on GPU
@@ -197,6 +199,12 @@ public:
fBackend = kANGLE_BackEndType;
break;
#endif // SK_ANGLE
+#if SK_COMMAND_BUFFER
+ case kCommandBuffer_DeviceType:
+ // Command buffer is really the only other odd man out :D
+ fBackend = kCommandBuffer_BackEndType;
+ break;
+#endif // SK_COMMAND_BUFFER
default:
SkASSERT(false);
break;
@@ -223,6 +231,11 @@ public:
glInterface.reset(GrGLCreateANGLEInterface());
break;
#endif // SK_ANGLE
+#if SK_COMMAND_BUFFER
+ case kCommandBuffer_DeviceType:
+ glInterface.reset(GrGLCreateCommandBufferInterface());
+ break;
+#endif // SK_COMMAND_BUFFER
default:
SkASSERT(false);
break;
@@ -670,6 +683,9 @@ static inline SampleWindow::DeviceType cycle_devicetype(SampleWindow::DeviceType
#if SK_ANGLE
SampleWindow::kANGLE_DeviceType,
#endif // SK_ANGLE
+#if SK_COMMAND_BUFFER
+ SampleWindow::kCommandBuffer_DeviceType,
+#endif // SK_COMMAND_BUFFER
#endif // SK_SUPPORT_GPU
SampleWindow::kRaster_DeviceType,
};
@@ -790,6 +806,9 @@ SampleWindow::SampleWindow(void* hwnd, int argc, char** argv, DeviceManager* dev
#if SK_ANGLE && DEFAULT_TO_ANGLE
fDeviceType = kANGLE_DeviceType;
#endif
+#if SK_COMMAND_BUFFER && DEFAULT_TO_COMMAND_BUFFER
+ fDeviceType = kCommandBuffer_DeviceType;
+#endif
fUseClip = false;
fAnimating = false;
@@ -830,6 +849,9 @@ SampleWindow::SampleWindow(void* hwnd, int argc, char** argv, DeviceManager* dev
#if SK_ANGLE
"ANGLE",
#endif
+#if SK_COMMAND_BUFFER
+ "Command Buffer",
+#endif
nullptr);
fAppMenu->assignKeyEquivalentToItem(itemID, 'd');
itemID = fAppMenu->appendTriState("AA", "AA", sinkID, fAAState);
@@ -1939,6 +1961,9 @@ static const char* gDeviceTypePrefix[] = {
#if SK_ANGLE
"angle: ",
#endif // SK_ANGLE
+#if SK_COMMAND_BUFFER
+ "command buffer: ",
+#endif // SK_COMMAND_BUFFER
#endif // SK_SUPPORT_GPU
};
static_assert(SK_ARRAY_COUNT(gDeviceTypePrefix) == SampleWindow::kDeviceTypeCnt,
diff --git a/samplecode/SampleApp.h b/samplecode/SampleApp.h
index d8724955e0..e8eec8bf88 100644
--- a/samplecode/SampleApp.h
+++ b/samplecode/SampleApp.h
@@ -39,6 +39,9 @@ public:
#if SK_ANGLE
kANGLE_DeviceType,
#endif // SK_ANGLE
+#if SK_COMMAND_BUFFER
+ kCommandBuffer_DeviceType,
+#endif // SK_COMMAND_BUFFER
#endif // SK_SUPPORT_GPU
kDeviceTypeCnt
};
@@ -50,6 +53,9 @@ public:
#if SK_ANGLE
case kANGLE_DeviceType:
#endif // SK_ANGLE
+ #if SK_COMMAND_BUFFER
+ case kCommandBuffer_DeviceType:
+ #endif // SK_COMMAND_BUFFER
return true;
default:
return false;