Home | History | Annotate | Download | only in IlmImf
      1 ///////////////////////////////////////////////////////////////////////////
      2 //
      3 // Copyright (c) 2004, Industrial Light & Magic, a division of Lucas
      4 // Digital Ltd. LLC
      5 //
      6 // All rights reserved.
      7 //
      8 // Redistribution and use in source and binary forms, with or without
      9 // modification, are permitted provided that the following conditions are
     10 // met:
     11 // *       Redistributions of source code must retain the above copyright
     12 // notice, this list of conditions and the following disclaimer.
     13 // *       Redistributions in binary form must reproduce the above
     14 // copyright notice, this list of conditions and the following disclaimer
     15 // in the documentation and/or other materials provided with the
     16 // distribution.
     17 // *       Neither the name of Industrial Light & Magic nor the names of
     18 // its contributors may be used to endorse or promote products derived
     19 // from this software without specific prior written permission.
     20 //
     21 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     22 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     23 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     24 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     25 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     26 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     27 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     28 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     29 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     30 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     31 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     32 //
     33 ///////////////////////////////////////////////////////////////////////////
     34 
     35 
     36 #ifndef INCLUDED_IMF_RGBA_H
     37 #define INCLUDED_IMF_RGBA_H
     38 
     39 //-----------------------------------------------------------------------------
     40 //
     41 //	class Rgba
     42 //
     43 //-----------------------------------------------------------------------------
     44 
     45 #include "half.h"
     46 
     47 namespace Imf {
     48 
     49 
     50 //
     51 // RGBA pixel
     52 //
     53 
     54 struct Rgba
     55 {
     56     half	r;
     57     half	g;
     58     half	b;
     59     half	a;
     60 
     61     Rgba () {}
     62     Rgba (half r, half g, half b, half a = 1.f): r (r), g (g), b (b), a (a) {}
     63 
     64     Rgba & operator = (const Rgba &other)
     65     {
     66         r = other.r;
     67         g = other.g;
     68         b = other.b;
     69         a = other.a;
     70 
     71         return *this;
     72     }
     73 };
     74 
     75 
     76 //
     77 // Channels in an RGBA file
     78 //
     79 
     80 enum RgbaChannels
     81 {
     82     WRITE_R	= 0x01,		// Red
     83     WRITE_G	= 0x02,		// Green
     84     WRITE_B	= 0x04,		// Blue
     85     WRITE_A	= 0x08,		// Alpha
     86 
     87     WRITE_Y	= 0x10,		// Luminance, for black-and-white images,
     88                     // or in combination with chroma
     89 
     90     WRITE_C	= 0x20,		// Chroma (two subsampled channels, RY and BY,
     91                     // supported only for scanline-based files)
     92 
     93     WRITE_RGB	= 0x07,		// Red, green, blue
     94     WRITE_RGBA	= 0x0f,		// Red, green, blue, alpha
     95 
     96     WRITE_YC	= 0x30,		// Luminance, chroma
     97     WRITE_YA	= 0x18,		// Luminance, alpha
     98     WRITE_YCA	= 0x38		// Luminance, chroma, alpha
     99 };
    100 
    101 
    102 } // namespace Imf
    103 
    104 #endif
    105