godot/thirdparty/libwebp/src/dsp/yuv_mips32.c

// Copyright 2014 Google Inc. All Rights Reserved.
//
// Use of this source code is governed by a BSD-style license
// that can be found in the COPYING file in the root of the source
// tree. An additional intellectual property rights grant can be found
// in the file PATENTS. All contributing project authors may
// be found in the AUTHORS file in the root of the source tree.
// -----------------------------------------------------------------------------
//
// MIPS version of YUV to RGB upsampling functions.
//
// Author(s):  Djordje Pesut    ([email protected])
//             Jovan Zelincevic ([email protected])

#include "src/dsp/dsp.h"

#if defined(WEBP_USE_MIPS32)

#include "src/dsp/yuv.h"

//------------------------------------------------------------------------------
// simple point-sampling

#define ROW_FUNC

ROW_FUNC(YuvToRgbRow_MIPS32,      3, 0, 1, 2, 0)
ROW_FUNC(YuvToRgbaRow_MIPS32,     4, 0, 1, 2, 3)
ROW_FUNC(YuvToBgrRow_MIPS32,      3, 2, 1, 0, 0)
ROW_FUNC(YuvToBgraRow_MIPS32,     4, 2, 1, 0, 3)

#undef ROW_FUNC

//------------------------------------------------------------------------------
// Entry point

extern void WebPInitSamplersMIPS32(void);

WEBP_TSAN_IGNORE_FUNCTION void WebPInitSamplersMIPS32(void) {
  WebPSamplers[MODE_RGB]  = YuvToRgbRow_MIPS32;
  WebPSamplers[MODE_RGBA] = YuvToRgbaRow_MIPS32;
  WebPSamplers[MODE_BGR]  = YuvToBgrRow_MIPS32;
  WebPSamplers[MODE_BGRA] = YuvToBgraRow_MIPS32;
}

#else  // !WEBP_USE_MIPS32

WEBP_DSP_INIT_STUB(WebPInitSamplersMIPS32)

#endif  // WEBP_USE_MIPS32