Sha256: 97c8fdc5f6d162511b8296ff55f1aed307a8e3805235e17ee2be9a86eae897c2

Contents?: true

Size: 1.27 KB

Versions: 4

Compression:

Stored size: 1.27 KB

Contents

# encoding: UTF-8

module FreeImage
  # Used to specify a color for a :rgb16
  # {image type}[rdoc-ref:FreeImage.images_types].
  class RGB16 < FFI::Struct
    layout :red, :word,
           :green, :word,
           :blue, :word
    # The high order bit in 16-bit 555 is empty
    # Define masks to extract colors from bytes
    if FFI::Platform::BYTE_ORDER == FFI::Platform::LITTLE_ENDIAN
      # Little Endian (x86 / MS Windows, Linux, MacOSX) : BGR(A) order
      RED_MASK =   0x7C00
      GREEN_MASK = 0x03E0
      BLUE_MASK =  0x001F
    else
      # Big Endian (PPC / Linux, MaxOSX) : RGB(A) order
      RED_MASK =   0x003E
      GREEN_MASK = 0x07C0
      BLUE_MASK =  0xF800
    end
    RGB_MASK  = (RED_MASK | GREEN_MASK | BLUE_MASK)

  end

  class RGB16BF565 < RGB16
    # The 565 bitfield uses 16 bits, with 6 bits for Green
    if FFI::Platform::BYTE_ORDER == FFI::Platform::LITTLE_ENDIAN
      # Little Endian (x86 / MS Windows, Linux, MacOSX) : BGR(A) order
      RED_MASK =   0xF800
      GREEN_MASK = 0x07E0
      BLUE_MASK =  0x001F
    else
      # Big Endian (PPC / Linux, MaxOSX) : RGB(A) order
      RED_MASK =   0x001F
      GREEN_MASK = 0x03E0
      BLUE_MASK =  0xFC00
    end
    RGB_MASK  = (RED_MASK | GREEN_MASK | BLUE_MASK)
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
free-image-0.8.1 lib/free-image/types/rgb16.rb
free-image-0.8.0 lib/free-image/types/rgb16.rb
free-image-0.7.1 lib/free-image/types/rgb16.rb
free-image-0.7.0 lib/free-image/types/rgb16.rb