OLD | NEW |
---|---|
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "gpu/demos/framework/plugin.h" | 5 #include "gpu/demos/framework/plugin.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "gpu/demos/framework/demo_factory.h" | 8 #include "gpu/demos/framework/demo_factory.h" |
9 | 9 |
10 namespace { | 10 namespace { |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
85 | 85 |
86 Plugin::Plugin(NPP npp) | 86 Plugin::Plugin(NPP npp) |
87 : npp_(npp), | 87 : npp_(npp), |
88 device3d_(NULL), | 88 device3d_(NULL), |
89 pgl_context_(NULL), | 89 pgl_context_(NULL), |
90 demo_(CreateDemo()) { | 90 demo_(CreateDemo()) { |
91 memset(&context3d_, 0, sizeof(context3d_)); | 91 memset(&context3d_, 0, sizeof(context3d_)); |
92 } | 92 } |
93 | 93 |
94 Plugin::~Plugin() { | 94 Plugin::~Plugin() { |
95 // Destroy demo while GL context is current and before it is destroyed. | |
96 pglMakeCurrent(pgl_context_); | |
97 demo_.reset(); | |
alokp
2010/01/27 05:30:19
may be demo_.release() is clearer.
| |
95 pglMakeCurrent(NULL); | 98 pglMakeCurrent(NULL); |
99 | |
96 pglDestroyContext(pgl_context_); | 100 pglDestroyContext(pgl_context_); |
97 } | 101 } |
98 | 102 |
99 NPClass* Plugin::GetPluginClass() { | 103 NPClass* Plugin::GetPluginClass() { |
100 return &plugin_class; | 104 return &plugin_class; |
101 } | 105 } |
102 | 106 |
103 void Plugin::New(NPMIMEType pluginType, | 107 void Plugin::New(NPMIMEType pluginType, |
104 int16 argc, char* argn[], char* argv[]) { | 108 int16 argc, char* argn[], char* argv[]) { |
105 if (!g_extensions) { | 109 if (!g_extensions) { |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
138 demo_->Draw(); | 142 demo_->Draw(); |
139 pglSwapBuffers(); | 143 pglSwapBuffers(); |
140 pglMakeCurrent(NULL); | 144 pglMakeCurrent(NULL); |
141 | 145 |
142 // Schedule another call to Paint. | 146 // Schedule another call to Paint. |
143 g_browser->pluginthreadasynccall(npp_, PaintCallback, this); | 147 g_browser->pluginthreadasynccall(npp_, PaintCallback, this); |
144 } | 148 } |
145 | 149 |
146 } // namespace demos | 150 } // namespace demos |
147 } // namespace gpu | 151 } // namespace gpu |
OLD | NEW |