| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2009 Apple Inc. All rights reserved. | 2 * Copyright (C) 2009 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 95 class WebGLVertexArrayObjectOES; | 95 class WebGLVertexArrayObjectOES; |
| 96 | 96 |
| 97 class WebGLRenderingContextLostCallback; | 97 class WebGLRenderingContextLostCallback; |
| 98 class WebGLRenderingContextErrorMessageCallback; | 98 class WebGLRenderingContextErrorMessageCallback; |
| 99 | 99 |
| 100 class WebGLRenderingContextBase: public CanvasRenderingContext, public ActiveDOM
Object, public Page::MultisamplingChangedObserver { | 100 class WebGLRenderingContextBase: public CanvasRenderingContext, public ActiveDOM
Object, public Page::MultisamplingChangedObserver { |
| 101 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(WebGLRenderingContextBase); | 101 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(WebGLRenderingContextBase); |
| 102 public: | 102 public: |
| 103 virtual ~WebGLRenderingContextBase(); | 103 virtual ~WebGLRenderingContextBase(); |
| 104 | 104 |
| 105 virtual bool is3d() const OVERRIDE { return true; } | |
| 106 virtual bool isAccelerated() const OVERRIDE { return true; } | |
| 107 virtual unsigned version() const = 0; | 105 virtual unsigned version() const = 0; |
| 108 virtual String contextName() const = 0; | 106 virtual String contextName() const = 0; |
| 109 virtual void registerContextExtensions() = 0; | 107 virtual void registerContextExtensions() = 0; |
| 110 | 108 |
| 111 static unsigned getWebGLVersion(const CanvasRenderingContext*); | 109 static unsigned getWebGLVersion(const CanvasRenderingContext*); |
| 112 | 110 |
| 113 int drawingBufferWidth() const; | 111 int drawingBufferWidth() const; |
| 114 int drawingBufferHeight() const; | 112 int drawingBufferHeight() const; |
| 115 | 113 |
| 116 void activeTexture(GLenum texture); | 114 void activeTexture(GLenum texture); |
| (...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 323 | 321 |
| 324 // A synthetic lost context that should attempt to recover automatically | 322 // A synthetic lost context that should attempt to recover automatically |
| 325 AutoRecoverSyntheticLostContext | 323 AutoRecoverSyntheticLostContext |
| 326 }; | 324 }; |
| 327 void forceLostContext(LostContextMode); | 325 void forceLostContext(LostContextMode); |
| 328 void forceRestoreContext(); | 326 void forceRestoreContext(); |
| 329 void loseContextImpl(LostContextMode); | 327 void loseContextImpl(LostContextMode); |
| 330 | 328 |
| 331 blink::WebGraphicsContext3D* webContext() const { return m_drawingBuffer->co
ntext(); } | 329 blink::WebGraphicsContext3D* webContext() const { return m_drawingBuffer->co
ntext(); } |
| 332 WebGLContextGroup* contextGroup() const { return m_contextGroup.get(); } | 330 WebGLContextGroup* contextGroup() const { return m_contextGroup.get(); } |
| 333 virtual blink::WebLayer* platformLayer() const OVERRIDE; | |
| 334 Extensions3DUtil* extensionsUtil(); | 331 Extensions3DUtil* extensionsUtil(); |
| 335 | 332 |
| 336 void reshape(int width, int height); | 333 void reshape(int width, int height); |
| 337 | 334 |
| 338 void markLayerComposited(); | 335 void markLayerComposited(); |
| 339 virtual void paintRenderingResultsToCanvas() OVERRIDE; | |
| 340 PassRefPtrWillBeRawPtr<ImageData> paintRenderingResultsToImageData(); | 336 PassRefPtrWillBeRawPtr<ImageData> paintRenderingResultsToImageData(); |
| 341 | 337 |
| 342 void removeSharedObject(WebGLSharedObject*); | 338 void removeSharedObject(WebGLSharedObject*); |
| 343 void removeContextObject(WebGLContextObject*); | 339 void removeContextObject(WebGLContextObject*); |
| 344 | 340 |
| 345 unsigned maxVertexAttribs() const { return m_maxVertexAttribs; } | 341 unsigned maxVertexAttribs() const { return m_maxVertexAttribs; } |
| 346 | 342 |
| 347 // ActiveDOMObject notifications | 343 // ActiveDOMObject notifications |
| 348 virtual bool hasPendingActivity() const OVERRIDE; | 344 virtual bool hasPendingActivity() const OVERRIDE; |
| 349 virtual void stop() OVERRIDE; | 345 virtual void stop() OVERRIDE; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 361 friend class WebGLCompressedTextureS3TC; | 357 friend class WebGLCompressedTextureS3TC; |
| 362 friend class WebGLRenderingContextErrorMessageCallback; | 358 friend class WebGLRenderingContextErrorMessageCallback; |
| 363 friend class WebGLVertexArrayObjectOES; | 359 friend class WebGLVertexArrayObjectOES; |
| 364 friend class ScopedTexture2DRestorer; | 360 friend class ScopedTexture2DRestorer; |
| 365 | 361 |
| 366 WebGLRenderingContextBase(HTMLCanvasElement*, PassOwnPtr<blink::WebGraphicsC
ontext3D>, WebGLContextAttributes*); | 362 WebGLRenderingContextBase(HTMLCanvasElement*, PassOwnPtr<blink::WebGraphicsC
ontext3D>, WebGLContextAttributes*); |
| 367 PassRefPtr<DrawingBuffer> createDrawingBuffer(PassOwnPtr<blink::WebGraphicsC
ontext3D>); | 363 PassRefPtr<DrawingBuffer> createDrawingBuffer(PassOwnPtr<blink::WebGraphicsC
ontext3D>); |
| 368 void initializeNewContext(); | 364 void initializeNewContext(); |
| 369 void setupFlags(); | 365 void setupFlags(); |
| 370 | 366 |
| 367 // CanvasRenderingContext implementation. |
| 368 virtual bool is3d() const OVERRIDE { return true; } |
| 369 virtual bool isAccelerated() const OVERRIDE { return true; } |
| 370 virtual void setIsHidden(bool) OVERRIDE; |
| 371 virtual void paintRenderingResultsToCanvas() OVERRIDE; |
| 372 virtual blink::WebLayer* platformLayer() const OVERRIDE; |
| 373 |
| 371 void addSharedObject(WebGLSharedObject*); | 374 void addSharedObject(WebGLSharedObject*); |
| 372 void addContextObject(WebGLContextObject*); | 375 void addContextObject(WebGLContextObject*); |
| 373 void detachAndRemoveAllObjects(); | 376 void detachAndRemoveAllObjects(); |
| 374 | 377 |
| 375 void destroyContext(); | 378 void destroyContext(); |
| 376 void markContextChanged(ContentChangeType); | 379 void markContextChanged(ContentChangeType); |
| 377 | 380 |
| 378 // Query if the GL implementation is NPOT strict. | 381 // Query if the GL implementation is NPOT strict. |
| 379 bool isGLES2NPOTStrict() { return m_isGLES2NPOTStrict; } | 382 bool isGLES2NPOTStrict() { return m_isGLES2NPOTStrict; } |
| 380 // Query if depth_stencil buffer is supported. | 383 // Query if depth_stencil buffer is supported. |
| (...skipping 521 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 902 // If the vector is empty, return the maximum allowed active context number. | 905 // If the vector is empty, return the maximum allowed active context number. |
| 903 static size_t oldestContextIndex(); | 906 static size_t oldestContextIndex(); |
| 904 static IntSize oldestContextSize(); | 907 static IntSize oldestContextSize(); |
| 905 }; | 908 }; |
| 906 | 909 |
| 907 DEFINE_TYPE_CASTS(WebGLRenderingContextBase, CanvasRenderingContext, context, co
ntext->is3d(), context.is3d()); | 910 DEFINE_TYPE_CASTS(WebGLRenderingContextBase, CanvasRenderingContext, context, co
ntext->is3d(), context.is3d()); |
| 908 | 911 |
| 909 } // namespace WebCore | 912 } // namespace WebCore |
| 910 | 913 |
| 911 #endif // WebGLRenderingContextBase_h | 914 #endif // WebGLRenderingContextBase_h |
| OLD | NEW |