#if SK_ANGLE
kAngle_DeviceType,
#endif
+#if SK_MESA
+ kMesa_DeviceType,
+#endif
kBitmap_DeviceType,
#if SK_SUPPORT_GPU
kGPU_DeviceType,
glContextType = GrContextFactory::kANGLE_GLContextType;
break;
#endif
+#if SK_MESA
+ case kMesa_DeviceType:
+ glContextType = GrContextFactory::kMESA_GLContextType;
+ break;
+#endif
#endif
default:
// Invalid device type.
config.append("_angle");
break;
#endif
+#if SK_MESA
+ case kMesa_DeviceType:
+ config.append("_mesa");
+ break;
+#endif
default:
// Assume that no extra info means bitmap.
break;
// fall through
#if SK_ANGLE
case kAngle_DeviceType:
+ // fall through
+#endif
+#if SK_MESA
+ case kMesa_DeviceType:
#endif
return true;
default:
glContextType = GrContextFactory::kANGLE_GLContextType;
break;
#endif
+#if SK_MESA
+ case kMesa_DeviceType:
+ glContextType = GrContextFactory::kMESA_GLContextType;
+ break;
+#endif
default:
return NULL;
}
"playbackCreation.");
// Although this config does not support all the same options as gm, the names should be kept
// consistent.
+DEFINE_string(config, "8888", "["
+ "8888"
+#if SK_SUPPORT_GPU
+ "|gpu|msaa4|msaa16"
+#endif
#if SK_ANGLE
-// ANGLE assumes GPU
-DEFINE_string(config, "8888", "[8888|gpu|msaa4|msaa16|angle]: Use the corresponding config.");
-#elif SK_SUPPORT_GPU
-DEFINE_string(config, "8888", "[8888|gpu|msaa4|msaa16]: Use the corresponding config.");
-#else
-DEFINE_string(config, "8888", "[8888]: Use the corresponding config.");
+ "|angle"
#endif
+#if SK_MESA
+ "|mesa"
+#endif
+ "]: Use the corresponding config.");
DEFINE_bool(deferImageDecoding, false, "Defer decoding until drawing images. "
"Has no effect if the provided skp does not have its images encoded.");
}
}
#endif
+#if SK_MESA
+ else if (0 == strcmp(FLAGS_config[0], "mesa")) {
+ deviceType = sk_tools::PictureRenderer::kMesa_DeviceType;
+ if (FLAGS_multi > 1) {
+ error.printf("Mesa not compatible with multithreaded tiling.\n");
+ return NULL;
+ }
+ }
+#endif
#endif
else {
error.printf("%s is not a valid mode for --config\n", FLAGS_config[0]);