Cells are now drawn
This commit is contained in:
		
							parent
							
								
									11cab091dc
								
							
						
					
					
						commit
						d739c0a6ed
					
				| @ -30,10 +30,10 @@ func (application *Application) Run (callback func (application *Application)) { | |||||||
| 
 | 
 | ||||||
| 	// TODO: load these from a file | 	// TODO: load these from a file | ||||||
| 	application.config.colors = [4]color.Color { | 	application.config.colors = [4]color.Color { | ||||||
| 		color.RGBA { R: 0x00, G: 0x00, B: 0x00, A: 0xFF }, | 		color.RGBA { R: 0x81, G: 0xA1, B: 0xC1, A: 0xFF }, | ||||||
| 		color.RGBA { R: 0xFF, G: 0xFF, B: 0xFF, A: 0xFF }, | 		color.RGBA { R: 0x4C, G: 0x56, B: 0x6A, A: 0xFF }, | ||||||
| 		color.RGBA { R: 0x00, G: 0x00, B: 0x00, A: 0xFF }, | 		color.RGBA { R: 0xD8, G: 0xDE, B: 0xE9, A: 0xFF }, | ||||||
| 		color.RGBA { R: 0xFF, G: 0xFF, B: 0xFF, A: 0xFF }, | 		color.RGBA { R: 0x2B, G: 0x30, B: 0x3C, A: 0xFF }, | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// TODO: instead, return the error | 	// TODO: instead, return the error | ||||||
|  | |||||||
| @ -1,9 +1,9 @@ | |||||||
| package pixel | package pixel | ||||||
| 
 | 
 | ||||||
| import "fmt" |  | ||||||
| import "time" | import "time" | ||||||
| import "golang.org/x/image/font" | import "golang.org/x/image/font" | ||||||
| import "github.com/faiface/pixel" | import "github.com/faiface/pixel" | ||||||
|  | import "github.com/faiface/pixel/text" | ||||||
| import "github.com/faiface/pixel/imdraw" | import "github.com/faiface/pixel/imdraw" | ||||||
| import "github.com/faiface/pixel/pixelgl" | import "github.com/faiface/pixel/pixelgl" | ||||||
| import "golang.org/x/image/font/basicfont" | import "golang.org/x/image/font/basicfont" | ||||||
| @ -17,6 +17,8 @@ type Backend struct { | |||||||
| 	application       *stone.Application | 	application       *stone.Application | ||||||
| 	config            *stone.Config | 	config            *stone.Config | ||||||
| 	backgroundStamper *imdraw.IMDraw | 	backgroundStamper *imdraw.IMDraw | ||||||
|  | 	fontAtlas         *text.Atlas | ||||||
|  | 	textDrawer        *text.Text | ||||||
| 
 | 
 | ||||||
| 	metrics struct { | 	metrics struct { | ||||||
| 		cellWidth  int | 		cellWidth  int | ||||||
| @ -51,6 +53,8 @@ func (backend *Backend) Run (callback func (application *stone.Application)) { | |||||||
| 			Bounds:      backend.calculateWindowSize(), | 			Bounds:      backend.calculateWindowSize(), | ||||||
| 		}) | 		}) | ||||||
| 		backend.backgroundStamper = imdraw.New(nil) | 		backend.backgroundStamper = imdraw.New(nil) | ||||||
|  | 		backend.fontAtlas = text.NewAtlas(backend.fontFace, text.ASCII) | ||||||
|  | 		backend.textDrawer = text.New(pixel.V(0, 0), backend.fontAtlas) | ||||||
| 		backend.Poll() | 		backend.Poll() | ||||||
| 		 | 		 | ||||||
| 		if err != nil { panic(err.Error()) } | 		if err != nil { panic(err.Error()) } | ||||||
| @ -150,20 +154,21 @@ func (backend *Backend) draw () { | |||||||
| 		backend.backgroundStamper.Draw(backend.window) | 		backend.backgroundStamper.Draw(backend.window) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// TODO: draw dirty cells. | 	backend.textDrawer.Clear() | ||||||
| 	for x := 0; x < width; x ++ { | 	for x := 0; x < width; x ++ { | ||||||
| 		for y := 0; y < height; y ++ { | 		for y := 0; y < height; y ++ { | ||||||
| 			clean := backend.application.Clean(x, y) | 			clean := backend.application.Clean(x, y) | ||||||
| 			// cell  := application.content[index] |  | ||||||
| 			if clean { continue } | 			if clean { continue } | ||||||
| 			backend.application.MarkClean(x, y) | 			backend.application.MarkClean(x, y) | ||||||
| 
 | 
 | ||||||
| 			// draw cell |  | ||||||
| 			cell := backend.application.Cell(x, y) | 			cell := backend.application.Cell(x, y) | ||||||
| 			content := cell.Rune() | 			content := cell.Rune() | ||||||
| 			if content < 32 { continue } | 			if content < 32 { continue } | ||||||
| 			fmt.Println(content) |  | ||||||
| 			 | 			 | ||||||
|  | 			//  draw cell | ||||||
|  | 			backend.textDrawer.Dot = backend.vectorAtPosition(x, y) | ||||||
|  | 			backend.textDrawer.WriteRune(content) | ||||||
|  | 			backend.textDrawer.Draw(backend.window, pixel.IM) | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -9,7 +9,7 @@ func main () { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func run (application *stone.Application) { | func run (application *stone.Application) { | ||||||
| 	for application.Await(0) { | 	for { | ||||||
| 		if application.Resized() { | 		if application.Resized() { | ||||||
| 			application.SetRune(0, 0, 'h') | 			application.SetRune(0, 0, 'h') | ||||||
| 			application.SetRune(1, 0, 'e') | 			application.SetRune(1, 0, 'e') | ||||||
| @ -23,5 +23,7 @@ func run (application *stone.Application) { | |||||||
| 			application.SetRune(4, 4, ':') | 			application.SetRune(4, 4, ':') | ||||||
| 			application.SetRune(5, 4, '3') | 			application.SetRune(5, 4, '3') | ||||||
| 		} | 		} | ||||||
|  | 		 | ||||||
|  | 		if !application.Await(0) { break } | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user