Supersampling 用パターン
パターンを擬似的に拡大して、その中で描画を行う。実画面にはパターンを縮小して再現する。 実際に拡大した分の要素を用意するのではなく、要素数は実画面と同数としておき、一つの要素が 複数の RGB 成分を持つものとみなす。従って、各要素は RGB 各成分の和とその個数を保持する。
以下はその利用例である。
Coord< int >
size( 1024, 768 );
GPattern pattern(
size );
GPattern quarter( Coord< int >(
size.x / 2,
size.y / 2 ) );
GInterpolation_NN nn;
ResizePut( quarter, ssp, Coord< int >( 0, 0 ), Coord< int >( ssp.size().x - 1, ssp.size().y - 1 ), nn );
ssp.put( pattern, Coord< int >( 0, 0 ) );
virtual Coord< int > size() const
疑似パターン・サイズの取得
Definition: gl_super_sampling_pattern.h:157
SuperSamplingPattern(const Coord< int > &sz, int mag)
実際の大きさと倍率を指定して構築
void ResizePut(const canvas::DrawingArea_IF &pattern, canvas::DrawingArea_IF &draw, pen::GPixelDraw &pixelDraw, Coord< int > s, Coord< int > e, bool reverseX, bool reverseY, bool swapXY, const interpolation::Base &ipF)
パターンの拡大・縮小描画
DrawingArea_IF で用意されている仮想関数 DrawingArea_IF::point は非公開としているため、 SuperSamplingPattern インスタンスを利用して Put 等により他の描画領域に描画を行うことは できない。代わりに、専用のメンバ関数 put が用意されておりこれを利用する。