mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 16:42:44 +00:00 
			
		
		
		
	 9121cc7cae
			
		
	
	
		9121cc7cae
		
	
	
	
	
		
			
			This requires an implementation of the "text preparation algorithm" as specified here: html.spec.whatwg.org/multipage/canvas.html#text-preparation-algorithm However, we're missing a lot of things such as the CanvasTextDrawingStyles interface, so most of the algorithm was not implemented. Additionally, we also are not able to use a LineBox like the algorithm suggests, because our layouting infra is not up to the task yet. The prepare_text function does nothing other than figuring out the width of the given text and return glyphs with offsets at the moment.
		
			
				
	
	
		
			42 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| interface CanvasRenderingContext2D {
 | |
| 
 | |
|     undefined fillRect(double x, double y, double w, double h);
 | |
|     undefined strokeRect(double x, double y, double w, double h);
 | |
|     undefined clearRect(double x, double y, double w, double h);
 | |
| 
 | |
|     undefined scale(double x, double y);
 | |
|     undefined translate(double x, double y);
 | |
|     undefined rotate(double radians);
 | |
| 
 | |
|     undefined beginPath();
 | |
|     undefined closePath();
 | |
|     undefined fill(optional DOMString fillRule = "nonzero");
 | |
|     undefined stroke();
 | |
|     undefined moveTo(double x, double y);
 | |
|     undefined lineTo(double x, double y);
 | |
|     undefined quadraticCurveTo(double cpx, double cpy, double x, double y);
 | |
| 
 | |
|     undefined arc(double x, double y, double radius, double startAngle, double endAngle, optional boolean counterclockwise = false);
 | |
|     undefined ellipse(double x, double y, double radiusX, double radiusY, double rotation, double startAngle, double endAngle, optional boolean counterclockwise = false);
 | |
|     undefined rect(double x, double y, double width, double height);
 | |
| 
 | |
|     undefined fillText(DOMString text, double x, double y, optional double maxWidth);
 | |
| 
 | |
|     undefined drawImage(HTMLImageElement image, double dx, double dy);
 | |
| 
 | |
|     attribute DOMString fillStyle;
 | |
|     attribute DOMString strokeStyle;
 | |
|     attribute double lineWidth;
 | |
| 
 | |
|     ImageData createImageData(double sw, double sh);
 | |
|     undefined putImageData(ImageData imagedata, double dx, double dy);
 | |
| 
 | |
|     undefined save();
 | |
|     undefined restore();
 | |
|     undefined reset();
 | |
|     boolean isContextLost();
 | |
| 
 | |
|     readonly attribute HTMLCanvasElement canvas;
 | |
| 
 | |
|     TextMetrics measureText(DOMString text);
 | |
| };
 |