1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
|
// Copyright 2015 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "third_party/blink/renderer/modules/webgl/webgl2_rendering_context.h"
#include "third_party/blink/public/platform/platform.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_union_offscreen_rendering_context.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_union_rendering_context.h"
#include "third_party/blink/renderer/modules/webgl/ext_clip_control.h"
#include "third_party/blink/renderer/modules/webgl/ext_color_buffer_float.h"
#include "third_party/blink/renderer/modules/webgl/ext_color_buffer_half_float.h"
#include "third_party/blink/renderer/modules/webgl/ext_conservative_depth.h"
#include "third_party/blink/renderer/modules/webgl/ext_depth_clamp.h"
#include "third_party/blink/renderer/modules/webgl/ext_disjoint_timer_query_webgl2.h"
#include "third_party/blink/renderer/modules/webgl/ext_float_blend.h"
#include "third_party/blink/renderer/modules/webgl/ext_polygon_offset_clamp.h"
#include "third_party/blink/renderer/modules/webgl/ext_render_snorm.h"
#include "third_party/blink/renderer/modules/webgl/ext_texture_compression_bptc.h"
#include "third_party/blink/renderer/modules/webgl/ext_texture_compression_rgtc.h"
#include "third_party/blink/renderer/modules/webgl/ext_texture_filter_anisotropic.h"
#include "third_party/blink/renderer/modules/webgl/ext_texture_mirror_clamp_to_edge.h"
#include "third_party/blink/renderer/modules/webgl/ext_texture_norm_16.h"
#include "third_party/blink/renderer/modules/webgl/khr_parallel_shader_compile.h"
#include "third_party/blink/renderer/modules/webgl/nv_shader_noperspective_interpolation.h"
#include "third_party/blink/renderer/modules/webgl/oes_draw_buffers_indexed.h"
#include "third_party/blink/renderer/modules/webgl/oes_sample_variables.h"
#include "third_party/blink/renderer/modules/webgl/oes_shader_multisample_interpolation.h"
#include "third_party/blink/renderer/modules/webgl/oes_texture_float_linear.h"
#include "third_party/blink/renderer/modules/webgl/ovr_multiview_2.h"
#include "third_party/blink/renderer/modules/webgl/webgl_blend_func_extended.h"
#include "third_party/blink/renderer/modules/webgl/webgl_clip_cull_distance.h"
#include "third_party/blink/renderer/modules/webgl/webgl_compressed_texture_astc.h"
#include "third_party/blink/renderer/modules/webgl/webgl_compressed_texture_etc.h"
#include "third_party/blink/renderer/modules/webgl/webgl_compressed_texture_etc1.h"
#include "third_party/blink/renderer/modules/webgl/webgl_compressed_texture_pvrtc.h"
#include "third_party/blink/renderer/modules/webgl/webgl_compressed_texture_s3tc.h"
#include "third_party/blink/renderer/modules/webgl/webgl_compressed_texture_s3tc_srgb.h"
#include "third_party/blink/renderer/modules/webgl/webgl_context_attribute_helpers.h"
#include "third_party/blink/renderer/modules/webgl/webgl_context_event.h"
#include "third_party/blink/renderer/modules/webgl/webgl_debug_renderer_info.h"
#include "third_party/blink/renderer/modules/webgl/webgl_debug_shaders.h"
#include "third_party/blink/renderer/modules/webgl/webgl_draw_instanced_base_vertex_base_instance.h"
#include "third_party/blink/renderer/modules/webgl/webgl_lose_context.h"
#include "third_party/blink/renderer/modules/webgl/webgl_multi_draw.h"
#include "third_party/blink/renderer/modules/webgl/webgl_multi_draw_instanced_base_vertex_base_instance.h"
#include "third_party/blink/renderer/modules/webgl/webgl_polygon_mode.h"
#include "third_party/blink/renderer/modules/webgl/webgl_provoking_vertex.h"
#include "third_party/blink/renderer/modules/webgl/webgl_render_shared_exponent.h"
#include "third_party/blink/renderer/modules/webgl/webgl_shader_pixel_local_storage.h"
#include "third_party/blink/renderer/modules/webgl/webgl_stencil_texturing.h"
namespace blink {
WebGL2RenderingContext::WebGL2RenderingContext(
CanvasRenderingContextHost* host,
std::unique_ptr<WebGraphicsContext3DProvider> context_provider,
const Platform::GraphicsInfo& graphics_info,
const CanvasContextCreationAttributesCore& requested_attributes)
: WebGL2RenderingContextBase(host,
std::move(context_provider),
graphics_info,
requested_attributes,
Platform::kWebGL2ContextType) {}
V8RenderingContext* WebGL2RenderingContext::AsV8RenderingContext() {
return MakeGarbageCollected<V8RenderingContext>(this);
}
V8OffscreenRenderingContext*
WebGL2RenderingContext::AsV8OffscreenRenderingContext() {
return MakeGarbageCollected<V8OffscreenRenderingContext>(this);
}
ImageBitmap* WebGL2RenderingContext::TransferToImageBitmap(
ScriptState* script_state,
ExceptionState& exception_state) {
return TransferToImageBitmapBase(script_state, exception_state);
}
void WebGL2RenderingContext::RegisterContextExtensions() {
// Register extensions.
RegisterExtension<EXTClipControl>();
RegisterExtension<EXTColorBufferFloat>();
RegisterExtension<EXTColorBufferHalfFloat>();
RegisterExtension<EXTConservativeDepth>();
RegisterExtension<EXTDepthClamp>();
RegisterExtension<EXTDisjointTimerQueryWebGL2>(
TimerQueryExtensionsEnabled() ? kApprovedExtension : kDeveloperExtension);
RegisterExtension<EXTFloatBlend>();
RegisterExtension<EXTPolygonOffsetClamp>();
RegisterExtension<EXTRenderSnorm>();
RegisterExtension<EXTTextureCompressionBPTC>();
RegisterExtension<EXTTextureCompressionRGTC>();
RegisterExtension<EXTTextureFilterAnisotropic>();
RegisterExtension<EXTTextureMirrorClampToEdge>();
RegisterExtension<EXTTextureNorm16>();
RegisterExtension<KHRParallelShaderCompile>();
RegisterExtension<NVShaderNoperspectiveInterpolation>();
RegisterExtension<OESDrawBuffersIndexed>();
RegisterExtension<OESSampleVariables>();
RegisterExtension<OESShaderMultisampleInterpolation>();
RegisterExtension<OESTextureFloatLinear>();
RegisterExtension<OVRMultiview2>();
RegisterExtension<WebGLBlendFuncExtended>();
RegisterExtension<WebGLClipCullDistance>();
RegisterExtension<WebGLCompressedTextureASTC>();
RegisterExtension<WebGLCompressedTextureETC>();
RegisterExtension<WebGLCompressedTextureETC1>();
RegisterExtension<WebGLCompressedTexturePVRTC>();
RegisterExtension<WebGLCompressedTextureS3TC>();
RegisterExtension<WebGLCompressedTextureS3TCsRGB>();
RegisterExtension<WebGLDebugRendererInfo>();
RegisterExtension<WebGLDebugShaders>();
RegisterExtension<WebGLDrawInstancedBaseVertexBaseInstance>(kDraftExtension);
RegisterExtension<WebGLLoseContext>();
RegisterExtension<WebGLMultiDraw>();
RegisterExtension<WebGLMultiDrawInstancedBaseVertexBaseInstance>(
kDraftExtension);
RegisterExtension<WebGLPolygonMode>();
RegisterExtension<WebGLProvokingVertex>();
RegisterExtension<WebGLRenderSharedExponent>();
RegisterExtension<WebGLShaderPixelLocalStorage>(kDraftExtension);
RegisterExtension<WebGLStencilTexturing>();
}
} // namespace blink
|