Edit

kc3-lang/angle/src/libANGLE/renderer/copyvertex.h

Branch :

  • Show log

    Commit

  • Author : Jamie Madill
    Date : 2019-04-02 12:57:36
    Hash : 85b04bb2
    Message : Minor cleanups to copy vertex. Makes the files parsable as c++ files. Bug: chromium:943709 Change-Id: I6f7d718f9773fe4a7f72828ee9cd56beb5577c66 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1545528 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>

  • src/libANGLE/renderer/copyvertex.h
  • //
    // Copyright (c) 2013-2015 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.
    //
    
    // copyvertex.h: Defines vertex buffer copying and conversion functions
    
    #ifndef LIBANGLE_RENDERER_COPYVERTEX_H_
    #define LIBANGLE_RENDERER_COPYVERTEX_H_
    
    #include "common/mathutil.h"
    
    namespace rx
    {
    
    using VertexCopyFunction = void (*)(const uint8_t *input,
                                        size_t stride,
                                        size_t count,
                                        uint8_t *output);
    
    // 'alphaDefaultValueBits' gives the default value for the alpha channel (4th component)
    template <typename T,
              size_t inputComponentCount,
              size_t outputComponentCount,
              uint32_t alphaDefaultValueBits>
    void CopyNativeVertexData(const uint8_t *input, size_t stride, size_t count, uint8_t *output);
    
    template <size_t inputComponentCount, size_t outputComponentCount>
    void Copy8SintTo16SintVertexData(const uint8_t *input,
                                     size_t stride,
                                     size_t count,
                                     uint8_t *output);
    
    template <size_t componentCount>
    void Copy8SnormTo16SnormVertexData(const uint8_t *input,
                                       size_t stride,
                                       size_t count,
                                       uint8_t *output);
    
    template <size_t inputComponentCount, size_t outputComponentCount>
    void Copy32FixedTo32FVertexData(const uint8_t *input, size_t stride, size_t count, uint8_t *output);
    
    template <typename T, size_t inputComponentCount, size_t outputComponentCount, bool normalized>
    void CopyTo32FVertexData(const uint8_t *input, size_t stride, size_t count, uint8_t *output);
    
    template <bool isSigned, bool normalized, bool toFloat>
    void CopyXYZ10W2ToXYZW32FVertexData(const uint8_t *input,
                                        size_t stride,
                                        size_t count,
                                        uint8_t *output);
    
    }  // namespace rx
    
    #include "copyvertex.inc.h"
    
    #endif  // LIBANGLE_RENDERER_COPYVERTEX_H_