Edit

kc3-lang/angle/src/compiler/translator/OutputGLSL.h

Branch :

  • Show log

    Commit

  • Author : Yan
    Date : 2019-10-14 14:13:59
    Hash : 17b3c2f3
    Message : Implement SamplerVideoWEBGL for WEBGL_video_texture extension on desktop WEBGL_video_texture is an extension that will improve uploading video frame to WebGL performance. (https://www.khronos.org/registry/webgl/extensions/proposals/WEBGL_video_texture/) This extension introduced a new texture type TEXTURE_VIDEO_IMAGE_WEBGL and a new sampler type samplerVideoWEBGL to sample it. In chromium implementation, TEXTURE_VIDEO_IMAGE_WEBGL maps to different native texture type based on platform. On desktop, it maps to GL_TEXTURE2D(Currently supported). On Android, it should map to GL_TEXTURE_EXTERNAL(TODO). SamplerVideoWEBGL needs to be mapped to sampler2D or samplerExternalOES according to TEXTURE_VIDEO_IMAGE_WEBGL implementation. This patch implements samplerVideoWEBGL in Angle to support WEBGL_video_texture on desktop. In this case, samplerVideoWEBGL should map to sampler2D. Bug: chromium:776222, angleproject:3889 Change-Id: Idb0a5fcde37ca75ccc1181226b91f257212e7500 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1866274 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>

  • src/compiler/translator/OutputGLSL.h
  • //
    // Copyright 2002 The ANGLE Project Authors. All rights reserved.
    // Use of this source code is governed by a BSD-style license that can be
    // found in the LICENSE file.
    //
    
    #ifndef COMPILER_TRANSLATOR_OUTPUTGLSL_H_
    #define COMPILER_TRANSLATOR_OUTPUTGLSL_H_
    
    #include "compiler/translator/OutputGLSLBase.h"
    
    namespace sh
    {
    
    class TOutputGLSL : public TOutputGLSLBase
    {
      public:
        TOutputGLSL(TInfoSinkBase &objSink,
                    ShArrayIndexClampingStrategy clampingStrategy,
                    ShHashFunction64 hashFunction,
                    NameMap &nameMap,
                    TSymbolTable *symbolTable,
                    sh::GLenum shaderType,
                    int shaderVersion,
                    ShShaderOutput output,
                    ShCompileOptions compileOptions);
    
      protected:
        bool writeVariablePrecision(TPrecision) override;
        void visitSymbol(TIntermSymbol *node) override;
        ImmutableString translateTextureFunction(const ImmutableString &name,
                                                 const ShCompileOptions &option) override;
    };
    
    }  // namespace sh
    
    #endif  // COMPILER_TRANSLATOR_OUTPUTGLSL_H_