Edit

kc3-lang/angle/src/image_util/copyimage.inl

Branch :

  • Show log

    Commit

  • Author : Geoff Lang
    Date : 2016-06-13 15:06:31
    Hash : 6e4cfceb
    Message : Refactor ANGLE's image manipulation code into a static library. Allows for chromium to make use of some of the functionality. BUG=612205 Change-Id: Ib4435ca44775a3a554b0fb3bd384bd4d31d7952d Reviewed-on: https://chromium-review.googlesource.com/351753 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>

  • src/image_util/copyimage.inl
  • //
    // Copyright (c) 2014 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.
    //
    
    // copyimage.inl: Defines image copying functions
    
    namespace angle
    {
    
    template <typename sourceType, typename colorDataType>
    inline void ReadColor(const uint8_t *source, uint8_t *dest)
    {
        sourceType::readColor(reinterpret_cast<Color<colorDataType>*>(dest),
                              reinterpret_cast<const sourceType*>(source));
    }
    
    template <typename destType, typename colorDataType>
    inline void WriteColor(const uint8_t *source, uint8_t *dest)
    {
        destType::writeColor(reinterpret_cast<destType*>(dest),
                             reinterpret_cast<const Color<colorDataType>*>(source));
    }
    
    template <typename sourceType, typename destType, typename colorDataType>
    inline void CopyPixel(const uint8_t *source, uint8_t *dest)
    {
        colorDataType temp;
        ReadColor<sourceType, colorDataType>(source, &temp);
        WriteColor<destType, colorDataType>(&temp, dest);
    }
    
    }  // namespace angle