DrawTriangle function
Monkey Forums/Monkey Programming/DrawTriangle function| 
 | ||
| Hi everyone I am aware of DrawPoly function which accepts a float[] but I would like to avoid creating a float[] instance each time the function is called. My primary target is the Xbox at the moment so I really have to avoid creating garbage. As Floats and Ints are managed, it is not a problem to use them. With this in mind, I would like to use a function as follows.. [monkeycode]Function DrawTriangle:Void(X1#,Y1#,X2#,Y2#,X3#,Y3#) ' Basically the same as the draw poly code, but using floats not an array of floats End[/monkeycode] I'm not so sure how to implement such a thing though... I've found the XNA version of the DrawPoly function and edited a copy to create my DrawTriangle function... public virtual int DrawTriangle( float x1, float y1, float x2, float y2, float x3, float y3 ){
	int n = 3;
	
	Flush();
	primType=5;
	primSurf=null;
	float px;
	float py;
	
	px=x1;
	py=y1;
	
	if( tformed ){
		float ppx=px;
		px=ppx * ix + py * jx + tx;
		py=ppx * iy + py * jy + ty;
	}
	
	vertices[0].Position.X=px;vertices[0].Position.Y=py;
	vertices[0].Color=color;
	
	px=x2;
	py=y2;
	
	if( tformed ){
		float ppx=px;
		px=ppx * ix + py * jx + tx;
		py=ppx * iy + py * jy + ty;
	}
	
	vertices[1].Position.X=px;vertices[1].Position.Y=py;
	vertices[1].Color=color;
	
	px=x3;
	py=y3;
	
	if( tformed ){
		float ppx=px;
		px=ppx * ix + py * jx + tx;
		py=ppx * iy + py * jy + ty;
	}
	
	vertices[2].Position.X=px;vertices[2].Position.Y=py;
	vertices[2].Color=color;
	primCount=n;
	
	Flush();
	
	return 0;
}
But I am unsure as to how to make use of this function from within Monkey.. ? Is it easy to explain? Ta :) | 
| 
 | ||
| I did some digging and was surprised with how easy it was. I guess that's a testament to the way Monkey does things :) |