Chromium Code Reviews| 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 514 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 525 | 525 |
| 526 bool m_multisamplingAllowed; | 526 bool m_multisamplingAllowed; |
| 527 bool m_multisamplingObserverRegistered; | 527 bool m_multisamplingObserverRegistered; |
| 528 | 528 |
| 529 GLuint m_onePlusMaxEnabledAttribIndex; | 529 GLuint m_onePlusMaxEnabledAttribIndex; |
| 530 unsigned long m_onePlusMaxNonDefaultTextureUnit; | 530 unsigned long m_onePlusMaxNonDefaultTextureUnit; |
| 531 | 531 |
| 532 OwnPtr<Extensions3DUtil> m_extensionsUtil; | 532 OwnPtr<Extensions3DUtil> m_extensionsUtil; |
| 533 | 533 |
| 534 enum ExtensionFlags { | 534 enum ExtensionFlags { |
| 535 ApprovedExtension = 0x00, | 535 ApprovedExtension = 0x00, |
| 536 DraftExtension = 0x01, | 536 DraftExtension = 0x01, // Extension that is behind the draft extensions runtime flag. |
| 537 PrivilegedExtension = 0x02, | 537 PrivilegedExtension = 0x02, |
| 538 PrefixedExtension = 0x04, | 538 EnabledDraftExtension = 0x04, // Extension that is still in dr aft state, but has been selectively enabled by default. |
|
Ken Russell (switch to Gerrit)
2014/03/25 18:21:11
Please update this comment to say something like
| |
| 539 WebGLDebugRendererInfoExtension = 0x08, | 539 WebGLDebugRendererInfoExtension = 0x08, |
| 540 }; | 540 }; |
| 541 | 541 |
| 542 class ExtensionTracker { | 542 class ExtensionTracker { |
| 543 public: | 543 public: |
| 544 ExtensionTracker(ExtensionFlags flags, const char* const* prefixes) | 544 ExtensionTracker(ExtensionFlags flags, const char* const* prefixes) |
| 545 : m_privileged(flags & PrivilegedExtension) | 545 : m_privileged(flags & PrivilegedExtension) |
| 546 , m_draft(flags & DraftExtension) | 546 , m_draft(flags & DraftExtension) |
| 547 , m_prefixed(flags & PrefixedExtension) | |
| 548 , m_webglDebugRendererInfo(flags & WebGLDebugRendererInfoExtension) | 547 , m_webglDebugRendererInfo(flags & WebGLDebugRendererInfoExtension) |
| 549 , m_prefixes(prefixes) | 548 , m_prefixes(prefixes) |
| 550 { | 549 { |
| 551 } | 550 } |
| 552 | 551 |
| 553 virtual ~ExtensionTracker() | 552 virtual ~ExtensionTracker() |
| 554 { | 553 { |
| 555 } | 554 } |
| 556 | 555 |
| 557 bool prefixed() const | |
| 558 { | |
| 559 return m_prefixed; | |
| 560 } | |
| 561 | |
| 562 bool privileged() const | 556 bool privileged() const |
| 563 { | 557 { |
| 564 return m_privileged; | 558 return m_privileged; |
| 565 } | 559 } |
| 566 | 560 |
| 567 bool draft() const | 561 bool draft() const |
| 568 { | 562 { |
| 569 return m_draft; | 563 return m_draft; |
| 570 } | 564 } |
| 571 | 565 |
| 572 bool webglDebugRendererInfo() const | 566 bool webglDebugRendererInfo() const |
| 573 { | 567 { |
| 574 return m_webglDebugRendererInfo; | 568 return m_webglDebugRendererInfo; |
| 575 } | 569 } |
| 576 | 570 |
| 571 const char* const* prefixes() const; | |
| 577 bool matchesNameWithPrefixes(const String&) const; | 572 bool matchesNameWithPrefixes(const String&) const; |
| 578 | 573 |
| 579 virtual PassRefPtr<WebGLExtension> getExtension(WebGLRenderingContextBas e*) = 0; | 574 virtual PassRefPtr<WebGLExtension> getExtension(WebGLRenderingContextBas e*) = 0; |
| 580 virtual bool supported(WebGLRenderingContextBase*) const = 0; | 575 virtual bool supported(WebGLRenderingContextBase*) const = 0; |
| 581 virtual const char* extensionName() const = 0; | 576 virtual const char* extensionName() const = 0; |
| 582 virtual void loseExtension() = 0; | 577 virtual void loseExtension() = 0; |
| 583 | 578 |
| 584 private: | 579 private: |
| 585 bool m_privileged; | 580 bool m_privileged; |
| 586 bool m_draft; | 581 bool m_draft; |
| 587 bool m_prefixed; | |
| 588 bool m_webglDebugRendererInfo; | 582 bool m_webglDebugRendererInfo; |
| 589 const char* const* m_prefixes; | 583 const char* const* m_prefixes; |
| 590 }; | 584 }; |
| 591 | 585 |
| 592 template <typename T> | 586 template <typename T> |
| 593 class TypedExtensionTracker FINAL : public ExtensionTracker { | 587 class TypedExtensionTracker FINAL : public ExtensionTracker { |
| 594 public: | 588 public: |
| 595 TypedExtensionTracker(RefPtr<T>& extensionField, ExtensionFlags flags, c onst char* const* prefixes) | 589 TypedExtensionTracker(RefPtr<T>& extensionField, ExtensionFlags flags, c onst char* const* prefixes) |
| 596 : ExtensionTracker(flags, prefixes) | 590 : ExtensionTracker(flags, prefixes) |
| 597 , m_extensionField(extensionField) | 591 , m_extensionField(extensionField) |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 645 | 639 |
| 646 bool m_extensionEnabled[WebGLExtensionNameCount]; | 640 bool m_extensionEnabled[WebGLExtensionNameCount]; |
| 647 Vector<ExtensionTracker*> m_extensions; | 641 Vector<ExtensionTracker*> m_extensions; |
| 648 | 642 |
| 649 template <typename T> | 643 template <typename T> |
| 650 void registerExtension(RefPtr<T>& extensionPtr, ExtensionFlags flags = Appro vedExtension, const char* const* prefixes = 0) | 644 void registerExtension(RefPtr<T>& extensionPtr, ExtensionFlags flags = Appro vedExtension, const char* const* prefixes = 0) |
| 651 { | 645 { |
| 652 m_extensions.append(new TypedExtensionTracker<T>(extensionPtr, flags, pr efixes)); | 646 m_extensions.append(new TypedExtensionTracker<T>(extensionPtr, flags, pr efixes)); |
| 653 } | 647 } |
| 654 | 648 |
| 649 bool extensionSupportedAndAllowed(const ExtensionTracker*); | |
| 650 | |
| 655 inline bool extensionEnabled(WebGLExtensionName name) | 651 inline bool extensionEnabled(WebGLExtensionName name) |
| 656 { | 652 { |
| 657 return m_extensionEnabled[name]; | 653 return m_extensionEnabled[name]; |
| 658 } | 654 } |
| 659 | 655 |
| 660 // Errors raised by synthesizeGLError() while the context is lost. | 656 // Errors raised by synthesizeGLError() while the context is lost. |
| 661 Vector<GLenum> m_lostContextErrors; | 657 Vector<GLenum> m_lostContextErrors; |
| 662 | 658 |
| 663 // Helpers for getParameter and others | 659 // Helpers for getParameter and others |
| 664 WebGLGetInfo getBooleanParameter(GLenum); | 660 WebGLGetInfo getBooleanParameter(GLenum); |
| (...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 916 // If the vector is empty, return the maximum allowed active context number. | 912 // If the vector is empty, return the maximum allowed active context number. |
| 917 static size_t oldestContextIndex(); | 913 static size_t oldestContextIndex(); |
| 918 static IntSize oldestContextSize(); | 914 static IntSize oldestContextSize(); |
| 919 }; | 915 }; |
| 920 | 916 |
| 921 DEFINE_TYPE_CASTS(WebGLRenderingContextBase, CanvasRenderingContext, context, co ntext->is3d(), context.is3d()); | 917 DEFINE_TYPE_CASTS(WebGLRenderingContextBase, CanvasRenderingContext, context, co ntext->is3d(), context.is3d()); |
| 922 | 918 |
| 923 } // namespace WebCore | 919 } // namespace WebCore |
| 924 | 920 |
| 925 #endif // WebGLRenderingContextBase_h | 921 #endif // WebGLRenderingContextBase_h |
| OLD | NEW |