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

Side by Side Diff: src/gpu/gl/iOS/SkNativeGLContext_iOS.mm

Issue 639793002: Revert of Make the Sk GL context class an abstract base class (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years, 2 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 unified diff | Download patch
OLDNEW
(Empty)
1
2 /*
3 * Copyright 2012 Google Inc.
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
8
9 #include "gl/SkNativeGLContext.h"
10 #import <OpenGLES/EAGL.h>
11
12 #define EAGLCTX ((EAGLContext*)(fEAGLContext))
13
14 SkNativeGLContext::AutoContextRestore::AutoContextRestore() {
15 fEAGLContext = [EAGLContext currentContext];
16 if (EAGLCTX) {
17 [EAGLCTX retain];
18 }
19 }
20
21 SkNativeGLContext::AutoContextRestore::~AutoContextRestore() {
22 if (EAGLCTX) {
23 [EAGLContext setCurrentContext:EAGLCTX];
24 [EAGLCTX release];
25 }
26 }
27
28 ///////////////////////////////////////////////////////////////////////////////
29
30 SkNativeGLContext::SkNativeGLContext()
31 : fEAGLContext(NULL) {
32 }
33
34 SkNativeGLContext::~SkNativeGLContext() {
35 this->destroyGLContext();
36 }
37
38 void SkNativeGLContext::destroyGLContext() {
39 if (fEAGLContext) {
40 if ([EAGLContext currentContext] == EAGLCTX) {
41 [EAGLContext setCurrentContext:nil];
42 }
43 [EAGLCTX release];
44 fEAGLContext = NULL;
45 }
46 }
47
48 const GrGLInterface* SkNativeGLContext::createGLContext(GrGLStandard forcedGpuAP I) {
49 if (kGL_GrGLStandard == forcedGpuAPI) {
50 return NULL;
51 }
52
53 fEAGLContext = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
54 [EAGLContext setCurrentContext:EAGLCTX];
55
56 const GrGLInterface* interface = GrGLCreateNativeInterface();
57 if (!interface) {
58 SkDebugf("Failed to create gl interface");
59 this->destroyGLContext();
60 return NULL;
61 }
62 return interface;
63 }
64
65 void SkNativeGLContext::makeCurrent() const {
66 if (![EAGLContext setCurrentContext:EAGLCTX]) {
67 SkDebugf("Could not set the context.\n");
68 }
69 }
70
71 void SkNativeGLContext::swapBuffers() const { }
OLDNEW
« no previous file with comments | « src/gpu/gl/iOS/SkCreatePlatformGLContext_iOS.mm ('k') | src/gpu/gl/mac/SkCreatePlatformGLContext_mac.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698