godking.DirectX11 绘图库

光庆 19小时前 39

import win.ui;
/*DSG{{*/
var winform = win.form(text="godking.DirectX11 演示程序 ";right=671;bottom=543)
winform.add(
custom={cls="custom";text="自定义控件";left=8;top=8;right=664;bottom=536;border=1;db=1;dl=1;dr=1;dt=1;z=1}
)
/*}}*/

/**
//使用 FontAwesome 字体,必须使用 _FR_NOT_ENUM 参数才能被dx11识别到字体。
var fontPath = ..io.appData("aardio/std/FontAwesome4.7.ttf",$"~/lib/fonts/.res/FontAwesome.ttf")
if( ::Gdi32.AddFontResourceEx( fontPath,0x20 /*_FR_NOT_ENUM*/,0 ) ) {
	::PostMessage( 0xFFFF/*_HWND_BROADCAST*/,0x1D/*_WM_FONTCHANGE*/,0,0); 
}
**/

import godking.DirectX11;
var dx = godking.DirectX11(winform.custom);
var hgif = dx.loadImage("\test.gif");
var hpng = dx.loadImage("\test.png");
var hpngs = dx.loadImageSequence({
	"\a.png";
	"\b.png";
	"\c.png";
	"\d.png";
	"\e.png";
},100);
var left = -150;
winform.setInterval( 
	function(){
		left++;
		if left >dx.originalWidth {
			left = -150;
		}
		dx.beginBatch();
		dx.fillPolygon({10,10,300,10,10,300},0xFFF5DEB3);		
		dx.drawPolygon({10,10,300,10,10,300});	
		var sv = math.abs((left%50-25)/25);	//设置缩放
		dx.setScale(sv,sv,175,75);	
		dx.drawImage(hpng,100,0,150,150);
		dx.resetScale(); //取消缩放
		dx.fillRect(50,left*2,50,50,0xFF4000FF);
		dx.setRotation(left*5,left+25,150+25); //设置旋转
		dx.fillRoundRect(left,150,50,50,10,10,0xFFFF0000);
		dx.resetRotation(); //取消旋转,因为与下次setRotation之间没有绘图指令,所以此处可以省略
		dx.setRotation(left,250,185); //设置旋转
		dx.drawCircle(200,160,100,50,0,0xFF8B008B,5);
		dx.fillCircle(210,170,80,30,0x888B008B);
		dx.fillCircle(200,100,30,30,0x888B008B);
		dx.resetRotation(); //取消旋转
		dx.drawLine(0,0,left,500,1,0xFF00FF00,2);
		dx.drawLine(0,0,left+300,500,1,0xFF00FF00,2);
		dx.drawImage(hgif,left+100,300,150,150,1);
		dx.drawImage(hpngs,left,300,150,150,1);
		dx.drawText(left+40,450,"我当前的x坐标是:"++left,"宋体",16,0,color);
		dx.fillRoundRect(280,20,350,80,40,40,0xFF7B68EE);
		dx.drawText(280,18,'godking.DirectX11\n演示程序',"黑体",30,2/*斜体*/,0xAAFFFFFF,350,80,1,1);
		dx.drawText(405,155,'\uF029',"FontAwesome",150,1/*粗体*/ ,0x55000000);
		dx.drawText(400,150,'\uF029',"FontAwesome",150,1/*粗体*/ ,0xFF14B383);
		var path = dx.path() //创建路径
		path.moveTo(0,dx.originalHeight);
		path.bezierTo(100,0,dx.originalWidth-100,dx.originalHeight,dx.originalWidth,0);
		path.lineTo(dx.originalWidth,dx.originalHeight);
		path.fill(0x33ADFF2F); //填充路径
		dx.drawBezier({0,dx.originalHeight,100,0,dx.originalWidth-100,dx.originalHeight,dx.originalWidth,0},0,0x55A0522D,50);
		dx.endBatch();
	},10
)
winform.show();
winform.custom.adjust = function( cx,cy,wParam ) {	 
	dx.setPosition(0,0,cx,cy);
};
win.loopMessage();


最新回复 (2)
  • 近我者赤 16小时前
    0 2

    很好很强大,坐等库上线

  • 光庆 15分钟前
    0 3
    近我者赤 很好很强大,坐等库上线
    库已上传,请下载测试。
返回