###--- デモプログラム ---###
import time
import VGAdriver2								#LCD描画ドライバーのインポート

# 3 bit color names
BLACK   = 0			#0
BLUE    = 0b001		#1
GREEN   = 0b010		#2
CYAN    = 0b011		#3
RED     = 0b100		#4
MAGENTA = 0b101		#5
YELLOW  = 0b110		#6
WHITE   = 0b111		#7

def line():
    ###--- 水平実線を描画　---##    
    VGAdriver2.fill_screen(WHITE)
    VGAdriver2.draw_Hline(10,630,40,RED)			# 赤　水平実線を描画
    VGAdriver2.draw_Hline(10,630,70,GREEN)			# 緑　水平実線を描画
    VGAdriver2.draw_Hline(10,630,100,BLUE)			# 青　水平実線を描画
    VGAdriver2.draw_Hline(10,630,130,BLACK)			# 黒　水平実線を描画
    VGAdriver2.draw_Hline(10,630,160,YELLOW)		# 黄　水平実線を描画
    VGAdriver2.draw_Hline(10,630,190,MAGENTA)		#　マゼンタ　水平実線を描画
    VGAdriver2.draw_Hline(10,630,220,CYAN)			# シアン　水平実線を描画
    ###--- 水平破線を描画　---##
    VGAdriver2.draw_dashed_Hline(10,630,250,RED)		# 赤　水平破線を描画
    VGAdriver2.draw_dashed_Hline(10,630,280,GREEN)	# 緑　水平破線を描画
    VGAdriver2.draw_dashed_Hline(10,630,310,BLUE)	# 青　水平破線を描画
    VGAdriver2.draw_dashed_Hline(10,630,340,BLACK)	# 黒　水平破線を描画
    VGAdriver2.draw_dashed_Hline(10,630,370,YELLOW)	# 黄　水平破線を描画
    VGAdriver2.draw_dashed_Hline(10,630,400,MAGENTA)#　マゼンタ　水平破線を描画
    VGAdriver2.draw_dashed_Hline(10,630,430,CYAN)	# シアン　水平破線を描画
    ###--- 垂直実線を描画　---##
    VGAdriver2.draw_Vline(60,10,470,RED)			# 赤　水平実線を描画
    VGAdriver2.draw_Vline(100,10,470,GREEN)			# 緑　水平実線を描画
    VGAdriver2.draw_Vline(140,10,470,BLUE)			# 青　水平実線を描画
    VGAdriver2.draw_Vline(180,10,470,BLACK)			# 黒　水平実線を描画
    VGAdriver2.draw_Vline(220,10,470,YELLOW)		# 黄　水平実線を描画
    VGAdriver2.draw_Vline(260,10,470,MAGENTA)		#　マゼンタ　水平実線を描画
    VGAdriver2.draw_Vline(300,10,470,CYAN)			# シアン　水平実線を描画
    ###--- 垂直破線を描画　---##
    VGAdriver2.draw_dashed_Vline(340,10,470,RED)	# 赤　水平破線を描画
    VGAdriver2.draw_dashed_Vline(380,10,470,GREEN)	# 緑　水平破線を描画
    VGAdriver2.draw_dashed_Vline(420,10,470,BLUE)	# 青　水平破線を描画
    VGAdriver2.draw_dashed_Vline(460,10,470,BLACK)	# 黒　水平破線を描画
    VGAdriver2.draw_dashed_Vline(500,10,470,YELLOW)	# 黄　水平破線を描画
    VGAdriver2.draw_dashed_Vline(540,10,470,MAGENTA)#　マゼンタ　水平破線を描画
    VGAdriver2.draw_dashed_Vline(580,10,470,CYAN)	# シアン　水平破線を描画
    ###--- 実斜線を描画　---##
    VGAdriver2.draw_line(20,10,380,470,RED)			# 赤　実斜線を描画
    VGAdriver2.draw_line(60,10,420,470,GREEN)		# 緑　実斜線を描画
    VGAdriver2.draw_line(100,10,460,470,BLUE)		# 青　実斜線を描画
    VGAdriver2.draw_line(140,10,500,470,BLACK)		# 黒　実斜線を描画
    VGAdriver2.draw_line(180,10,540,470,YELLOW)		# 黄　実斜線を描画
    VGAdriver2.draw_line(220,10,580,470,MAGENTA)	#　マゼンタ　実斜線を描画
    VGAdriver2.draw_line(260,10,620,470,CYAN)		# シアン　実斜線を描画
    ###--- 破斜線を描画　---##
    VGAdriver2.draw_dashed_line(380,10,20,470,RED)		# 赤　破斜線を描画
    VGAdriver2.draw_dashed_line(420,10,60,470,GREEN)	# 緑　破斜線を描画
    VGAdriver2.draw_dashed_line(460,10,100,470,BLUE)	# 青　破斜線を描画
    VGAdriver2.draw_dashed_line(500,10,140,470,BLACK)	# 黒　破斜線を描画
    VGAdriver2.draw_dashed_line(540,10,180,470,YELLOW)	# 黄　破斜線を描画
    VGAdriver2.draw_dashed_line(580,10,220,470,MAGENTA)	#　マゼンタ　破斜線を描画
    VGAdriver2.draw_dashed_line(620,10,260,470,CYAN)	# シアン　破斜線を描画
    time.sleep(5)
    
def rectangle_circle(): 
    ###--- ディスク ---###
    VGAdriver2.fill_screen(WHITE)
    VGAdriver2.fill_disk(480,240,160,RED)
    VGAdriver2.fill_disk(480,240,150,GREEN)
    VGAdriver2.fill_disk(480,240,140,BLUE)
    VGAdriver2.fill_disk(480,240,130,BLACK)
    VGAdriver2.fill_disk(480,240,120,YELLOW)
    VGAdriver2.fill_disk(480,240,110,MAGENTA)
    VGAdriver2.fill_disk(480,240,100,CYAN)
    ###--- 四角 ---###
    VGAdriver2.fill_rect(80,80,310,400,RED)
    VGAdriver2.fill_rect(90,90,300,390,GREEN)
    VGAdriver2.fill_rect(100,100,290,380,BLUE)
    VGAdriver2.fill_rect(110,110,280,370,BLACK)
    VGAdriver2.fill_rect(120,120,270,360,YELLOW)
    VGAdriver2.fill_rect(130,130,260,350,MAGENTA)
    VGAdriver2.fill_rect(140,140,250,340,CYAN)
    ###--- 円 ---###
    VGAdriver2.draw_circle(480,240,230,RED)
    VGAdriver2.draw_circle(480,240,220,GREEN)
    VGAdriver2.draw_circle(480,240,210,BLUE)
    VGAdriver2.draw_circle(480,240,200,BLACK)
    VGAdriver2.draw_circle(480,240,190,YELLOW)
    VGAdriver2.draw_circle(480,240,180,MAGENTA)
    VGAdriver2.draw_circle(480,240,170,CYAN)
    ###--- 四角 ---###
    VGAdriver2.draw_rect(10,10,380,470,RED)
    VGAdriver2.draw_rect(20,20,370,460,GREEN)
    VGAdriver2.draw_rect(30,30,360,450,BLUE)
    VGAdriver2.draw_rect(40,40,350,440,BLACK)
    VGAdriver2.draw_rect(50,50,340,430,YELLOW)
    VGAdriver2.draw_rect(60,60,330,420,MAGENTA)
    VGAdriver2.draw_rect(70,70,320,410,CYAN)
    time.sleep(5)

def font():
    ###--- フォント12 ---###
    VGAdriver2.fill_screen(WHITE)
    VGAdriver2.draw_font12(50,60,RED,'!"#$%&')
    VGAdriver2.draw_font12(120,60,RED,"'()*+,-./")
    VGAdriver2.draw_font12(50,80,GREEN,"0123456789:;<=>?")
    VGAdriver2.draw_font12(50,100,BLUE,"@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_")
    VGAdriver2.draw_font12(50,120,BLACK,"abcdefghijklmnopqrstuvwxyz{|}~")
    ###--- フォント18 ---###
    VGAdriver2.draw_font18(50,175,MAGENTA,'!"#$%&')
    VGAdriver2.draw_font18(140,175,MAGENTA,"'()*+,-./")
    VGAdriver2.draw_font18(50,200,CYAN,"0123456789:;<=>?")
    VGAdriver2.draw_font18(50,225,RED,"@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_")
    VGAdriver2.draw_font18(50,250,GREEN,"abcdefghijklmnopqrstuvwxyz{|}~")
    ###--- フォント24 ---###
    VGAdriver2.draw_font24(50,320,BLUE,'!"#$%&')
    VGAdriver2.draw_font24(150,320,BLUE,"'()*+,-./")
    VGAdriver2.draw_font24(50,350,BLACK,"0123456789:;<=>?")
    VGAdriver2.draw_font24(50,380,MAGENTA,"@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_")
    VGAdriver2.draw_font24(50,410,CYAN,"abcdefghijklmnopqrstuvwxyz{|}~")
    time.sleep(5)
 
def color_bar(): 
    ###--- 垂直カラーバー　---##
    VGAdriver2.color_v_bar()
    time.sleep(5) 
 
    ###--- 水平カラーバー ---###
#     VGAdriver2.color_h_bar()
#     time.sleep(5)

def pinball():
    ###--- ピンボール ---###
    VGAdriver2.pin_ball()
