Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(34)

Side by Side Diff: Source/core/html/canvas/WebGLRenderingContext.h

Issue 51323003: Expose WEBGL_debug_renderer_info through a chromium finch experiment. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: fix member init order Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | Source/core/html/canvas/WebGLRenderingContext.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 521 matching lines...) Expand 10 before | Expand all | Expand 10 after
532 RefPtr<WebGLCompressedTextureATC> m_webglCompressedTextureATC; 532 RefPtr<WebGLCompressedTextureATC> m_webglCompressedTextureATC;
533 RefPtr<WebGLCompressedTexturePVRTC> m_webglCompressedTexturePVRTC; 533 RefPtr<WebGLCompressedTexturePVRTC> m_webglCompressedTexturePVRTC;
534 RefPtr<WebGLCompressedTextureS3TC> m_webglCompressedTextureS3TC; 534 RefPtr<WebGLCompressedTextureS3TC> m_webglCompressedTextureS3TC;
535 RefPtr<WebGLDepthTexture> m_webglDepthTexture; 535 RefPtr<WebGLDepthTexture> m_webglDepthTexture;
536 536
537 enum ExtensionFlags { 537 enum ExtensionFlags {
538 ApprovedExtension = 0x00, 538 ApprovedExtension = 0x00,
539 DraftExtension = 0x01, 539 DraftExtension = 0x01,
540 PrivilegedExtension = 0x02, 540 PrivilegedExtension = 0x02,
541 PrefixedExtension = 0x04, 541 PrefixedExtension = 0x04,
542 WebGLDebugRendererInfoExtension = 0x08,
542 }; 543 };
543 544
544 class ExtensionTracker { 545 class ExtensionTracker {
545 public: 546 public:
546 ExtensionTracker(ExtensionFlags flags, const char* const* prefixes) 547 ExtensionTracker(ExtensionFlags flags, const char* const* prefixes)
547 : m_privileged(flags & PrivilegedExtension) 548 : m_privileged(flags & PrivilegedExtension)
548 , m_draft(flags & DraftExtension) 549 , m_draft(flags & DraftExtension)
549 , m_prefixed(flags & PrefixedExtension) 550 , m_prefixed(flags & PrefixedExtension)
551 , m_webglDebugRendererInfo(flags & WebGLDebugRendererInfoExtension)
550 , m_prefixes(prefixes) 552 , m_prefixes(prefixes)
551 { 553 {
552 } 554 }
553 555
554 virtual ~ExtensionTracker() 556 virtual ~ExtensionTracker()
555 { 557 {
556 } 558 }
557 559
558 bool prefixed() const 560 bool prefixed() const
559 { 561 {
560 return m_prefixed; 562 return m_prefixed;
561 } 563 }
562 564
563 bool privileged() const 565 bool privileged() const
564 { 566 {
565 return m_privileged; 567 return m_privileged;
566 } 568 }
567 569
568 bool draft() const 570 bool draft() const
569 { 571 {
570 return m_draft; 572 return m_draft;
571 } 573 }
572 574
575 bool webglDebugRendererInfo() const
576 {
577 return m_webglDebugRendererInfo;
578 }
579
573 bool matchesNameWithPrefixes(const String&) const; 580 bool matchesNameWithPrefixes(const String&) const;
574 581
575 virtual PassRefPtr<WebGLExtension> getExtension(WebGLRenderingContext*) const = 0; 582 virtual PassRefPtr<WebGLExtension> getExtension(WebGLRenderingContext*) const = 0;
576 virtual bool supported(WebGLRenderingContext*) const = 0; 583 virtual bool supported(WebGLRenderingContext*) const = 0;
577 virtual const char* extensionName() const = 0; 584 virtual const char* extensionName() const = 0;
578 virtual void loseExtension() = 0; 585 virtual void loseExtension() = 0;
579 586
580 private: 587 private:
581 bool m_privileged; 588 bool m_privileged;
582 bool m_draft; 589 bool m_draft;
583 bool m_prefixed; 590 bool m_prefixed;
591 bool m_webglDebugRendererInfo;
584 const char* const* m_prefixes; 592 const char* const* m_prefixes;
585 }; 593 };
586 594
587 template <typename T> 595 template <typename T>
588 class TypedExtensionTracker : public ExtensionTracker { 596 class TypedExtensionTracker : public ExtensionTracker {
589 public: 597 public:
590 TypedExtensionTracker(RefPtr<T>& extensionField, ExtensionFlags flags, c onst char* const* prefixes) 598 TypedExtensionTracker(RefPtr<T>& extensionField, ExtensionFlags flags, c onst char* const* prefixes)
591 : ExtensionTracker(flags, prefixes) 599 : ExtensionTracker(flags, prefixes)
592 , m_extensionField(extensionField) 600 , m_extensionField(extensionField)
593 { 601 {
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after
853 bool checkObjectToBeBound(const char* functionName, WebGLObject*, bool& dele ted); 861 bool checkObjectToBeBound(const char* functionName, WebGLObject*, bool& dele ted);
854 862
855 void dispatchContextLostEvent(Timer<WebGLRenderingContext>*); 863 void dispatchContextLostEvent(Timer<WebGLRenderingContext>*);
856 // Helper for restoration after context lost. 864 // Helper for restoration after context lost.
857 void maybeRestoreContext(Timer<WebGLRenderingContext>*); 865 void maybeRestoreContext(Timer<WebGLRenderingContext>*);
858 866
859 // Determine if we are running privileged code in the browser, for example, 867 // Determine if we are running privileged code in the browser, for example,
860 // a Safari or Chrome extension. 868 // a Safari or Chrome extension.
861 bool allowPrivilegedExtensions() const; 869 bool allowPrivilegedExtensions() const;
862 870
871 // Determine if WEBGL_debug_renderer_info extension is enabled. For the
872 // moment it can be enabled either through a chromium finch experiment
873 // or for privileged code in the browser.
874 bool allowWebGLDebugRendererInfo() const;
875
863 enum ConsoleDisplayPreference { 876 enum ConsoleDisplayPreference {
864 DisplayInConsole, 877 DisplayInConsole,
865 DontDisplayInConsole 878 DontDisplayInConsole
866 }; 879 };
867 880
868 // Wrapper for GraphicsContext3D::synthesizeGLError that sends a message 881 // Wrapper for GraphicsContext3D::synthesizeGLError that sends a message
869 // to the JavaScript console. 882 // to the JavaScript console.
870 void synthesizeGLError(GC3Denum, const char* functionName, const char* descr iption, ConsoleDisplayPreference = DisplayInConsole); 883 void synthesizeGLError(GC3Denum, const char* functionName, const char* descr iption, ConsoleDisplayPreference = DisplayInConsole);
871 void emitGLWarning(const char* function, const char* reason); 884 void emitGLWarning(const char* function, const char* reason);
872 885
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
909 static void forciblyLoseOldestContext(const String& reason); 922 static void forciblyLoseOldestContext(const String& reason);
910 // Return the least recently used context's position in the active context v ector. 923 // Return the least recently used context's position in the active context v ector.
911 // If the vector is empty, return the maximum allowed active context number. 924 // If the vector is empty, return the maximum allowed active context number.
912 static size_t oldestContextIndex(); 925 static size_t oldestContextIndex();
913 static IntSize oldestContextSize(); 926 static IntSize oldestContextSize();
914 }; 927 };
915 928
916 } // namespace WebCore 929 } // namespace WebCore
917 930
918 #endif 931 #endif
OLDNEW
« no previous file with comments | « no previous file | Source/core/html/canvas/WebGLRenderingContext.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698