LIBEUNOMIA
読み取り中…
検索中…
一致する文字列を見つけられません
公開型 | 公開メンバ関数 | 限定公開メンバ関数 | 限定公開変数類 | 全メンバ一覧
eunomia::ImageBuffer< C_ > クラステンプレート

畫像バッファ基底クラステンプレート [詳解]

#include <imagebuffer.h>

eunomia::ImageBuffer< C_ > の継承関係図
eunomia::ImageBuffer< C_ > 連携図

公開型

typedef C_ ColourType
 

公開メンバ関数

virtual ~ImageBuffer ()=default
 解體子
 
int width () const noexcept
 
 
int height () const noexcept
 高さ
 
int pitch () const noexcept
 ピッチ
 
uint8_tbuffer () noexcept
 バッファの先頭アドレスの取得
 
const uint8_tbuffer () const noexcept
 バッファの先頭アドレスの取得
 
C_lineBuffer (int y) noexcept
 ラインバッファの先頭アドレスの取得
 
const C_lineBuffer (int y) const noexcept
 ラインバッファの先頭アドレスの取得
 
C_pixel (int x, int y) noexcept
 畫素(x, y)の參照
 
const C_pixel (int x, int y) const noexcept
 畫素(x, y)の參照
 
C_at (int x, int y)
 畫素(x, y)の參照
 
const C_at (int x, int y) const
 畫素(x, y)の參照
 
void line (int x1, int y1, int x2, int y2, const C_ &color)
 線分の描畫
 
void box (int left, int top, int right, int bottom, const C_ &color, bool fill=false)
 長方形の描畫
 
void ellipse (int x, int y, int a, int b, const C_ &color, bool fill=false)
 楕圓の描畫
 
void circle (int x, int y, int r, const C_ &color, bool fill=false)
 圓の描畫
 
void paintFill (int x, int y, const C_ &color)
 塗り潰し
 
void clear (const C_ &color)
 バッファ全體の塗り潰し
 
template<class CSrc , class Copier >
void blt (const ImageBuffer< CSrc > &src, int sx, int sy, int w, int h, int dx, int dy, const std::optional< Rect > &cliprect, Copier copier)
 轉送
 
template<class CSrc >
void blt (const ImageBuffer< CSrc > &src, int sx, int sy, int w, int h, int dx, int dy, const std::optional< Rect > &cliprect=std::nullopt)
 轉送
 
template<class Func >
void forEachPixel (Func func)
 畫素毎の處理
 
template<class CSrc , class Copier >
void blt (const eunomia::ImageBuffer< CSrc > &src, int sx, int sy, int w, int h, int dx, int dy, const std::optional< eunomia::Rect > &cliprect, Copier copier)
 

限定公開メンバ関数

 ImageBuffer (int w, int h, int p) noexcept
 構築子
 

限定公開変数類

std::uint8_t * buf_
 畫像バッファ
 
int w_
 
 
int h_
 高さ
 
int pitch_
 ピッチ = 水平方向1ラインのビット數
 

詳解

template<class C_>
class eunomia::ImageBuffer< C_ >

畫像バッファ基底クラステンプレート

型定義メンバ詳解

◆ ColourType

template<class C_ >
typedef C_ eunomia::ImageBuffer< C_ >::ColourType

構築子と解体子

◆ ImageBuffer()

template<class C_ >
eunomia::ImageBuffer< C_ >::ImageBuffer ( int w,
int h,
int p )
inlineprotectednoexcept

構築子

畫像バッファの幅、高さ、ピッチを指定値で初期化する。 バッファそのものは派生クラスで確保される。

引数
w
h高さ
pピッチ
被呼び出し関係図:

◆ ~ImageBuffer()

template<class C_ >
virtual eunomia::ImageBuffer< C_ >::~ImageBuffer ( )
virtualdefault

解體子

関数詳解

◆ at() [1/2]

template<class C_ >
C_ & eunomia::ImageBuffer< C_ >::at ( int x,
int y )
inline

畫素(x, y)の參照

座標(x, y)の畫素を參照する。 但し、座標(x, y)が畫像の幅と高さの範圍にあるか確認し、 範圍外の場合はRangeOverExceptionを投げる。

呼び出し関係図:

◆ at() [2/2]

template<class C_ >
const C_ & eunomia::ImageBuffer< C_ >::at ( int x,
int y ) const
inline

畫素(x, y)の參照

座標(x, y)の畫素を參照する。 但し、座標(x, y)が畫像の幅と高さの範圍にあるか確認し、 範圍外の場合はRangeOverExceptionを投げる。

呼び出し関係図:

◆ blt() [1/3]

template<class C_ >
template<class CSrc , class Copier >
void eunomia::ImageBuffer< C_ >::blt ( const eunomia::ImageBuffer< CSrc > & src,
int sx,
int sy,
int w,
int h,
int dx,
int dy,
const std::optional< eunomia::Rect > & cliprect,
Copier copier )
inline
呼び出し関係図:

◆ blt() [2/3]

template<class C_ >
template<class CSrc , class Copier >
void eunomia::ImageBuffer< C_ >::blt ( const ImageBuffer< CSrc > & src,
int sx,
int sy,
int w,
int h,
int dx,
int dy,
const std::optional< Rect > & cliprect,
Copier copier )

轉送

轉送元畫像srcのsx, sy, w, hで指定される範圍から畫素を得て、 對應する畫素にcopierとして與へられる處理を行ふ。

各種ブレンディングを伴ふ轉送處理の實現を意圖した仕樣であるが、 他の用途があるかもしれない。

引数
src轉送元畫像バッファ
sx轉送元左上X座標
sy轉送元左上Y座標
w轉送幅
h轉送高さ
dx左上X座標
dy左上Y座標
cliprect變更を許す長方形領域。std::nulloptの場合は畫像全體。
copierピクセル毎の轉寫を行ふ函數あるいは函數オブジェクト。 轉送元(src)の畫素 const CSrc& s を 轉送先(*this)の畫素 C_& d に轉寫するときに、 copier(s, d)の形で呼び出される。
被呼び出し関係図:

◆ blt() [3/3]

template<class C_ >
template<class CSrc >
void eunomia::ImageBuffer< C_ >::blt ( const ImageBuffer< CSrc > & src,
int sx,
int sy,
int w,
int h,
int dx,
int dy,
const std::optional< Rect > & cliprect = std::nullopt )
inline

轉送

畫素を轉送元の畫素で置き換へる。 この函數を用ゐるには、CSrcからC_に代入が可能でなければならない。

引数
src轉送元バッファ
sx轉送元左上X座標
sy轉送元左上Y座標
w轉送幅
h轉送高さ
dx左上X座標
dy左上Y座標
cliprect變更を許す長方形領域。std::nulloptの場合は畫像全體。
呼び出し関係図:

◆ box()

template<class C_ >
void eunomia::ImageBuffer< C_ >::box ( int left,
int top,
int right,
int bottom,
const C_ & color,
bool fill = false )
inline

長方形の描畫

引数
left左邊のX座標
top上邊のY座標
right右邊のX座標
bottom下邊のY座標
color
fill塗り潰すならtrue、さもなくばfalse
被呼び出し関係図:

◆ buffer() [1/2]

template<class C_ >
const uint8_t * eunomia::ImageBuffer< C_ >::buffer ( ) const
inlinenoexcept

バッファの先頭アドレスの取得

◆ buffer() [2/2]

template<class C_ >
uint8_t * eunomia::ImageBuffer< C_ >::buffer ( )
inlinenoexcept

バッファの先頭アドレスの取得

被呼び出し関係図:

◆ circle()

template<class C_ >
void eunomia::ImageBuffer< C_ >::circle ( int x,
int y,
int r,
const C_ & color,
bool fill = false )
inline

圓の描畫

引数
x中心のX座標
y中心のY座標
r半徑
color
fill塗り潰すならtrue、さもなくばfalse
呼び出し関係図:

◆ clear()

template<class C_ >
void eunomia::ImageBuffer< C_ >::clear ( const C_ & color)
inline

バッファ全體の塗り潰し

引数
color
呼び出し関係図:

◆ ellipse()

template<class C_ >
void eunomia::ImageBuffer< C_ >::ellipse ( int x,
int y,
int a,
int b,
const C_ & color,
bool fill = false )
inline

楕圓の描畫

引数
x中心のX座標
y中心のY座標
a水平方向の半徑
b垂直方向の半徑
color
fill塗り潰すならtrue、さもなくばfalse
被呼び出し関係図:

◆ forEachPixel()

template<class C_ >
template<class Func >
void eunomia::ImageBuffer< C_ >::forEachPixel ( Func func)
inline

畫素毎の處理

畫像の各畫素にfuncとして與へられる處理を行ふ。

引数
func各畫素への處理を行ふ函數あるいは函數オブジェクト。 畫素 C_& p を處理するときに、 func(p) の形で呼び出される。
呼び出し関係図:

◆ height()

template<class C_ >
int eunomia::ImageBuffer< C_ >::height ( ) const
inlinenoexcept

高さ

被呼び出し関係図:

◆ line()

template<class C_ >
void eunomia::ImageBuffer< C_ >::line ( int x1,
int y1,
int x2,
int y2,
const C_ & color )
inline

線分の描畫

引数
x1一方の端點のX座標
y1一方の端點のY座標
x2もう一方の端點のX座標
y2もう一方の端點のY座標
color
被呼び出し関係図:

◆ lineBuffer() [1/2]

template<class C_ >
const C_ * eunomia::ImageBuffer< C_ >::lineBuffer ( int y) const
inlinenoexcept

ラインバッファの先頭アドレスの取得

◆ lineBuffer() [2/2]

template<class C_ >
C_ * eunomia::ImageBuffer< C_ >::lineBuffer ( int y)
inlinenoexcept

ラインバッファの先頭アドレスの取得

被呼び出し関係図:

◆ paintFill()

template<class C_ >
void eunomia::ImageBuffer< C_ >::paintFill ( int x,
int y,
const C_ & color )
inline

塗り潰し

引数
x始點のX座標
y始點のY座標
color

◆ pitch()

template<class C_ >
int eunomia::ImageBuffer< C_ >::pitch ( ) const
inlinenoexcept

ピッチ

被呼び出し関係図:

◆ pixel() [1/2]

template<class C_ >
const C_ & eunomia::ImageBuffer< C_ >::pixel ( int x,
int y ) const
inlinenoexcept

畫素(x, y)の參照

座標(x, y)の畫素を參照する。

呼び出し関係図:

◆ pixel() [2/2]

template<class C_ >
C_ & eunomia::ImageBuffer< C_ >::pixel ( int x,
int y )
inlinenoexcept

畫素(x, y)の參照

座標(x, y)の畫素を參照する。

呼び出し関係図:
被呼び出し関係図:

◆ width()

template<class C_ >
int eunomia::ImageBuffer< C_ >::width ( ) const
inlinenoexcept

被呼び出し関係図:

メンバ詳解

◆ buf_

template<class C_ >
std::uint8_t* eunomia::ImageBuffer< C_ >::buf_
protected

畫像バッファ

◆ h_

template<class C_ >
int eunomia::ImageBuffer< C_ >::h_
protected

高さ

◆ pitch_

template<class C_ >
int eunomia::ImageBuffer< C_ >::pitch_
protected

ピッチ = 水平方向1ラインのビット數

◆ w_

template<class C_ >
int eunomia::ImageBuffer< C_ >::w_
protected


このクラス詳解は次のファイルから抽出されました: