summaryrefslogtreecommitdiffstats
path: root/WebKit/chromium/src/GLES2Context.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit/chromium/src/GLES2Context.cpp')
-rw-r--r--WebKit/chromium/src/GLES2Context.cpp58
1 files changed, 7 insertions, 51 deletions
diff --git a/WebKit/chromium/src/GLES2Context.cpp b/WebKit/chromium/src/GLES2Context.cpp
index f342436..b4b4bb2 100644
--- a/WebKit/chromium/src/GLES2Context.cpp
+++ b/WebKit/chromium/src/GLES2Context.cpp
@@ -31,6 +31,7 @@
#include "config.h"
#include "GLES2Context.h"
+#include "GLES2ContextInternal.h"
#include "IntSize.h"
#include "WebGLES2Context.h"
#include "WebKit.h"
@@ -52,68 +53,23 @@ using namespace WebKit;
namespace WebCore {
-class GLES2ContextInternal {
-public:
- GLES2ContextInternal() {}
- ~GLES2ContextInternal() {}
-
- bool initializeOnscreen(Page*);
- bool initializeOffscreen(GLES2Context*);
-
- WebGLES2Context* getWebGLES2Context() { return m_impl; }
-
-private:
- WebGLES2Context* m_impl;
-};
-
-bool GLES2ContextInternal::initializeOnscreen(Page* page)
+PassOwnPtr<GLES2ContextInternal> GLES2ContextInternal::create(WebGLES2Context* impl, bool owns)
{
- ASSERT(page);
- WebViewImpl* webView = WebViewImpl::fromPage(page);
- m_impl = webView->gles2Context();
- if (!m_impl)
- return false;
-
- return true;
-}
-
-bool GLES2ContextInternal::initializeOffscreen(GLES2Context* parent)
-{
- m_impl = webKitClient()->createGLES2Context();
- if (!m_impl)
- return false;
- if (!m_impl->initialize(0, parent ? parent->m_internal->m_impl : 0)) {
- delete m_impl;
- return false;
- }
- return true;
+ PassOwnPtr<GLES2ContextInternal> result = new GLES2ContextInternal(impl, owns);
+ return result;
}
-PassOwnPtr<GLES2Context> GLES2Context::createOnscreen(Page* page)
+PassOwnPtr<GLES2Context> GLES2Context::create(PassOwnPtr<GLES2ContextInternal> internal)
{
- GLES2ContextInternal* internal = new GLES2ContextInternal();
- if (!internal->initializeOnscreen(page)) {
- delete internal;
- return 0;
- }
PassOwnPtr<GLES2Context> result = new GLES2Context();
- result->m_internal.set(internal);
+ result->m_internal = internal;
return result;
}
-PassOwnPtr<GLES2Context> GLES2Context::createOffscreen(GLES2Context* parent)
+GLES2Context::GLES2Context()
{
- GLES2ContextInternal* internal = new GLES2ContextInternal();
- if (!internal->initializeOffscreen(parent)) {
- delete internal;
- return 0;
- }
- PassOwnPtr<GLES2Context> result = new GLES2Context();
- result->m_internal.set(internal);
- return result;
}
-
GLES2Context::~GLES2Context()
{
}