1 /* 2 * Copyright 2017 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #include "GrContext.h" 9 #include "SkRefCnt.h" 10 #include "gl/GrGLFunctions.h" 11 #include "gl/GrGLInterface.h" 12 #include "gl/GLTestContext.h" 13 14 #include <EGL/egl.h> 15 #include <GLES2/gl2.h> 16 17 #include <sstream> 18 19 // create_grcontext implementation for EGL. create_grcontext(std::ostringstream & driverinfo,std::unique_ptr<sk_gpu_test::GLTestContext> * glContext)20sk_sp<GrContext> create_grcontext(std::ostringstream& driverinfo, 21 std::unique_ptr<sk_gpu_test::GLTestContext>* glContext) { 22 // We are leaking tc, but that's OK because fiddle is a short lived proces. 23 glContext->reset(sk_gpu_test::CreatePlatformGLTestContext(kGLES_GrGLStandard)); 24 if (!glContext) { 25 return nullptr; 26 } 27 (*glContext)->makeCurrent(); 28 sk_sp<GrContext> result = (*glContext)->makeGrContext(GrContextOptions()); 29 if (!result) { 30 glContext->reset(); 31 return nullptr; 32 } 33 34 driverinfo << "GL Version: " << glGetString(GL_VERSION) << "\n"; 35 driverinfo << "GL Vendor: " << glGetString(GL_VENDOR) << "\n"; 36 driverinfo << "GL Renderer: " << glGetString(GL_RENDERER) << "\n"; 37 driverinfo << "GL Extensions: " << glGetString(GL_EXTENSIONS) << "\n"; 38 39 return result; 40 } 41