//
//  XBiOSg.h
//  X-BASIC'
//
//  Created by AIG-Soft(iMac) on 2015/06/07.
//  Copyright (c) 2015年 AIG-Soft. All rights reserved.
//
// 他で使うため公開すべき関数のみ宣言

#include "XB.h"
#import "gConsole.h"

#ifndef X_BASIC_for_iOS_XBiOSg_h
#define X_BASIC_for_iOS_XBiOSg_h

RET_FUNC _F_gColor(SWord numFAC,FAC fac[]);
RET_FUNC _F_vpage(SWord numFAC,FAC fac[]);
RET_FUNC _F_blend(SWord numFAC,FAC fac[]);
RET_FUNC _F_fill(SWord numFAC,FAC fac[]);
RET_FUNC _F_line(SWord numFAC,FAC fac[]);
RET_FUNC _F_box(SWord numFAC,FAC fac[]);
RET_FUNC _F_pset(SWord numFAC,FAC fac[]);
RET_FUNC _F_symbol(SWord numFAC,FAC fac[]);
RET_FUNC _F_bitmapPaint(SWord numFAC,FAC fac[]);
RET_FUNC _F_bitmapCircle(SWord numFAC,FAC fac[]);
RET_FUNC _F_circle(SWord numFAC,FAC fac[]);
RET_FUNC _F_ellipse(SWord numFAC,FAC fac[]);
RET_FUNC _F_apage(SWord numFAC,FAC fac[]);
RET_FUNC _F_gTransform(SWord numFAC,FAC fac[]);
RET_FUNC _F_lineWidth(SWord numFAC,FAC fac[]);

void _F_bitmapPatternSub(int sx,int sy,int wx,int wy,UByte *bp);
void _F_bitmapImgLoadSub(int sx,int sy,int wx,int wy);
void _F_gBackgroundAlphaSub(double alpha);

//----------------------------------------------------------------------------------------------
// startup.basでの設定も合わすこと

// blend()の引数
// どのようになるかは名称から想像して(^_^;)
enum {
	BlendModeNormal         =0,
	BlendModeMultiply,
	BlendModeScreen,
	BlendModeOverlay,
	BlendModeDarken,
	BlendModeLighten,
	BlendModeColorDodge,
	BlendModeColorBurn,
	BlendModeSoftLight,
	BlendModeHardLight,
	BlendModeDifference,
	BlendModeExclusion,
	BlendModeHue,
	BlendModeSaturation,
	BlendModeColor,
	BlendModeLuminosity,
	BlendModeClear,
	BlendModeCopy,
	BlendModeSourceIn,
	BlendModeSourceOut,
	BlendModeSourceAtop,
	BlendModeDestinationOver,
	BlendModeDestinationIn,
	BlendModeDestinationOut,
	BlendModeDestinationAtop,
	BlendModeXOR,
	BlendModePlusDarker,
	BlendModePlusLighter,
	BlendModeXor			=BlendModeXOR,
};

// apage()/vpriority()の引数 / Argument of apage()/vpriority()
// 画面指定 / Screen
enum {
	KPAGE	=KCONSOLE,
	SPAGE   ,	// スプライト&BG画面
	TPAGE	,	// テキスト画面
	GPAGE0	,	// グラフィック画面0
	GPAGE1	,	// グラフィック画面1
	GPAGE2	,	// グラフィック画面2
	GPAGE3	,	// グラフィック画面3
};

// vpage()の引数 ; 表示画面指定
enum {
	B_SPAGE		=bit(SPAGE), 	// スプライト&BG画面
	B_TPAGE		=bit(TPAGE), 	// テキスト画面
	B_GPAGE0	=bit(GPAGE0),	// グラフィック画面0
	B_GPAGE1	=bit(GPAGE1),	// グラフィック画面1
	B_GPAGE2	=bit(GPAGE2),	// グラフィック画面2
	B_GPAGE3	=bit(GPAGE3),	// グラフィック画面3
};

//----------------------------------------------------------------------------------------------

#endif

