Couple more tests and operators
This commit is contained in:
		
							parent
							
								
									a073e45eba
								
							
						
					
					
						commit
						3b558229c1
					
				
							
								
								
									
										63
									
								
								pdf.js
									
									
									
									
									
								
							
							
						
						
									
										63
									
								
								pdf.js
									
									
									
									
									
								
							| @ -663,6 +663,8 @@ var Interpreter = (function() { | |||||||
|                 params: [ ] }, |                 params: [ ] }, | ||||||
|         "Q" : { fn: "restore", |         "Q" : { fn: "restore", | ||||||
|                 params: [ ] }, |                 params: [ ] }, | ||||||
|  |         "cm": { fn: "transform", | ||||||
|  |                 params: [ "Num", "Num", "Num", "Num", "Num", "Num" ] }, | ||||||
|         // Path
 |         // Path
 | ||||||
|         "m" : { fn: "moveTo", |         "m" : { fn: "moveTo", | ||||||
|                 params: [ "Num", "Num" ] }, |                 params: [ "Num", "Num" ] }, | ||||||
| @ -670,10 +672,14 @@ var Interpreter = (function() { | |||||||
|                 params: [ "Num", "Num" ] }, |                 params: [ "Num", "Num" ] }, | ||||||
|         "c" : { fn: "curveTo", |         "c" : { fn: "curveTo", | ||||||
|                 params: [ "Num", "Num", "Num", "Num", "Num", "Num" ] }, |                 params: [ "Num", "Num", "Num", "Num", "Num", "Num" ] }, | ||||||
|  |         "h" : { fn: "closePath", | ||||||
|  |                 params: [ ] }, | ||||||
|         "re": { fn: "rectangle", |         "re": { fn: "rectangle", | ||||||
|                 params: [ "Num", "Num", "Num", "Num" ] }, |                 params: [ "Num", "Num", "Num", "Num" ] }, | ||||||
|         "S" : { fn: "stroke", |         "S" : { fn: "stroke", | ||||||
|                 params: [ ] }, |                 params: [ ] }, | ||||||
|  |         "f" : { fn: "fill", | ||||||
|  |                 params: [ ] }, | ||||||
|         "B" : { fn: "fillStroke", |         "B" : { fn: "fillStroke", | ||||||
|                 params: [ ] }, |                 params: [ ] }, | ||||||
|         "b" : { fn: "closeFillStroke", |         "b" : { fn: "closeFillStroke", | ||||||
| @ -779,6 +785,10 @@ var EchoGraphics = (function() { | |||||||
|         restore: function() { |         restore: function() { | ||||||
|             this.printdentln("Q"); |             this.printdentln("Q"); | ||||||
|         }, |         }, | ||||||
|  |         transform: function(a, b, c, d, e, f) { | ||||||
|  |             this.printdentln(""+ a +" "+ b +" "+ c + | ||||||
|  |                              " "+d +" "+ e +" "+ f + " cm"); | ||||||
|  |         }, | ||||||
| 
 | 
 | ||||||
|         // Path
 |         // Path
 | ||||||
|         moveTo: function(x, y) { |         moveTo: function(x, y) { | ||||||
| @ -792,12 +802,18 @@ var EchoGraphics = (function() { | |||||||
|                              " "+ x2 +" "+ y2 + |                              " "+ x2 +" "+ y2 + | ||||||
|                              " "+ x3 +" "+ y3 + " c"); |                              " "+ x3 +" "+ y3 + " c"); | ||||||
|         }, |         }, | ||||||
|  |         closePath: function() { | ||||||
|  |             this.printdentln("h"); | ||||||
|  |         }, | ||||||
|         rectangle: function(x, y, width, height) { |         rectangle: function(x, y, width, height) { | ||||||
|             this.printdentln(""+ x +" "+ y + " "+ width +" "+ height +" re"); |             this.printdentln(""+ x +" "+ y + " "+ width +" "+ height +" re"); | ||||||
|         }, |         }, | ||||||
|         stroke: function() { |         stroke: function() { | ||||||
|             this.printdentln("S"); |             this.printdentln("S"); | ||||||
|         }, |         }, | ||||||
|  |         fill: function() { | ||||||
|  |             this.printdentln("f"); | ||||||
|  |         }, | ||||||
|         fillStroke: function() { |         fillStroke: function() { | ||||||
|             this.printdentln("B"); |             this.printdentln("B"); | ||||||
|         }, |         }, | ||||||
| @ -925,15 +941,16 @@ var CanvasGraphics = (function() { | |||||||
|         }, |         }, | ||||||
|         save: function() { |         save: function() { | ||||||
|             this.ctx.save(); |             this.ctx.save(); | ||||||
|             this.stateStack.push(this.current); |             //this.stateStack.push(this.current);
 | ||||||
|             // ????
 |             //this.current = new CanvasGraphicsState(this.ctx, hdpi, vdpi, pageBox);
 | ||||||
|             this.current = new CanvasGraphicsState(this.ctx, |  | ||||||
|                                                    hdpi, vdpi, pageBox); |  | ||||||
|         }, |         }, | ||||||
|         restore: function() { |         restore: function() { | ||||||
|             this.current = this.stateStack.pop(); |             //this.current = this.stateStack.pop();
 | ||||||
|             this.ctx.restore(); |             this.ctx.restore(); | ||||||
|         }, |         }, | ||||||
|  |         transform: function(a, b, c, d, e, f) { | ||||||
|  |             this.ctx.transform(a, b, c, d, e, f); | ||||||
|  |         }, | ||||||
| 
 | 
 | ||||||
|         // Path
 |         // Path
 | ||||||
|         moveTo: function(x, y) { |         moveTo: function(x, y) { | ||||||
| @ -945,6 +962,9 @@ var CanvasGraphics = (function() { | |||||||
|         curveTo: function(x1, y1, x2, y2, x3, y3) { |         curveTo: function(x1, y1, x2, y2, x3, y3) { | ||||||
|             this.ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3); |             this.ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3); | ||||||
|         }, |         }, | ||||||
|  |         closePath: function() { | ||||||
|  |             this.ctx.closePath(); | ||||||
|  |         }, | ||||||
|         rectangle: function(x, y, width, height) { |         rectangle: function(x, y, width, height) { | ||||||
|             this.ctx.rect(x, y, width, height); |             this.ctx.rect(x, y, width, height); | ||||||
|         }, |         }, | ||||||
| @ -952,6 +972,10 @@ var CanvasGraphics = (function() { | |||||||
|             this.ctx.stroke(); |             this.ctx.stroke(); | ||||||
|             this.consumePath(); |             this.consumePath(); | ||||||
|         }, |         }, | ||||||
|  |         fill: function() { | ||||||
|  |             this.ctx.fill(); | ||||||
|  |             this.consumePath(); | ||||||
|  |         }, | ||||||
|         fillStroke: function() { |         fillStroke: function() { | ||||||
|             this.ctx.fill(); |             this.ctx.fill(); | ||||||
|             this.ctx.stroke(); |             this.ctx.stroke(); | ||||||
| @ -1076,8 +1100,37 @@ var tests = [ | |||||||
|           eof() |           eof() | ||||||
|       ] |       ] | ||||||
|     }, |     }, | ||||||
|  |     { name: "Heart", | ||||||
|  |       objs: [ | ||||||
|  |           cmd("q"), | ||||||
|  |           real(0.9), real(0.0), real(0.0), cmd("rg"), | ||||||
|  |           int(75), int(40), cmd("m"), | ||||||
|  |           int(75), int(37), int(70), int(25), int(50), int(25), cmd("c"), | ||||||
|  |           int(20), int(25), int(20), real(62.5), int(20), real(62.5), cmd("c"), | ||||||
|  |           int(20), int(80), int(40), int(102), int(75), int(120), cmd("c"), | ||||||
|  |           int(110), int(102), int(130), int(80), int(130), real(62.5), cmd("c"), | ||||||
|  |           int(130), real(62.5), int(130), int(25), int(100), int(25), cmd("c"), | ||||||
|  |           int(85), int(25), int(75), int(37), int(75), int(40), cmd("c"), | ||||||
|  |           cmd("f"), | ||||||
|  |           cmd("Q"), | ||||||
|  |           eof() | ||||||
|  |       ] | ||||||
|  |     }, | ||||||
|  |     { name: "Rectangle", | ||||||
|  |       objs: [ | ||||||
|  |           int(1), int(0), int(0), int(1), int(80), int(80), cmd("cm"), | ||||||
|  |           int(0), int(72), cmd("m"), | ||||||
|  |           int(72), int(0), cmd("l"), | ||||||
|  |           int(0), int(-72), cmd("l"), | ||||||
|  |           int(-72), int(0), cmd("l"), | ||||||
|  |           int(4), cmd("w"), | ||||||
|  |           cmd("h"), cmd("S"), | ||||||
|  |           eof() | ||||||
|  |      ] | ||||||
|  |     }, | ||||||
| ]; | ]; | ||||||
| 
 | 
 | ||||||
|  |      | ||||||
| function runEchoTests() { | function runEchoTests() { | ||||||
|     tests.forEach(function(test) { |     tests.forEach(function(test) { | ||||||
|         putstr("Running echo test '"+ test.name +"'... "); |         putstr("Running echo test '"+ test.name +"'... "); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user