Beatmup
processing.h File Reference
#include "../exception.h"
#include "abstract_bitmap.h"
#include "bitmap_access.h"
#include "mask_bitmap_access.h"

Go to the source code of this file.

Classes

class  Beatmup::BitmapProcessing::ProcessingActionNotImplemented
 Exception thrown in a situation when a processing action is not implemented for pixel formats of specific arguments. More...
 

Namespaces

 Beatmup
 
 Beatmup::BitmapProcessing
 Contains templates calling elementary image processing routines depending on pixel formats of their arguments.
 

Macros

#define WRITING(IN_R)
 
#define WRITING(IN_R)
 

Functions

template<template< class > class Func, class Bitmap , typename... Args>
void Beatmup::BitmapProcessing::read (Bitmap &bitmap, Args &&... args)
 Calls a Func< ReaderClass >::process(access, params), where. More...
 
template<template< class > class Func, class Bitmap , typename... Args>
void Beatmup::BitmapProcessing::write (Bitmap &bitmap, Args &&... args)
 Calls a Func< WriterClass >::process(access, params) that writes to a bitmap of any kind, where. More...
 
template<template< class > class Func, class Bitmap , typename... Args>
void Beatmup::BitmapProcessing::writeToMask (Bitmap &bitmap, Args &&... args)
 Calls a Func< WriterClass >::process(access, params) that writes to a mask bitmap where. More...
 
template<template< class, class > class Func, class InputBitmap , class OutputBitmap , typename... Args>
void Beatmup::BitmapProcessing::pipeline (InputBitmap &in, OutputBitmap &out, Args &&... args)
 
template<template< class, class > class Func, class InputBitmap , class OutputBitmap , typename... Args>
void Beatmup::BitmapProcessing::pipelineWithMaskOutput (InputBitmap &in, OutputBitmap &out, Args &&... args)
 

Macro Definition Documentation

◆ WRITING [1/2]

#define WRITING (   IN_R)
Value:
switch (out.getPixelFormat()) { \
case SingleByte: \
Func<IN_R, SingleByteBitmapWriter>::process(in, out, args...); \
break; \
case TripleByte: \
Func<IN_R, TripleByteBitmapWriter>::process(in, out, args...); \
break; \
case QuadByte: \
Func<IN_R, QuadByteBitmapWriter>::process(in, out, args...); \
break; \
case SingleFloat: \
Func<IN_R, SingleFloatBitmapWriter>::process(in, out, args...); \
break; \
case TripleFloat: \
Func<IN_R, TripleFloatBitmapWriter>::process(in, out, args...); \
break; \
case QuadFloat: \
Func<IN_R, QuadFloatBitmapWriter>::process(in, out, args...); \
break; \
case BinaryMask: \
Func<IN_R, BinaryMaskWriter>::process(in, out, args...); \
break; \
Func<IN_R, QuaternaryMaskWriter>::process(in, out, args...); \
break; \
case HexMask: \
Func<IN_R, HexMaskWriter>::process(in, out, args...); \
break; \
default: throw ProcessingActionNotImplemented(out.getPixelFormat()); \
}
@ SingleByte
single channel of 8 bits per pixel (like grayscale), unsigned integer values
@ SingleFloat
single channel of 32 bits per pixel (like grayscale), single precision floating point values
@ QuaternaryMask
2 bits per pixel
@ QuadFloat
4 channels of 32 bits per pixel, single precision floating point values,
@ TripleFloat
3 channels of 32 bits per pixel, single precision floating point values
@ QuadByte
4 channels of 8 bits per pixel (like RGBA), unsigned integer values
@ TripleByte
3 channels of 8 bits per pixel (like RGB), unsigned integer values
@ BinaryMask
1 bit per pixel
@ HexMask
4 bits per pixel
JNIEnv jlong jint out

◆ WRITING [2/2]

#define WRITING (   IN_R)
Value:
switch (out.getPixelFormat()) { \
case BinaryMask: \
Func<IN_R, BinaryMaskWriter>::process(in, out, args...); \
break; \
Func<IN_R, QuaternaryMaskWriter>::process(in, out, args...); \
break; \
case HexMask: \
Func<IN_R, HexMaskWriter>::process(in, out, args...); \
break; \
case SingleByte: \
Func<IN_R, SingleByteMaskWriter>::process(in, out, args...); \
break; \
default: throw ProcessingActionNotImplemented(out.getPixelFormat()); \
}