41 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			41 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
| 
								 | 
							
								package kha.graphics2;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import haxe.io.Bytes;
							 | 
						||
| 
								 | 
							
								import kha.Canvas;
							 | 
						||
| 
								 | 
							
								import kha.Color;
							 | 
						||
| 
								 | 
							
								import kha.graphics4.TextureFormat;
							 | 
						||
| 
								 | 
							
								import kha.graphics4.Usage;
							 | 
						||
| 
								 | 
							
								import kha.Image;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class Graphics1 implements kha.graphics1.Graphics {
							 | 
						||
| 
								 | 
							
									var canvas: Canvas;
							 | 
						||
| 
								 | 
							
									var texture: Image;
							 | 
						||
| 
								 | 
							
									var pixels: Bytes;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									public function new(canvas: Canvas) {
							 | 
						||
| 
								 | 
							
										this.canvas = canvas;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									public function begin(): Void {
							 | 
						||
| 
								 | 
							
										if (texture == null || (texture.realWidth != canvas.width || texture.realHeight != canvas.height)) {
							 | 
						||
| 
								 | 
							
											texture = Image.create(canvas.width, canvas.height, TextureFormat.RGBA32, Usage.ReadableUsage);
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
										pixels = texture.lock();
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									public function end(): Void {
							 | 
						||
| 
								 | 
							
										texture.unlock();
							 | 
						||
| 
								 | 
							
										canvas.g2.begin(false);
							 | 
						||
| 
								 | 
							
										canvas.g2.drawImage(texture, 0, 0);
							 | 
						||
| 
								 | 
							
										canvas.g2.end();
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									public function setPixel(x: Int, y: Int, color: Color): Void {
							 | 
						||
| 
								 | 
							
										#if (kha_html5 || kha_krom)
							 | 
						||
| 
								 | 
							
										pixels.setInt32(y * texture.stride + x * 4, Color.fromBytes(color.Bb, color.Gb, color.Rb, color.Ab));
							 | 
						||
| 
								 | 
							
										#else
							 | 
						||
| 
								 | 
							
										pixels.setInt32(y * texture.stride + x * 4, color);
							 | 
						||
| 
								 | 
							
										#end
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 |