sample_08_Copy.hsp

sample\Artlet2D\sample_08_Copy.hsp » Plain Format

;============================================================
;                                                 2010/--/--
;	Artlet2D sample
;
;============================================================
;
; コピー・ズームのサンプルです。
;
; Artlet2D 仮想イメージ間、HSP スクリーンと仮想イメージ間での
; 拡大・縮小コピーや、カラー変換コピーを行うことができます。
;
;============================================================

#include "a2d.hsp"

	; 仮想イメージ 0, 1 を作成 (640x480)
	alCreateImage 0, 640, 480
	if stat = -1 : dialog "GDI+ を初期化できませんでした。" : end
	alCreateImage 1, 640, 480


	alSelectImage 0 ; 仮想イメージ 0 を選択

	; コピー元図形を仮想イメージ 0 の 100x100 の領域に描画
	alGradientColor 0, 0, 100, 100, RGBA(0, 0, 255), RGBA(255, 255, 0)
	alFillRect 0, 0, 100, 100
	alColor 255, 255, 255, 64
	alFillEllip 0, 0, 100, 100
	alFillEllip 25, 25, 50, 50


	; 仮想イメージ 0 から 1 へさまざまなズームサイズでコピー
	alStretchImageToImage 0, 1, 0, 0, 100, 100, 0, 0, 300, 400
	alStretchImageToImage 0, 1, 0, 0, 100, 100, 200, 200, 440, 280
	alStretchImageToImage 0, 1, 0, 0, 100, 100, 100, 100, 300, 200


	; 仮想イメージ 1 から HSP スクリーン 0 に、さまざまなモードでコピー
	color 255, 255, 0

	; デフォルト
	alStretchImageToScreen 1, 0, 0, 0, 640, 480,   0,   0, 320, 240
	pos 0, 0 : mes "normal stretch"

	; ガンマ
	alCopyModeGamma 0.5
	alStretchImageToScreen 1, 0, 0, 0, 640, 480,   0, 240, 320, 120
	pos 0, 240 : mes "Gamma 0.5"

	alCopyModeGamma 1.5
	alStretchImageToScreen 1, 0, 0, 0, 640, 480,   0, 360, 320, 120
	pos 0, 360 : mes "Gamma 1.5"

	; アルファ
	alCopyModeAlpha 0.1
	alStretchImageToScreen 1, 0, 0, 0, 640, 480, 320,   0, 320, 240
	pos 320, 0 : mes "Alpha 0.1"

	; カラーマトリクス (セピア化)
	cmatrix(MAT_R) = 0.393, 0.769, 0.189, 0.0, 0.0
	cmatrix(MAT_G) = 0.349, 0.686, 0.168, 0.0, 0.0
	cmatrix(MAT_B) = 0.272, 0.534, 0.131, 0.0, 0.0
	cmatrix(MAT_A) = 0.0, 0.0, 0.0, 1.0, 0.0
	alCopyModeColorMatrix cmatrix
	alStretchImageToScreen 1, 0, 0, 0, 640, 480, 320, 240, 320, 240
	pos 320, 240 : mes "Matrix (セピア化)"

	redraw