roo_display
API Documentation for roo_display
Loading...
Searching...
No Matches
blending.h File Reference
#include <inttypes.h>
#include <cmath>
#include <type_traits>
#include <utility>
#include "roo_display/color/color.h"
#include "roo_display/color/traits.h"
#include "roo_display/internal/color_io.h"
#include "roo_io/data/byte_order.h"
#include "roo_logging/stream.h"
Include dependency graph for blending.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  roo_display::BlendOp< BlendingMode::kSource >
 
struct  roo_display::BlendOp< BlendingMode::kSourceOverOpaque >
 
struct  roo_display::BlendOp< BlendingMode::kSourceOver >
 
struct  roo_display::BlendOp< BlendingMode::kSourceAtop >
 
struct  roo_display::BlendOp< BlendingMode::kDestination >
 
struct  roo_display::BlendOp< BlendingMode::kDestinationOverOpaque >
 
struct  roo_display::BlendOp< BlendingMode::kDestinationOver >
 
struct  roo_display::BlendOp< BlendingMode::kClear >
 
struct  roo_display::BlendOp< BlendingMode::kSourceIn >
 
struct  roo_display::BlendOp< BlendingMode::kDestinationIn >
 
struct  roo_display::BlendOp< BlendingMode::kDestinationAtop >
 
struct  roo_display::BlendOp< BlendingMode::kSourceOut >
 
struct  roo_display::BlendOp< BlendingMode::kDestinationOut >
 
struct  roo_display::BlendOp< BlendingMode::kXor >
 
struct  roo_display::Blender< mode >
 
struct  roo_display::internal::ApplyBlendingResolver
 
struct  roo_display::internal::ApplyBlendingInPlaceResolver
 
struct  roo_display::internal::ApplyBlendingSingleSourceInPlaceResolver
 
struct  roo_display::internal::ApplyBlendingInPlaceIndexedResolver
 
struct  roo_display::internal::ApplyBlendingOverBackgroundResolver
 
struct  roo_display::RawFullByteBlender< ColorMode, blending_mode, byte_order >
 
struct  roo_display::RawFullByteBlender< ColorMode, BlendingMode::kSource, byte_order >
 
struct  roo_display::RawFullByteBlender< ColorMode, BlendingMode::kDestination, byte_order >
 
struct  roo_display::RawSubByteBlender< ColorMode, blending_mode >
 
struct  roo_display::RawSubByteBlender< ColorMode, BlendingMode::kSource >
 
struct  roo_display::RawSubByteBlender< ColorMode, BlendingMode::kDestination >
 
struct  roo_display::internal::ApplyRawFullByteBlendingResolver< ColorMode, byte_order >
 
struct  roo_display::internal::ApplyRawSubByteBlendingResolver< ColorMode >
 

Namespaces

namespace  roo_display
 Defines 140 opaque HTML named colors.
 
namespace  roo_display::internal
 

Macros

#define ROO_DISPLAY_BLENDING_PRECISION   1
 

Enumerations

enum class  roo_display::BlendingMode {
  roo_display::kSource , roo_display::kSourceOver , roo_display::kSourceIn , roo_display::kSourceAtop ,
  roo_display::kDestination , roo_display::kDestinationOver , roo_display::kDestinationIn , roo_display::kDestinationAtop ,
  roo_display::kClear , roo_display::kSourceOut , roo_display::kDestinationOut , roo_display::kXor ,
  roo_display::kSourceOverOpaque , roo_display::kDestinationOverOpaque
}
 Porter-Duff style blending modes. More...
 
enum class  roo_display::TransparencyMode { roo_display::kNone , roo_display::kCrude , roo_display::kFull }
 Transparency information for a stream or color mode. More...
 

Functions

roo_logging::Stream & roo_display::operator<< (roo_logging::Stream &os, BlendingMode mode)
 
roo_logging::Stream & roo_display::operator<< (roo_logging::Stream &os, TransparencyMode mode)
 
constexpr uint8_t roo_display::internal::__div_255 (uint16_t arg)
 
constexpr uint8_t roo_display::internal::__div_255_rounded (uint16_t arg)
 
constexpr uint8_t roo_display::internal::__div_65280 (uint32_t arg)
 
constexpr uint8_t roo_display::internal::__div_65280_rounded (uint32_t arg)
 
template<typename Functor , typename... Args>
auto roo_display::internal::BlenderSpecialization (const BlendingMode blending_mode, Args &&... args) -> decltype(std::declval< Functor >() .template operator()<BlendingMode::kSourceOver >(args...))
 
Color roo_display::AlphaBlendOverOpaque (Color bgc, Color fgc)
 
Color roo_display::ApplyBlending (BlendingMode mode, Color dst, Color src)
 
void roo_display::ApplyBlendingInPlace (BlendingMode mode, Color *dst, const Color *src, int16_t count)
 
void roo_display::ApplyBlendingSingleSourceInPlace (BlendingMode mode, Color *dst, Color src, int16_t count)
 
void roo_display::ApplyBlendingInPlaceIndexed (BlendingMode mode, Color *dst, const Color *src, int16_t count, const uint32_t *index)
 
void roo_display::ApplyBlendingOverBackground (BlendingMode mode, Color bg, Color *src, int16_t count)
 
Color roo_display::AlphaBlend (Color bgc, Color fgc)
 
template<typename ColorMode , roo_io::ByteOrder byte_order>
void roo_display::ApplyRawFullByteBlending (BlendingMode blending_mode, roo::byte *dst, Color src, const ColorMode &color_mode)
 
template<typename ColorMode , roo_io::ByteOrder byte_order>
void roo_display::ApplyRawFullByteBlending (BlendingMode blending_mode, roo::byte *dst, Color src, ColorMode &color_mode)
 
template<typename ColorMode >
ColorStorageType< ColorMode > roo_display::ApplyRawSubByteBlending (BlendingMode blending_mode, uint8_t dst, Color src, const ColorMode &color_mode)
 
template<typename ColorMode >
ColorStorageType< ColorMode > roo_display::ApplyRawSubByteBlending (BlendingMode blending_mode, uint8_t dst, Color src, ColorMode &color_mode)
 

Variables

constexpr BlendingMode roo_display::BLENDING_MODE_SOURCE = BlendingMode::kSource
 
constexpr BlendingMode roo_display::BLENDING_MODE_SOURCE_OVER = BlendingMode::kSourceOver
 
constexpr BlendingMode roo_display::BLENDING_MODE_SOURCE_IN = BlendingMode::kSourceIn
 
constexpr BlendingMode roo_display::BLENDING_MODE_SOURCE_ATOP = BlendingMode::kSourceAtop
 
constexpr BlendingMode roo_display::BLENDING_MODE_DESTINATION = BlendingMode::kDestination
 
constexpr BlendingMode roo_display::BLENDING_MODE_DESTINATION_OVER
 
constexpr BlendingMode roo_display::BLENDING_MODE_DESTINATION_IN
 
constexpr BlendingMode roo_display::BLENDING_MODE_DESTINATION_ATOP
 
constexpr BlendingMode roo_display::BLENDING_MODE_CLEAR = BlendingMode::kClear
 
constexpr BlendingMode roo_display::BLENDING_MODE_SOURCE_OUT = BlendingMode::kSourceOut
 
constexpr BlendingMode roo_display::BLENDING_MODE_DESTINATION_OUT
 
constexpr BlendingMode roo_display::BLENDING_MODE_EXCLUSIVE_OR = BlendingMode::kXor
 
constexpr TransparencyMode roo_display::TRANSPARENCY_NONE = TransparencyMode::kNone
 
constexpr TransparencyMode roo_display::TRANSPARENCY_BINARY = TransparencyMode::kCrude
 
constexpr TransparencyMode roo_display::TRANSPARENCY_GRADUAL = TransparencyMode::kFull
 

Macro Definition Documentation

◆ ROO_DISPLAY_BLENDING_PRECISION

#define ROO_DISPLAY_BLENDING_PRECISION   1

Definition at line 237 of file blending.h.