/* * Copyright (C) 2017 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. */ #include "config.h" #include "JSDOMConvertWebGL.h" #if ENABLE(WEBGL) #include "JSANGLEInstancedArrays.h" #include "JSDOMConvertBufferSource.h" #include "JSEXTBlendMinMax.h" #include "JSEXTColorBufferFloat.h" #include "JSEXTColorBufferHalfFloat.h" #include "JSEXTFloatBlend.h" #include "JSEXTFragDepth.h" #include "JSEXTShaderTextureLOD.h" #include "JSEXTTextureCompressionRGTC.h" #include "JSEXTTextureFilterAnisotropic.h" #include "JSEXTsRGB.h" #include "JSKHRParallelShaderCompile.h" #include "JSOESElementIndexUint.h" #include "JSOESFBORenderMipmap.h" #include "JSOESStandardDerivatives.h" #include "JSOESTextureFloat.h" #include "JSOESTextureFloatLinear.h" #include "JSOESTextureHalfFloat.h" #include "JSOESTextureHalfFloatLinear.h" #include "JSOESVertexArrayObject.h" #include "JSWebGLBuffer.h" #include "JSWebGLColorBufferFloat.h" #include "JSWebGLCompressedTextureASTC.h" #include "JSWebGLCompressedTextureATC.h" #include "JSWebGLCompressedTextureETC.h" #include "JSWebGLCompressedTextureETC1.h" #include "JSWebGLCompressedTexturePVRTC.h" #include "JSWebGLCompressedTextureS3TC.h" #include "JSWebGLCompressedTextureS3TCsRGB.h" #include "JSWebGLDebugRendererInfo.h" #include "JSWebGLDebugShaders.h" #include "JSWebGLDepthTexture.h" #include "JSWebGLDrawBuffers.h" #include "JSWebGLFramebuffer.h" #include "JSWebGLLoseContext.h" #include "JSWebGLMultiDraw.h" #include "JSWebGLProgram.h" #include "JSWebGLRenderbuffer.h" #include "JSWebGLSampler.h" #include "JSWebGLTexture.h" #include "JSWebGLTransformFeedback.h" #include "JSWebGLVertexArrayObject.h" #include "JSWebGLVertexArrayObjectOES.h" namespace WebCore { using namespace JSC; // FIXME: This should use the IDLUnion JSConverter. JSValue convertToJSValue(JSGlobalObject& lexicalGlobalObject, JSDOMGlobalObject& globalObject, const WebGLAny& any) { return WTF::switchOn( any, [](std::nullptr_t) -> JSValue { return jsNull(); }, [](bool value) -> JSValue { return jsBoolean(value); }, [](int value) -> JSValue { return jsNumber(value); }, [](unsigned value) -> JSValue { return jsNumber(value); }, [](long long value) -> JSValue { return jsNumber(value); }, [](float value) -> JSValue { return jsNumber(value); }, [&](const String& value) -> JSValue { return jsStringWithCache(lexicalGlobalObject.vm(), value); }, [&](const Vector& values) -> JSValue { MarkedArgumentBuffer list; for (auto& value : values) list.append(jsBoolean(value)); RELEASE_ASSERT(!list.hasOverflowed()); return constructArray(&globalObject, static_cast(nullptr), list); }, [&](const Vector& values) -> JSValue { MarkedArgumentBuffer list; for (auto& value : values) list.append(jsNumber(value)); RELEASE_ASSERT(!list.hasOverflowed()); return constructArray(&globalObject, static_cast(nullptr), list); }, [&](const Vector& values) -> JSValue { MarkedArgumentBuffer list; for (auto& value : values) list.append(jsNumber(value)); RELEASE_ASSERT(!list.hasOverflowed()); return constructArray(&globalObject, static_cast(nullptr), list); }, [&](const RefPtr& array) { return toJS(&lexicalGlobalObject, &globalObject, array.get()); }, [&](const RefPtr& array) { return toJS(&lexicalGlobalObject, &globalObject, array.get()); }, [&](const RefPtr& array) { return toJS(&lexicalGlobalObject, &globalObject, array.get()); }, [&](const RefPtr& array) { return toJS(&lexicalGlobalObject, &globalObject, array.get()); }, [&](const RefPtr& buffer) { return toJS(&lexicalGlobalObject, &globalObject, buffer.get()); }, [&](const RefPtr& buffer) { return toJS(&lexicalGlobalObject, &globalObject, buffer.get()); }, [&](const RefPtr& program) { return toJS(&lexicalGlobalObject, &globalObject, program.get()); }, [&](const RefPtr& buffer) { return toJS(&lexicalGlobalObject, &globalObject, buffer.get()); }, [&](const RefPtr& texture) { return toJS(&lexicalGlobalObject, &globalObject, texture.get()); }, [&](const RefPtr& array) { return toJS(&lexicalGlobalObject, &globalObject, array.get()); } #if ENABLE(WEBGL2) , [&](const RefPtr& sampler) { return toJS(&lexicalGlobalObject, &globalObject, sampler.get()); }, [&](const RefPtr& transformFeedback) { return toJS(&lexicalGlobalObject, &globalObject, transformFeedback.get()); }, [&](const RefPtr& array) { return toJS(&lexicalGlobalObject, &globalObject, array.get()); } #endif ); } JSValue convertToJSValue(JSGlobalObject& lexicalGlobalObject, JSDOMGlobalObject& globalObject, WebGLExtension& extension) { switch (extension.getName()) { case WebGLExtension::WebGLLoseContextName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::EXTShaderTextureLODName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::EXTTextureCompressionRGTCName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::EXTTextureFilterAnisotropicName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::EXTsRGBName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::EXTFragDepthName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::EXTBlendMinMaxName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::KHRParallelShaderCompileName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::OESStandardDerivativesName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::OESTextureFloatName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::OESTextureFloatLinearName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::OESTextureHalfFloatName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::OESTextureHalfFloatLinearName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::OESVertexArrayObjectName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::OESElementIndexUintName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::OESFBORenderMipmapName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::WebGLDebugRendererInfoName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::WebGLDebugShadersName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::WebGLCompressedTextureATCName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::WebGLCompressedTextureETCName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::WebGLCompressedTextureETC1Name: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::WebGLCompressedTexturePVRTCName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::WebGLCompressedTextureS3TCName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::WebGLCompressedTextureS3TCsRGBName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::WebGLCompressedTextureASTCName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::WebGLDepthTextureName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::WebGLDrawBuffersName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::ANGLEInstancedArraysName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::EXTColorBufferHalfFloatName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::EXTFloatBlendName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::WebGLColorBufferFloatName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::EXTColorBufferFloatName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); case WebGLExtension::WebGLMultiDrawName: return toJS(&lexicalGlobalObject, &globalObject, static_cast(extension)); } ASSERT_NOT_REACHED(); return jsNull(); } } #endif fix/empty-slots Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
AgeCommit message (Expand)AuthorFilesLines
2024-11-13[ci] release (beta) (#12405)astro@5.0.0-beta.8Gravatar Houston (Bot) 29-54/+125
2024-11-13[ci] release (#12422)astro@4.16.12Gravatar Houston (Bot) 28-54/+55
2024-11-13fix(routing): middleware in dev (#12420)Gravatar Emanuele Stoppa 6-9/+52
2024-11-12[ci] release (#12403)astro@4.16.11Gravatar Houston (Bot) 30-73/+68
2024-11-11fix(routing): emit error for forbidden rewrite (#12339)Gravatar Emanuele Stoppa 7-0/+88
2024-11-11[ci] formatGravatar Sarah Rainsberger 1-38/+38
2024-11-11update markdown config docs (#12382)Gravatar Sarah Rainsberger 1-4/+45
2024-11-08Actions middleware (#12373)Gravatar Ben Holmes 26-311/+483
2024-11-08Fix incorrect status code in dev server for action errors (#12401)Gravatar Ben Holmes 2-13/+21
2024-11-08fix(actions): better runtime check for invalid usages (#12402)Gravatar Emanuele Stoppa 8-5/+47
2024-11-08fix: error overlay message escape (#12305)Gravatar Florian Lefebvre 3-0/+28
2024-11-06[ci] release (beta) (#12370)create-astro@4.11.0-beta.0astro@5.0.0-beta.7@astrojs/svelte@6.0.0-beta.2Gravatar Houston (Bot) 31-55/+84
2024-11-06Add svelte changesetGravatar bluwy 5-39/+51
2024-11-06[ci] release (#12369)astro@4.16.10@astrojs/svelte@5.7.3Gravatar Houston (Bot) 34-81/+74
2024-11-06Update to Vite 6.0.0-beta.6 (#12323)Gravatar Bjorn Lu 15-100/+123
2024-11-06[ci] formatGravatar Bjorn Lu 2-18/+17
2024-11-06Add support for Svelte 5 @render syntax (#12390)Gravatar Bjorn Lu 3-0/+30
2024-11-06fix(deps): update all non-major dependencies (#12366)Gravatar renovate[bot] 29-533/+552