PageRenderTime 10ms CodeModel.GetById 1ms app.highlight 5ms RepoModel.GetById 1ms app.codeStats 1ms

/src/FreeImage/Source/OpenEXR/IlmImf/ImfRgba.h

https://bitbucket.org/cabalistic/ogredeps/
C++ Header | 104 lines | 37 code | 21 blank | 46 comment | 0 complexity | a8ecd64e19cb502074205e29f6e3e3c7 MD5 | raw file
  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
 47namespace Imf {
 48
 49
 50//
 51// RGBA pixel
 52//
 53
 54struct 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
 80enum 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