//----------------------------------------------------------------------------------------------
//
//  gConsole+bitmap.h : グラフィック描画用コンソール＋ビットマップ
//  X-BASIC'
//
//  Created by AIG-Soft(iMac) on 2013/01/23.
//  Copyright (c) 2013年 AIG-Soft. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "gConsole.h"

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

@interface gConsole (bitmap)
{
#if 0
	// ビットマップワーク確保用(V1.6)
	UByte 	*pixel;
	int		bitmapWidth;
	int		bitmapHeight;
	int		byte1Line;	// 1ライン分のバイト数
	BOOL	fdirect;	// YES=console内ビットマップを使う
#endif
}

// V1.6 bitmap関数用
-(BOOL)bitmapOpen:(int)width height:(int)height fdirect:(BOOL)fdirect;
-(void)bitmapClose;
-(BOOL)checkXY:(int)x y:(int)y;
-(void)bitmapWipe;
-(void)bitmapPset:(int)x y:(int)y r:(int)r g:(int)g b:(int)b alpha:(int)alpha;
-(void)bitmapPset:(int)x y:(int)y rgba:(SLong)rgba;
-(ULong)bitmapPoint:(int)x y:(int)y r:(int *)r g:(int *)g b:(int *)b alpha:(int *)alpha;
-(ULong)bitmapPoint:(int)x y:(int)y;
-(void)bitmapImgLoad:(CGFloat)sx sy:(CGFloat)sy wx:(CGFloat)wx wy:(CGFloat)wy ftile:(BOOL)ftile;
// V1.7
-(void)bitmapGet:(int)sx sy:(int)sy ex:(int)ex ey:(int)ey buff:(UByte *)buff;
-(void)bitmapPut:(int)sx sy:(int)sy ex:(int)ex ey:(int)ey buff:(UByte *)buff;
// V2.0
-(int)checkX:(int)x;
-(int)checkY:(int)y;
-(void)checkBitmapBoxArea:(int *)sx sy:(int *)sy ex:(int *)ex ey:(int *)ey;
// V2.2
-(void)bitmapPattern:(int)sx sy:(int)sy wx:(int)wx wy:(int)wy ptrn:(UByte *)buff;


// これは関数
void checkBitmapBoxArea(int *sx,int *sy,int *ex,int *ey);
SLong calcBitmapBoxArea(int sx,int sy,int ex,int ey);


// CGContext*()は座標がQuartz系である。
// 故に、CGBitmapContextCreateImage(context)をそのまま表示すると上下反転の鏡像で表示されてしまう。
// それを正常表示するため、consoleは表示が上下胸像になるように設定してある。
// 一方、内包するビットマップは通常座標＆アドレスマッピングとなるが、表示が反転しているため、内部処理は上下逆さまに行なっておく必要が有る。
// CGContextDrawImage()は例外的にUIImageをその方向のままビットマップに展開するため同様となる。

#if 0
// 上下反転なし
#define calcBitmapAdrs(x,y)	(pixel+((x)*PIXELBYTE)+((y)*byte1Line))
#else
// 上下反転あり
#define calcBitmapAdrs(x,y)	(pixel+((x)*PIXELBYTE)+((self.bitmapHeight-1-(y))*byte1Line))
#endif

@end

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

