
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();