//----------------------------------------------------------------------------------------------
//
//  gConsole.h : グラフィック描画用コンソール
//  X-BASIC'
//
//  Created by AIG-Soft(iMac) on 2012/09/07.
//  Copyright (c) 2012-15年 AIG-Soft. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "libs.h"
#import "FileControl2.h"
#import "Console.h"

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

@interface gConsole : Console
{
//	CGFloat	lineWidth;
	// GSAVESTATEの回数
	int		cntGState;
#if 1	// カテゴリではインスタンス変数が追加できないので、ここに追加
	// ビットマップワーク確保用(V1.6)
	// bitmap.m内確保、またはconsole確保分のどちらかを割り当てる
	UByte 	*pixel;
//	int		bitmapWidth;
//	int		bitmapHeight;
	int		byte1Line;		// 1ライン分のバイト数
	BOOL	fdirect;		// YES=console内ビットマップを使う
#endif
}
@property (nonatomic) CGFloat lineWidth;
@property (nonatomic) int bitmapWidth;
@property (nonatomic) int bitmapHeight;
@property (nonatomic) rgba_color rgbaColor;			// 表示色
//
-(void)line:(CGFloat)sx sy:(CGFloat)sy ex:(CGFloat)ex ey:(CGFloat)ey fill:(BOOL)ffill style:(NSUInteger)style;
-(void)lines:(CGPoint *)points count:(size_t)count fill:(BOOL)ffill style:(NSUInteger)style;
-(void)box:(CGFloat)sx sy:(CGFloat)sy ex:(CGFloat)ex ey:(CGFloat)ey style:(NSUInteger)style;
-(void)fill:(CGFloat)sx sy:(CGFloat)sy ex:(CGFloat)ex ey:(CGFloat)ey;
-(void)circle:(CGFloat)cx cy:(CGFloat)cy r:(CGFloat)r startAngle:(CGFloat)startAngle endAngle:(CGFloat)endAngle clockwise:(int)clockwise fill:(BOOL)ffill style:(NSUInteger)style;
-(void)ellipse:(CGFloat)cx cy:(CGFloat)cy r:(CGFloat)r hv:(CGFloat)hv fill:(BOOL)ffill style:(NSUInteger)style;
-(void)lineWidth:(CGFloat)width;
-(void)lineStyle:(NSUInteger)style;
-(void)lineCap:(int)cap;
-(void)lineJoin:(int)join;
-(void)blend:(int)blend;
-(BOOL)imgLoad:(CGFloat)sx sy:(CGFloat)sy wx:(CGFloat)wx wy:(CGFloat)wy fname:(NSString *)fname ftile:(BOOL)ftile;
-(BOOL)imageSave:(NSString *)fname quality:(CGFloat)quality fjpeg:(BOOL)fjpeg;
-(BOOL)imageCopyToAlbum:(NSString *)path;
-(CGSize)symbol:(CGFloat)sx sy:(CGFloat)sy str:(NSString *)str fontName:(NSString *)fontName pointSize:(CGFloat)pointSize;
-(void)color:(int)r g:(int)g b:(int)b alpha:(int)alpha;
-(void)clip:(CGFloat)sx sy:(CGFloat)sy ex:(CGFloat)ex ey:(CGFloat)ey;
-(void)saveGState;
-(void)restoreGState;
-(void)pset:(CGFloat)x y:(CGFloat)y;

@end

enum { // ファイル読み込み系のエラーコード
	PIC_OK=0,				// 正常終了
	PIC_FILENOTFOUND,		// ファイルが見つからない
	PIC_READERR,			// 読み込みエラー
	PIC_HEADERERR,			// ヘッダーがおかしい
	PIC_NOTSUPPORT_COLOR,	// サポートしてない色ビット数
	PIC_NOTSUPPORT_MODE,	// サポートしてないモード
	PIC_BITMAP_ALREADY_USE,	// bitmapが他で使われている
	PIC_NOMEMORY,			// ワークが確保できない
	PIC_TOO_SMALL,			// 画像サイズが小さすぎる
	PIC_DATA_ILLEGAL,		// データ構造がおかしい / JPEGでマーカーがおかしい
	PIC_NO_PIC,				// 目的とする画像ファイル(PIC/JPEG)ではない
};
// 本来gConsole+picloaderに置くべきであるが、sConsoleでも使うのでここに置く

enum { // ページ番号;apage()/vpriority()
	KCONSOLE	=0,
	//
	SCONSOLE,	// 1
	TCONSOLE,	// 2
	GCONSOLE0,	// 3
	GCONSOLE1,	// 4
	GCONSOLE2,	// 5
	GCONSOLE3,	// 6
	// コーンソールページ数
	MAX_CONSOLES
};

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

