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

Side by Side Diff: src/gpu/gl/win/GrGLCreateNativeInterface_win.cpp

Issue 544233002: "NULL !=" = NULL (Closed) Base URL: https://skia.googlesource.com/skia.git@are
Patch Set: rebase Created 6 years, 3 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
« no previous file with comments | « src/gpu/gl/unix/SkNativeGLContext_unix.cpp ('k') | src/image/SkImage_Gpu.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2011 Google Inc. 3 * Copyright 2011 Google Inc.
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 #include "gl/GrGLInterface.h" 9 #include "gl/GrGLInterface.h"
10 #include "gl/GrGLAssembleInterface.h" 10 #include "gl/GrGLAssembleInterface.h"
11 #include "gl/GrGLUtil.h" 11 #include "gl/GrGLUtil.h"
12 #define WIN32_LEAN_AND_MEAN 12 #define WIN32_LEAN_AND_MEAN
13 #include <windows.h> 13 #include <windows.h>
14 14
15 class AutoLibraryUnload { 15 class AutoLibraryUnload {
16 public: 16 public:
17 AutoLibraryUnload(const char* moduleName) { 17 AutoLibraryUnload(const char* moduleName) {
18 fModule = LoadLibrary(moduleName); 18 fModule = LoadLibrary(moduleName);
19 } 19 }
20 ~AutoLibraryUnload() { 20 ~AutoLibraryUnload() {
21 if (NULL != fModule) { 21 if (fModule) {
22 FreeLibrary(fModule); 22 FreeLibrary(fModule);
23 } 23 }
24 } 24 }
25 HMODULE get() const { return fModule; } 25 HMODULE get() const { return fModule; }
26 26
27 private: 27 private:
28 HMODULE fModule; 28 HMODULE fModule;
29 }; 29 };
30 30
31 class GLProcGetter { 31 class GLProcGetter {
32 public: 32 public:
33 GLProcGetter() : fGLLib("opengl32.dll") {} 33 GLProcGetter() : fGLLib("opengl32.dll") {}
34 34
35 bool isInitialized() const { return NULL != fGLLib.get(); } 35 bool isInitialized() const { return SkToBool(fGLLib.get()); }
36 36
37 GrGLFuncPtr getProc(const char name[]) const { 37 GrGLFuncPtr getProc(const char name[]) const {
38 GrGLFuncPtr proc; 38 GrGLFuncPtr proc;
39 if (NULL != (proc = (GrGLFuncPtr) GetProcAddress(fGLLib.get(), name))) { 39 if ((proc = (GrGLFuncPtr) GetProcAddress(fGLLib.get(), name))) {
40 return proc; 40 return proc;
41 } 41 }
42 if (NULL != (proc = (GrGLFuncPtr) wglGetProcAddress(name))) { 42 if ((proc = (GrGLFuncPtr) wglGetProcAddress(name))) {
43 return proc; 43 return proc;
44 } 44 }
45 return NULL; 45 return NULL;
46 } 46 }
47 47
48 private: 48 private:
49 AutoLibraryUnload fGLLib; 49 AutoLibraryUnload fGLLib;
50 }; 50 };
51 51
52 static GrGLFuncPtr win_get_gl_proc(void* ctx, const char name[]) { 52 static GrGLFuncPtr win_get_gl_proc(void* ctx, const char name[]) {
53 SkASSERT(NULL != ctx); 53 SkASSERT(ctx);
54 SkASSERT(NULL != wglGetCurrentContext()); 54 SkASSERT(wglGetCurrentContext());
55 const GLProcGetter* getter = (const GLProcGetter*) ctx; 55 const GLProcGetter* getter = (const GLProcGetter*) ctx;
56 return getter->getProc(name); 56 return getter->getProc(name);
57 } 57 }
58 58
59 /* 59 /*
60 * Windows makes the GL funcs all be __stdcall instead of __cdecl :( 60 * Windows makes the GL funcs all be __stdcall instead of __cdecl :(
61 * This implementation will only work if GR_GL_FUNCTION_TYPE is __stdcall. 61 * This implementation will only work if GR_GL_FUNCTION_TYPE is __stdcall.
62 * Otherwise, a springboard would be needed that hides the calling convention. 62 * Otherwise, a springboard would be needed that hides the calling convention.
63 */ 63 */
64 const GrGLInterface* GrGLCreateNativeInterface() { 64 const GrGLInterface* GrGLCreateNativeInterface() {
(...skipping 13 matching lines...) Expand all
78 const char* verStr = reinterpret_cast<const char*>(getString(GR_GL_VERSION)) ; 78 const char* verStr = reinterpret_cast<const char*>(getString(GR_GL_VERSION)) ;
79 GrGLStandard standard = GrGLGetStandardInUseFromString(verStr); 79 GrGLStandard standard = GrGLGetStandardInUseFromString(verStr);
80 80
81 if (kGLES_GrGLStandard == standard) { 81 if (kGLES_GrGLStandard == standard) {
82 return GrGLAssembleGLESInterface(&getter, win_get_gl_proc); 82 return GrGLAssembleGLESInterface(&getter, win_get_gl_proc);
83 } else if (kGL_GrGLStandard == standard) { 83 } else if (kGL_GrGLStandard == standard) {
84 return GrGLAssembleGLInterface(&getter, win_get_gl_proc); 84 return GrGLAssembleGLInterface(&getter, win_get_gl_proc);
85 } 85 }
86 return NULL; 86 return NULL;
87 } 87 }
OLDNEW
« no previous file with comments | « src/gpu/gl/unix/SkNativeGLContext_unix.cpp ('k') | src/image/SkImage_Gpu.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698