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

Unified Diff: tools/gpu/GrContextFactory.h

Issue 1872283003: Vulkan config in dm (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Fix no-gpu build Created 4 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/flags/SkCommonFlagsConfig.cpp ('k') | tools/gpu/GrContextFactory.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/gpu/GrContextFactory.h
diff --git a/tools/gpu/GrContextFactory.h b/tools/gpu/GrContextFactory.h
index 89ca9cadf0903fb73d9baa2f29da19c72f11b5a0..0dc8c20cd503f4b0c05ef0099181a074a118d2da 100644
--- a/tools/gpu/GrContextFactory.h
+++ b/tools/gpu/GrContextFactory.h
@@ -14,6 +14,8 @@
#include "gl/GLTestContext.h"
#include "SkTArray.h"
+struct GrVkBackendContext;
+
namespace sk_gpu_test {
struct ContextInfo {
@@ -23,7 +25,7 @@ struct ContextInfo {
: fGrContext(grContext), fGLContext(glContext) { }
GrContext* fGrContext;
GLTestContext* fGLContext; //! Valid until the factory destroys it via abandonContexts() or
- //! destroyContexts().
+ //! destroyContexts(). Null if context is not based on OpenGL.
};
/**
@@ -35,24 +37,19 @@ struct ContextInfo {
*/
class GrContextFactory : SkNoncopyable {
public:
+ // The availability of context types is subject to platform and build configuration
+ // restrictions.
enum ContextType {
kGL_ContextType, //! OpenGL context.
kGLES_ContextType, //! OpenGL ES context.
-#if SK_ANGLE
-#ifdef SK_BUILD_FOR_WIN
kANGLE_ContextType, //! ANGLE on DirectX OpenGL ES context.
-#endif
kANGLE_GL_ContextType, //! ANGLE on OpenGL OpenGL ES context.
-#endif
-#if SK_COMMAND_BUFFER
kCommandBuffer_ContextType, //! Chromium command buffer OpenGL ES context.
-#endif
-#if SK_MESA
kMESA_ContextType, //! MESA OpenGL context
-#endif
kNullGL_ContextType, //! Non-rendering OpenGL mock context.
kDebugGL_ContextType, //! Non-rendering, state verifying OpenGL context.
- kLastContextType = kDebugGL_ContextType
+ kVulkan_ContextType, //! Vulkan
+ kLastContextType = kVulkan_ContextType
};
//! OpenGL or OpenGL ES context depending on the platform. To be removed.
@@ -81,8 +78,12 @@ public:
}
static GrBackend ContextTypeBackend(ContextType type) {
- // Currently all the context types use the GL backed
- return kOpenGL_GrBackend;
+ switch (type) {
+ case kVulkan_ContextType:
+ return kVulkan_GrBackend;
+ default:
+ return kOpenGL_GrBackend;
+ }
}
static const char* ContextTypeName(ContextType type) {
@@ -91,28 +92,20 @@ public:
return "gl";
case kGLES_ContextType:
return "gles";
-#if SK_ANGLE
-#ifdef SK_BUILD_FOR_WIN
case kANGLE_ContextType:
return "angle";
-#endif
case kANGLE_GL_ContextType:
return "angle-gl";
-#endif
-#if SK_COMMAND_BUFFER
case kCommandBuffer_ContextType:
return "commandbuffer";
-#endif
-#if SK_MESA
case kMESA_ContextType:
return "mesa";
-#endif
case kNullGL_ContextType:
- return "null";
+ return "nullgl";
case kDebugGL_ContextType:
- return "debug";
- default:
- SkFAIL("Unknown GL Context type.");
+ return "debuggl";
+ case kVulkan_ContextType:
+ return "vulkan";
}
}
@@ -140,13 +133,15 @@ public:
private:
struct Context {
- ContextType fType;
- ContextOptions fOptions;
- GLTestContext* fGLContext; // null if non-GL
- GrContext* fGrContext;
+ ContextType fType;
+ ContextOptions fOptions;
+ GLTestContext* fGLContext; // null if non-GL
+ GrContext* fGrContext;
+ bool fAbandoned;
};
- SkTArray<Context, true> fContexts;
- const GrContextOptions fGlobalOptions;
+ SkTArray<Context, true> fContexts;
+ SkAutoTDelete<GLTestContext> fSentinelGLContext;
+ const GrContextOptions fGlobalOptions;
};
} // namespace sk_gpu_test
#endif
« no previous file with comments | « tools/flags/SkCommonFlagsConfig.cpp ('k') | tools/gpu/GrContextFactory.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698