Hash :
7619f8a0
Author :
Date :
2025-06-11T00:44:36
Fast copy R8G8B8A8_UNORM / R8G8B8A8_UNORM_SRGB for readPixels Support FastCopyFunction on R8G8B8A8_UNORM and R8G8B8A8_UNORM_SRGB. Copying src pixels to dest directly is more performant than converting UNORM to GLfloat. Bug: b/429541195 Tests: dEQP-GLES31.functional.srgb_texture_decode.skip_decode* Change-Id: If9a3d75dbf7b9fd286a61b144ed607144c833740 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6704713 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
//
// Copyright 2013 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.h: Defines image copying functions
#ifndef IMAGEUTIL_COPYIMAGE_H_
#define IMAGEUTIL_COPYIMAGE_H_
#include "common/Color.h"
#include "image_util/imageformats.h"
#include <stdint.h>
namespace angle
{
template <typename sourceType, typename colorDataType>
void ReadColor(const uint8_t *source, uint8_t *dest);
template <typename destType, typename colorDataType>
void WriteColor(const uint8_t *source, uint8_t *dest);
template <typename SourceType>
void ReadDepthStencil(const uint8_t *source, uint8_t *dest);
template <typename DestType>
void WriteDepthStencil(const uint8_t *source, uint8_t *dest);
void CopyBGRA8ToRGBA8(const uint8_t *source,
int srcXAxisPitch,
int srcYAxisPitch,
uint8_t *dest,
int destXAxisPitch,
int destYAxisPitch,
int destWidth,
int destHeight);
void CopyRGBA8ToRGBA8(const uint8_t *source,
int srcXAxisPitch,
int srcYAxisPitch,
uint8_t *dest,
int destXAxisPitch,
int destYAxisPitch,
int destWidth,
int destHeight);
} // namespace angle
#include "copyimage.inc"
#endif // IMAGEUTIL_COPYIMAGE_H_