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 27 matching lines...) Expand all Loading... |
38 #include "modules/webgl/WebGLContextAttributes.h" | 38 #include "modules/webgl/WebGLContextAttributes.h" |
39 #include "modules/webgl/WebGLExtensionName.h" | 39 #include "modules/webgl/WebGLExtensionName.h" |
40 #include "modules/webgl/WebGLTexture.h" | 40 #include "modules/webgl/WebGLTexture.h" |
41 #include "modules/webgl/WebGLVertexArrayObjectBase.h" | 41 #include "modules/webgl/WebGLVertexArrayObjectBase.h" |
42 #include "platform/Timer.h" | 42 #include "platform/Timer.h" |
43 #include "platform/graphics/GraphicsTypes3D.h" | 43 #include "platform/graphics/GraphicsTypes3D.h" |
44 #include "platform/graphics/ImageBuffer.h" | 44 #include "platform/graphics/ImageBuffer.h" |
45 #include "platform/graphics/gpu/DrawingBuffer.h" | 45 #include "platform/graphics/gpu/DrawingBuffer.h" |
46 #include "platform/graphics/gpu/Extensions3DUtil.h" | 46 #include "platform/graphics/gpu/Extensions3DUtil.h" |
47 #include "platform/graphics/gpu/WebGLImageConversion.h" | 47 #include "platform/graphics/gpu/WebGLImageConversion.h" |
48 #include "public/platform/WebGraphicsContext3D.h" | 48 #include "public/platform/Platform.h" |
| 49 #include "public/platform/WebGraphicsContext3DProvider.h" |
49 #include "wtf/OwnPtr.h" | 50 #include "wtf/OwnPtr.h" |
50 #include "wtf/text/WTFString.h" | 51 #include "wtf/text/WTFString.h" |
51 | 52 |
52 #include <set> | 53 #include <set> |
53 | 54 |
54 namespace blink { | 55 namespace blink { |
55 class WebLayer; | 56 class WebLayer; |
56 } | 57 } |
57 | 58 |
58 namespace gpu { | 59 namespace gpu { |
(...skipping 18 matching lines...) Expand all Loading... |
77 class ImageBuffer; | 78 class ImageBuffer; |
78 class ImageData; | 79 class ImageData; |
79 class IntSize; | 80 class IntSize; |
80 class OESElementIndexUint; | 81 class OESElementIndexUint; |
81 class OESStandardDerivatives; | 82 class OESStandardDerivatives; |
82 class OESTextureFloat; | 83 class OESTextureFloat; |
83 class OESTextureFloatLinear; | 84 class OESTextureFloatLinear; |
84 class OESTextureHalfFloat; | 85 class OESTextureHalfFloat; |
85 class OESTextureHalfFloatLinear; | 86 class OESTextureHalfFloatLinear; |
86 class OESVertexArrayObject; | 87 class OESVertexArrayObject; |
| 88 class WaitableEvent; |
87 class WebGLActiveInfo; | 89 class WebGLActiveInfo; |
88 class WebGLBuffer; | 90 class WebGLBuffer; |
89 class WebGLCompressedTextureASTC; | 91 class WebGLCompressedTextureASTC; |
90 class WebGLCompressedTextureATC; | 92 class WebGLCompressedTextureATC; |
91 class WebGLCompressedTextureETC1; | 93 class WebGLCompressedTextureETC1; |
92 class WebGLCompressedTexturePVRTC; | 94 class WebGLCompressedTexturePVRTC; |
93 class WebGLCompressedTextureS3TC; | 95 class WebGLCompressedTextureS3TC; |
94 class WebGLContextGroup; | 96 class WebGLContextGroup; |
95 class WebGLContextObject; | 97 class WebGLContextObject; |
96 class WebGLDebugRendererInfo; | 98 class WebGLDebugRendererInfo; |
(...skipping 975 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1072 static void forciblyLoseOldestContext(const String& reason); | 1074 static void forciblyLoseOldestContext(const String& reason); |
1073 // Return the least recently used context's position in the active context v
ector. | 1075 // Return the least recently used context's position in the active context v
ector. |
1074 // If the vector is empty, return the maximum allowed active context number. | 1076 // If the vector is empty, return the maximum allowed active context number. |
1075 static WebGLRenderingContextBase* oldestContext(); | 1077 static WebGLRenderingContextBase* oldestContext(); |
1076 static WebGLRenderingContextBase* oldestEvictedContext(); | 1078 static WebGLRenderingContextBase* oldestEvictedContext(); |
1077 | 1079 |
1078 CrossThreadWeakPersistentThisPointer<WebGLRenderingContextBase> createWeakTh
isPointer() { return CrossThreadWeakPersistentThisPointer<WebGLRenderingContextB
ase>(this); } | 1080 CrossThreadWeakPersistentThisPointer<WebGLRenderingContextBase> createWeakTh
isPointer() { return CrossThreadWeakPersistentThisPointer<WebGLRenderingContextB
ase>(this); } |
1079 | 1081 |
1080 private: | 1082 private: |
1081 WebGLRenderingContextBase(HTMLCanvasElement*, OffscreenCanvas*, PassOwnPtr<W
ebGraphicsContext3DProvider>, const WebGLContextAttributes&); | 1083 WebGLRenderingContextBase(HTMLCanvasElement*, OffscreenCanvas*, PassOwnPtr<W
ebGraphicsContext3DProvider>, const WebGLContextAttributes&); |
| 1084 static PassOwnPtr<WebGraphicsContext3DProvider> createWebGraphicsContext3DPr
oviderInternal(HTMLCanvasElement*, ScriptState*, WebGLContextAttributes, unsigne
d); |
| 1085 class createWebGraphicsContext3DProviderUtils { |
| 1086 public: |
| 1087 createWebGraphicsContext3DProviderUtils(Platform::ContextAttributes cont
extAttributes, Platform::GraphicsInfo glInfo, ScriptState* scriptState) |
| 1088 { |
| 1089 m_contextAttributes = contextAttributes; |
| 1090 m_glInfo = glInfo; |
| 1091 m_scriptState = scriptState; |
| 1092 } |
| 1093 Platform::ContextAttributes contextAttributes() { return m_contextAttrib
utes; } |
| 1094 Platform::GraphicsInfo glInfo() { return m_glInfo; } |
| 1095 ScriptState* scriptState() { return m_scriptState; } |
| 1096 void setContextProvider(PassOwnPtr<WebGraphicsContext3DProvider> provide
r) { m_provider = std::move(provider); } |
| 1097 PassOwnPtr<WebGraphicsContext3DProvider> releaseContextProvider() { retu
rn m_provider.release(); } |
| 1098 private: |
| 1099 Platform::ContextAttributes m_contextAttributes; |
| 1100 Platform::GraphicsInfo m_glInfo; |
| 1101 ScriptState* m_scriptState; |
| 1102 OwnPtr<WebGraphicsContext3DProvider> m_provider; |
| 1103 }; |
| 1104 static void createWebGraphicsContext3DProviderMainThread(createWebGraphicsCo
ntext3DProviderUtils*, WaitableEvent*); |
1082 }; | 1105 }; |
1083 | 1106 |
1084 DEFINE_TYPE_CASTS(WebGLRenderingContextBase, CanvasRenderingContext, context, co
ntext->is3d(), context.is3d()); | 1107 DEFINE_TYPE_CASTS(WebGLRenderingContextBase, CanvasRenderingContext, context, co
ntext->is3d(), context.is3d()); |
1085 | 1108 |
1086 } // namespace blink | 1109 } // namespace blink |
1087 | 1110 |
1088 WTF_ALLOW_MOVE_INIT_AND_COMPARE_WITH_MEM_FUNCTIONS(blink::WebGLRenderingContextB
ase::TextureUnitState); | 1111 WTF_ALLOW_MOVE_INIT_AND_COMPARE_WITH_MEM_FUNCTIONS(blink::WebGLRenderingContextB
ase::TextureUnitState); |
1089 | 1112 |
1090 #endif // WebGLRenderingContextBase_h | 1113 #endif // WebGLRenderingContextBase_h |
OLD | NEW |