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 350 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
361 void viewport(GLint x, GLint y, GLsizei width, GLsizei height); | 361 void viewport(GLint x, GLint y, GLsizei width, GLsizei height); |
362 | 362 |
363 // WEBGL_lose_context support | 363 // WEBGL_lose_context support |
364 enum AutoRecoveryMethod { | 364 enum AutoRecoveryMethod { |
365 // Don't restore automatically. | 365 // Don't restore automatically. |
366 Manual, | 366 Manual, |
367 | 367 |
368 // Restore when resources are available. | 368 // Restore when resources are available. |
369 WhenAvailable, | 369 WhenAvailable, |
370 | 370 |
371 // Restore as soon as possible. | 371 // Restore as soon as possible, but only when |
| 372 // the canvas is visible. |
372 Auto | 373 Auto |
373 }; | 374 }; |
374 void loseContext(LostContextMode) override; | 375 void loseContext(LostContextMode) override; |
375 void forceLostContext(LostContextMode, AutoRecoveryMethod); | 376 void forceLostContext(LostContextMode, AutoRecoveryMethod); |
376 void forceRestoreContext(); | 377 void forceRestoreContext(); |
377 void loseContextImpl(LostContextMode, AutoRecoveryMethod); | 378 void loseContextImpl(LostContextMode, AutoRecoveryMethod); |
378 | 379 |
379 WebGraphicsContext3D* webContext() const { return drawingBuffer()->context()
; } | 380 WebGraphicsContext3D* webContext() const { return drawingBuffer()->context()
; } |
380 WebGLContextGroup* contextGroup() const { return m_contextGroup.get(); } | 381 WebGLContextGroup* contextGroup() const { return m_contextGroup.get(); } |
381 Extensions3DUtil* extensionsUtil(); | 382 Extensions3DUtil* extensionsUtil(); |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
486 | 487 |
487 PassRefPtr<Image> videoFrameToImage(HTMLVideoElement*); | 488 PassRefPtr<Image> videoFrameToImage(HTMLVideoElement*); |
488 | 489 |
489 // Structure for rendering to a DrawingBuffer, instead of directly | 490 // Structure for rendering to a DrawingBuffer, instead of directly |
490 // to the back-buffer of m_context. | 491 // to the back-buffer of m_context. |
491 RefPtr<DrawingBuffer> m_drawingBuffer; | 492 RefPtr<DrawingBuffer> m_drawingBuffer; |
492 DrawingBuffer* drawingBuffer() const; | 493 DrawingBuffer* drawingBuffer() const; |
493 | 494 |
494 RefPtr<WebGLContextGroup> m_contextGroup; | 495 RefPtr<WebGLContextGroup> m_contextGroup; |
495 | 496 |
| 497 bool m_isHidden; |
496 LostContextMode m_contextLostMode; | 498 LostContextMode m_contextLostMode; |
497 AutoRecoveryMethod m_autoRecoveryMethod; | 499 AutoRecoveryMethod m_autoRecoveryMethod; |
498 // Dispatches a context lost event once it is determined that one is needed. | 500 // Dispatches a context lost event once it is determined that one is needed. |
499 // This is used for synthetic, WEBGL_lose_context and real context losses. F
or real ones, it's | 501 // This is used for synthetic, WEBGL_lose_context and real context losses. F
or real ones, it's |
500 // likely that there's no JavaScript on the stack, but that might be depende
nt | 502 // likely that there's no JavaScript on the stack, but that might be depende
nt |
501 // on how exactly the platform discovers that the context was lost. For bett
er | 503 // on how exactly the platform discovers that the context was lost. For bett
er |
502 // portability we always defer the dispatch of the event. | 504 // portability we always defer the dispatch of the event. |
503 Timer<WebGLRenderingContextBase> m_dispatchContextLostEventTimer; | 505 Timer<WebGLRenderingContextBase> m_dispatchContextLostEventTimer; |
504 bool m_restoreAllowed; | 506 bool m_restoreAllowed; |
505 Timer<WebGLRenderingContextBase> m_restoreTimer; | 507 Timer<WebGLRenderingContextBase> m_restoreTimer; |
(...skipping 587 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1093 #endif | 1095 #endif |
1094 }; | 1096 }; |
1095 | 1097 |
1096 DEFINE_TYPE_CASTS(WebGLRenderingContextBase, CanvasRenderingContext, context, co
ntext->is3d(), context.is3d()); | 1098 DEFINE_TYPE_CASTS(WebGLRenderingContextBase, CanvasRenderingContext, context, co
ntext->is3d(), context.is3d()); |
1097 | 1099 |
1098 } // namespace blink | 1100 } // namespace blink |
1099 | 1101 |
1100 WTF_ALLOW_MOVE_INIT_AND_COMPARE_WITH_MEM_FUNCTIONS(blink::WebGLRenderingContextB
ase::TextureUnitState); | 1102 WTF_ALLOW_MOVE_INIT_AND_COMPARE_WITH_MEM_FUNCTIONS(blink::WebGLRenderingContextB
ase::TextureUnitState); |
1101 | 1103 |
1102 #endif // WebGLRenderingContextBase_h | 1104 #endif // WebGLRenderingContextBase_h |
OLD | NEW |