1fe28ca06248f5b9cf97e0c8678275997cbf6b4daGeoff Lang// 2fe28ca06248f5b9cf97e0c8678275997cbf6b4daGeoff Lang// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved. 3fe28ca06248f5b9cf97e0c8678275997cbf6b4daGeoff Lang// Use of this source code is governed by a BSD-style license that can be 4fe28ca06248f5b9cf97e0c8678275997cbf6b4daGeoff Lang// found in the LICENSE file. 5fe28ca06248f5b9cf97e0c8678275997cbf6b4daGeoff Lang// 6fe28ca06248f5b9cf97e0c8678275997cbf6b4daGeoff Lang 7fe28ca06248f5b9cf97e0c8678275997cbf6b4daGeoff Lang// copyimage.cpp: Defines image copying functions 8fe28ca06248f5b9cf97e0c8678275997cbf6b4daGeoff Lang 9fe28ca06248f5b9cf97e0c8678275997cbf6b4daGeoff Lang#include "libGLESv2/renderer/copyImage.h" 10fe28ca06248f5b9cf97e0c8678275997cbf6b4daGeoff Lang 11fe28ca06248f5b9cf97e0c8678275997cbf6b4daGeoff Langnamespace rx 12fe28ca06248f5b9cf97e0c8678275997cbf6b4daGeoff Lang{ 13fe28ca06248f5b9cf97e0c8678275997cbf6b4daGeoff Lang 14268b6bcd5d415e2169228f4f082e546ac05aa899Geoff Langvoid CopyBGRA8ToRGBA8(const uint8_t *source, uint8_t *dest) 15fe28ca06248f5b9cf97e0c8678275997cbf6b4daGeoff Lang{ 16268b6bcd5d415e2169228f4f082e546ac05aa899Geoff Lang uint32_t argb = *reinterpret_cast<const uint32_t*>(source); 17268b6bcd5d415e2169228f4f082e546ac05aa899Geoff Lang *reinterpret_cast<uint32_t*>(dest) = (argb & 0xFF00FF00) | // Keep alpha and green 18268b6bcd5d415e2169228f4f082e546ac05aa899Geoff Lang (argb & 0x00FF0000) >> 16 | // Move red to blue 19268b6bcd5d415e2169228f4f082e546ac05aa899Geoff Lang (argb & 0x000000FF) << 16; // Move blue to red 20fe28ca06248f5b9cf97e0c8678275997cbf6b4daGeoff Lang} 21fe28ca06248f5b9cf97e0c8678275997cbf6b4daGeoff Lang 22fe28ca06248f5b9cf97e0c8678275997cbf6b4daGeoff Lang} 23