Files
stgsharp/源代码/StgSharpDebug/Test/Program.cs
T

101 lines
2.8 KiB
C#

//using StgSharp.Environment.Win32;
using StgSharp.Geometries;
using StgSharp.Graphics;
using StgSharp.Logic;
using StgSharp.Math;
using System;
using System.Runtime.CompilerServices;
namespace StgSharp
{
public class StgSharpDemoForm : ViewModelBase
{
public StgSharpDemoForm(int frameSpeed) : base(frameSpeed)
{
}
public StgSharpDemoForm(ViewPort vp, int frameSpeed) : base(vp, frameSpeed)
{
}
public void Beep()
{
if (CurrentFrameCount%60==0)
{
Console.Beep();
}
}
//[RenderActivity(RenderPriority.Pre_1)]
public void NoOp()
{
int a = 1;
}
}
internal static class Program
{
internal static unsafe void Main(string[] args)
{
try
{
//StgSharp.TryCreatWindow();
/**/
StgSharp.Init();
StgSharp.InitGL(4, 6);
StgSharp.GlobalSetting.VSyncActivated = false;
ViewPort vp = new ViewPort(
name: "Hello, Stg#!",
size: (800,600),
monitor: IntPtr.Zero
);
StgSharpDemoForm demoForm = new StgSharpDemoForm(vp,60);
View v = demoForm.BuildNewView(null, (1,1,1));
var stream = demoForm.BuildRenderStream
//<MainRenderStream>
//<ParticleStream>
<fboFrame>
(v, (1,1,1));
var rstream = RenderStream.ShareContextWith
<fboFrame,ParticleStream>(stream);
Console.WriteLine(1);
Blueprint blueprint = new Blueprint();
BlueprintNode node0 = new BlueprintNode("BufferGenerateStream", rstream);
BlueprintNode node1 = new BlueprintNode("MainRenderStream",stream);
node0.AddAfter(blueprint.BeginLayer,
"input_1", "input_1");
node0.AddBefore(node1,
"output_1", "TextureInput");
node1.AddBefore(blueprint.EndLayer,
"Output", "output_1");
blueprint.AddNativeNode(node0);
blueprint.AddNativeNode(node1);
blueprint.Init(0);
Console.WriteLine(2);
demoForm.RenderLogic = blueprint;
demoForm.Show();
StgSharp.Terminate();
/**/
}
catch (Exception ex)
{
Console.WriteLine(ex.Message + "\n" + ex.StackTrace);
InternalIO.InternalWriteLog(
ex.Message + "\n" + ex.StackTrace,
LogType.Error);
}
}
}
}