SDL描画関数

SDLには単純な描画関係の関数がありません。これは単純に実装できるという理由もあると思いますがそもそもビットマップなどをあらかじめ用意しておき、スプライトとして使うことを想定しているからでしょう。

しかしながらそういった描画をしたい場合は稀にかもしれませんが確実にあります。そこで単純な描画関数を作ってみました。描画速度はあまり期待できないかもしれませんが十分だと思います。

void SDL_DrawPixel(SDL_Surface *screen,
	int x, int y,
	Uint8 R, Uint8 G, Uint8 B);

1ピクセル点をうちます。


void SDL_DrawLine(SDL_Surface *screen,
	int x1, int y1,
	int x2, int y2,
	Uint8 R, Uint8 G, Uint8 B);

直線を描画します。


void DrawBox(SDL_Surface *screen,
	int x1, int y1,
	int x2, int y2,
	Uint8 R, Uint8 G, Uint8 B);

四角形を描画します。


void SDL_DrawCircle(SDL_Surface *screen,
	int x1, int y1,
	int x2, int y2,
	Uint8 R, Uint8 G, Uint8 B);

円を描画します。


void SDL_DrawPaint(SDL_Surface *screen,
	int x, int y,
	Uint8 R, Uint8 G, Uint8 B);

領域を塗りつぶします。


こんなものでも何かの役に立てば光栄です。組み込みたい、使いたい、改造したい。なにをしても結構です。自由に使ってください。ライセンスとか細かいことは言いません。言うとしたらPublic Domainということにします。

直線はブレゼンハム、円はミッチェナー、塗りつぶしは単なるスキャンラインシードフィルです。アルゴリズムの説明はとりあえずしません。


トップへ