nuclear@1: /************************************************************************************ nuclear@1: nuclear@1: PublicHeader: OVR.h nuclear@1: Filename : OVR_Color.h nuclear@1: Content : Contains color struct. nuclear@1: Created : February 7, 2013 nuclear@1: Notes : nuclear@1: nuclear@1: Copyright : Copyright 2013 Oculus VR, Inc. All Rights reserved. nuclear@1: nuclear@1: Use of this software is subject to the terms of the Oculus license nuclear@1: agreement provided at the time of installation or download, or which nuclear@1: otherwise accompanies this software in either electronic or hard copy form. nuclear@1: nuclear@1: ************************************************************************************/ nuclear@1: #ifndef OVR_Color_h nuclear@1: #define OVR_Color_h nuclear@1: nuclear@1: #include "OVR_Types.h" nuclear@1: nuclear@1: namespace OVR { nuclear@1: nuclear@1: struct Color nuclear@1: { nuclear@1: UByte R,G,B,A; nuclear@1: nuclear@1: Color() {} nuclear@1: nuclear@1: // Constructs color by channel. Alpha is set to 0xFF (fully visible) nuclear@1: // if not specified. nuclear@1: Color(unsigned char r,unsigned char g,unsigned char b, unsigned char a = 0xFF) nuclear@1: : R(r), G(g), B(b), A(a) { } nuclear@1: nuclear@1: // 0xAARRGGBB - Common HTML color Hex layout nuclear@1: Color(unsigned c) nuclear@1: : R((unsigned char)(c>>16)), G((unsigned char)(c>>8)), nuclear@1: B((unsigned char)c), A((unsigned char)(c>>24)) { } nuclear@1: nuclear@1: bool operator==(const Color& b) const nuclear@1: { nuclear@1: return R == b.R && G == b.G && B == b.B && A == b.A; nuclear@1: } nuclear@1: nuclear@1: void GetRGBA(float *r, float *g, float *b, float* a) const nuclear@1: { nuclear@1: *r = R / 255.0f; nuclear@1: *g = G / 255.0f; nuclear@1: *b = B / 255.0f; nuclear@1: *a = A / 255.0f; nuclear@1: } nuclear@1: }; nuclear@1: nuclear@1: } nuclear@1: nuclear@1: #endif