/usr/include/gnash/asobj/RGBA.h is in gnash-dev 0.8.11~git20160109-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 | // RGBA.h: RGBA color handling.
//
// Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
// Free Software Foundation, Inc
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
//
#ifndef GNASH_RGBA_H
#define GNASH_RGBA_H
#include <string>
#include <cstdint>
#include "dsodefs.h" // for DSOTEXPORT
namespace gnash {
/// A basic RGBA type
//
/// This both represents a SWF RGBA record and is a basic Gnash type for
/// color values.
class DSOEXPORT rgba
{
public:
/// Construct default RGBA value.
//
/// Default value is 0xffffffff (solid white).
constexpr rgba()
:
m_r(255),
m_g(255),
m_b(255),
m_a(255)
{}
/// Construct an RGBA with the provided values
//
/// @param r Red
/// @param g Green
/// @param b Blue
/// @param a Alpha (transparency)
rgba(std::uint8_t r, std::uint8_t g, std::uint8_t b,
std::uint8_t a)
:
m_r(r),
m_g(g),
m_b(b),
m_a(a)
{
}
/// Parse a 32-bit unsigned integer as three packed R,G,B bytes.
//
/// Alpha will be untouched.
/// Blue is the least significant byte.
///
/// This function is meant to be used to
/// parse ActionScript colors in numeric format.
void parseRGB(std::uint32_t rgbCol) {
m_r = static_cast<std::uint8_t>(rgbCol >> 16);
m_g = static_cast<std::uint8_t>(rgbCol >> 8);
m_b = static_cast<std::uint8_t>(rgbCol);
}
/// Return a 32-bit unsigned integer as four packed R,G,B bytes.
//
/// Blue is the least significant byte. The most significant (alpha)
/// byte is unused.
///
/// This function is meant to be used to output ActionScript colors
/// in numeric format.
std::uint32_t toRGB() const {
return (m_r << 16) + (m_g << 8) + m_b;
}
/// Return a 32-bit unsigned integer as four packed A,R,G,B bytes.
//
/// Blue is the least significant byte.
///
/// This function is meant to be used to output ActionScript colors
/// in numeric format.
std::uint32_t toRGBA() const {
return toRGB() + (m_a << 24);
}
friend std::ostream& operator<<(std::ostream& os, const rgba& r);
bool operator==(const rgba& o) const {
return m_r == o.m_r &&
m_g == o.m_g &&
m_b == o.m_b &&
m_a == o.m_a;
}
bool operator!=(const rgba& o) const {
return !(*this == o);
}
std::uint8_t m_r, m_g, m_b, m_a;
};
DSOTEXPORT std::ostream& operator<<(std::ostream& os, const rgba& r);
/// Create an RGBA value from a hex string (e.g. FF0000)
//
/// @param color A hex string in 'rrbbgg' format. This must contain only
/// a valid hexadecimal number. It is the caller's
/// responsibility to check it.
rgba colorFromHexString(const std::string& color);
/// Used for morphing.
rgba DSOEXPORT lerp(const rgba& a, const rgba& b, float f);
} // namespace gnash
#endif
// Local Variables:
// mode: C++
// indent-tabs-mode: t
// End:
|