| /* | |
| * Copyright 2017 Google Inc. | |
| * | |
| * Use of this source code is governed by a BSD-style license that can be | |
| * found in the LICENSE file. | |
| */ | |
| #include "include/core/SkRefCnt.h" | |
| #include "include/gpu/GrContext.h" | |
| #include "include/gpu/gl/GrGLFunctions.h" | |
| #include "include/gpu/gl/GrGLInterface.h" | |
| #include "tools/gpu/gl/GLTestContext.h" | |
| #include <EGL/egl.h> | |
| #include <GLES2/gl2.h> | |
| #include <sstream> | |
| // create_grcontext implementation for EGL. | |
| sk_sp<GrContext> create_grcontext(std::ostringstream& driverinfo, | |
| std::unique_ptr<sk_gpu_test::GLTestContext>* glContext) { | |
| // We are leaking tc, but that's OK because fiddle is a short lived proces. | |
| glContext->reset(sk_gpu_test::CreatePlatformGLTestContext(kGLES_GrGLStandard)); | |
| if (!glContext) { | |
| return nullptr; | |
| } | |
| (*glContext)->makeCurrent(); | |
| sk_sp<GrContext> result = (*glContext)->makeGrContext(GrContextOptions()); | |
| if (!result) { | |
| glContext->reset(); | |
| return nullptr; | |
| } | |
| driverinfo << "GL Version: " << glGetString(GL_VERSION) << "\n"; | |
| driverinfo << "GL Vendor: " << glGetString(GL_VENDOR) << "\n"; | |
| driverinfo << "GL Renderer: " << glGetString(GL_RENDERER) << "\n"; | |
| driverinfo << "GL Extensions: " << glGetString(GL_EXTENSIONS) << "\n"; | |
| return result; | |
| } |