14576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang/* 2f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch * Copyright (C) 2010 Google Inc. All rights reserved. 34576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * 44576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * Redistribution and use in source and binary forms, with or without 54576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * modification, are permitted provided that the following conditions 64576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * are met: 74576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * 84576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * 1. Redistributions of source code must retain the above copyright 94576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * notice, this list of conditions and the following disclaimer. 104576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * 2. Redistributions in binary form must reproduce the above copyright 114576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * notice, this list of conditions and the following disclaimer in the 124576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * documentation and/or other materials provided with the distribution. 134576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * 144576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY 154576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 164576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 174576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 184576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 194576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 204576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 214576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 224576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 234576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 244576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang */ 254576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang 26cad810f21b803229eb11403f9209855525a25d57Steve Block#ifndef WebKitLoseContext_h 27cad810f21b803229eb11403f9209855525a25d57Steve Block#define WebKitLoseContext_h 284576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang 29f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch#include "WebGLExtension.h" 30f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch#include <wtf/PassRefPtr.h> 31f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch#include <wtf/RefCounted.h> 324576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang 33f05b935882198ccf7d81675736e3aeb089c5113aBen Murdochnamespace WebCore { 34f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch 35cad810f21b803229eb11403f9209855525a25d57Steve Blockclass WebGLRenderingContext; 36cad810f21b803229eb11403f9209855525a25d57Steve Block 37cad810f21b803229eb11403f9209855525a25d57Steve Blockclass WebKitLoseContext : public WebGLExtension { 38f05b935882198ccf7d81675736e3aeb089c5113aBen Murdochpublic: 39cad810f21b803229eb11403f9209855525a25d57Steve Block static PassRefPtr<WebKitLoseContext> create(WebGLRenderingContext*); 40f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch 41cad810f21b803229eb11403f9209855525a25d57Steve Block virtual ~WebKitLoseContext(); 42f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch virtual ExtensionName getName() const; 43f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch 44cad810f21b803229eb11403f9209855525a25d57Steve Block void loseContext(); 4581bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch void contextDestroyed() { m_context = 0; } 46cad810f21b803229eb11403f9209855525a25d57Steve Block 47f05b935882198ccf7d81675736e3aeb089c5113aBen Murdochprivate: 48cad810f21b803229eb11403f9209855525a25d57Steve Block WebKitLoseContext(WebGLRenderingContext*); 49cad810f21b803229eb11403f9209855525a25d57Steve Block 50cad810f21b803229eb11403f9209855525a25d57Steve Block WebGLRenderingContext* m_context; 51f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch}; 52f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch 53f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch} // namespace WebCore 54f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch 55cad810f21b803229eb11403f9209855525a25d57Steve Block#endif // WebKitLoseContext_h 56