Add entry point for passing options to the GrContextFactory
R=bsalomon@google.com, mtklein@google.com, robertphillips@google.com Author: krajcevski@google.com Review URL: https://codereview.chromium.org/465073002
This commit is contained in:
parent
b3f319fbb0
commit
69a5560ea5
@ -26,7 +26,7 @@
|
||||
#if SK_SUPPORT_GPU
|
||||
#include "gl/GrGLDefines.h"
|
||||
#include "GrContextFactory.h"
|
||||
GrContextFactory gGrFactory;
|
||||
SkAutoTDelete<GrContextFactory> gGrFactory;
|
||||
#endif
|
||||
|
||||
__SK_FORCE_IMAGE_DECODER_LINKING;
|
||||
@ -288,7 +288,7 @@ static bool is_gpu_config_allowed(const char* name, GrContextFactory::GLContextT
|
||||
if (!is_cpu_config_allowed(name)) {
|
||||
return false;
|
||||
}
|
||||
if (const GrContext* ctx = gGrFactory.get(ctxType)) {
|
||||
if (const GrContext* ctx = gGrFactory->get(ctxType)) {
|
||||
return sampleCnt <= ctx->getMaxSampleCount();
|
||||
}
|
||||
return false;
|
||||
@ -362,9 +362,9 @@ static Target* is_enabled(Benchmark* bench, const Config& config) {
|
||||
}
|
||||
#if SK_SUPPORT_GPU
|
||||
else if (Benchmark::kGPU_Backend == config.backend) {
|
||||
target->surface.reset(SkSurface::NewRenderTarget(gGrFactory.get(config.ctxType), info,
|
||||
target->surface.reset(SkSurface::NewRenderTarget(gGrFactory->get(config.ctxType), info,
|
||||
config.samples));
|
||||
target->gl = gGrFactory.getGLContext(config.ctxType);
|
||||
target->gl = gGrFactory->getGLContext(config.ctxType);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -528,6 +528,10 @@ int nanobench_main() {
|
||||
SetupCrashHandler();
|
||||
SkAutoGraphics ag;
|
||||
|
||||
#if SK_SUPPORT_GPU
|
||||
gGrFactory.reset(SkNEW_ARGS(GrContextFactory, (GrContext::Options())));
|
||||
#endif
|
||||
|
||||
if (kAutoTuneLoops != FLAGS_loops) {
|
||||
FLAGS_samples = 1;
|
||||
FLAGS_gpuFrameLag = 0;
|
||||
@ -671,10 +675,10 @@ int nanobench_main() {
|
||||
|
||||
#if SK_SUPPORT_GPU
|
||||
if (FLAGS_abandonGpuContext) {
|
||||
gGrFactory.abandonContexts();
|
||||
gGrFactory->abandonContexts();
|
||||
}
|
||||
if (FLAGS_resetGpuContext || FLAGS_abandonGpuContext) {
|
||||
gGrFactory.destroyContexts();
|
||||
gGrFactory->destroyContexts();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -2284,7 +2284,7 @@ int tool_main(int argc, char** argv) {
|
||||
SkTDArray<SkScalar> tileGridReplayScales;
|
||||
#if SK_SUPPORT_GPU
|
||||
GrGLStandard gpuAPI = kNone_GrGLStandard;
|
||||
GrContextFactory* grFactory = new GrContextFactory;
|
||||
GrContextFactory* grFactory = new GrContextFactory(GrContext::Options());
|
||||
#else
|
||||
GrGLStandard gpuAPI = 0;
|
||||
GrContextFactory* grFactory = NULL;
|
||||
|
@ -88,6 +88,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
explicit GrContextFactory(const GrContext::Options& opts) : fGlobalOptions(opts) { }
|
||||
GrContextFactory() { }
|
||||
|
||||
~GrContextFactory() { this->destroyContexts(); }
|
||||
@ -176,7 +177,7 @@ public:
|
||||
|
||||
glCtx->makeCurrent();
|
||||
GrBackendContext p3dctx = reinterpret_cast<GrBackendContext>(glInterface.get());
|
||||
grCtx.reset(GrContext::Create(kOpenGL_GrBackend, p3dctx));
|
||||
grCtx.reset(GrContext::Create(kOpenGL_GrBackend, p3dctx, &fGlobalOptions));
|
||||
if (!grCtx.get()) {
|
||||
return NULL;
|
||||
}
|
||||
@ -207,7 +208,8 @@ private:
|
||||
SkGLContextHelper* fGLContext;
|
||||
GrContext* fGrContext;
|
||||
};
|
||||
SkTArray<GPUContext, true> fContexts;
|
||||
SkTArray<GPUContext, true> fContexts;
|
||||
const GrContext::Options fGlobalOptions;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user