Files
LNXSDK/leenkx/Sources/leenkx/logicnode/DrawVideoNode.hx
2025-01-22 16:18:30 +01:00

54 lines
1.2 KiB
Haxe

package leenkx.logicnode;
import iron.math.Vec4;
#if js
#if !krom
import kha.Video;
#end
#end
import kha.Color;
import leenkx.renderpath.RenderToTexture;
class DrawVideoNode extends LogicNode {
var vidName: Dynamic;
var lastVidName = "";
public function new(tree: LogicTree) {
super(tree);
}
override function run(from: Int) {
RenderToTexture.ensure2DContext("DrawImageNode");
var vidData: Dynamic = inputs[1].get();
#if js
#if !krom
//var video = kha.js.Video.fromElement(vidData);
var video = vidData;
final colorVec: Vec4 = inputs[2].get();
final anchorH: Int = inputs[3].get();
final anchorV: Int = inputs[4].get();
final x: Float = inputs[5].get();
final y: Float = inputs[6].get();
final width: Float = inputs[7].get();
final height: Float = inputs[8].get();
final angle: Float = inputs[9].get();
final drawx = x - 0.5 * width * anchorH;
final drawy = y - 0.5 * height * anchorV;
RenderToTexture.g.rotate(angle, x, y);
RenderToTexture.g.color = Color.fromFloats(colorVec.x, colorVec.y, colorVec.z, colorVec.w);
RenderToTexture.g.drawVideo(video, drawx, drawy, width, height);
//RenderToTexture.g.rotate(-angle, x, y);
runOutput(0);
#end
#end
}
}