コード例 #1
0
 protected void MasterTick(object sender, EventArgs e)
 {
     deltaTime      = (double)DateTime.Now.Millisecond * 0.001 + (double)DateTime.Now.Second - totalTime;
     totalTime      = (double)DateTime.Now.Millisecond * 0.001 + (double)DateTime.Now.Second;
     TitleText.Text = Title + "FPS: " + (uint)(1 / deltaTime);
     SakuraCore.TickSakuraCore(deltaTime);
 }
コード例 #2
0
ファイル: StringSet.xaml.cs プロジェクト: SaeruHikari/Sakura
        public void Initialize(SakuraCore.SPropertyData property)
        {
            PropertyData   = property;
            ParamName.Text = property.PropName;
            string val = SakuraCore.GetStringProp(property.SObject, property.PropName, property.SourceType);

            ValueBox.Text = val;
        }
コード例 #3
0
 public void Initialize(SakuraCore.SPropertyData property)
 {
     PropertyData   = property;
     ParamName.Text = property.PropName;
     SakuraCore.SVector val;
     SakuraCore.GetSVectorProp(property.SObject, property.PropName, out val, property.SourceType);
     ValueBoxX.Text = val.x.ToString();
     ValueBoxY.Text = val.y.ToString();
     ValueBoxZ.Text = val.z.ToString();
 }
コード例 #4
0
ファイル: SceneView.xaml.cs プロジェクト: SaeruHikari/Sakura
 public void InitializeSceneView()
 {
     SceneRootNode = SakuraCore.GetSceneNode(IntPtr.Zero);
     ActiveNode = SakuraCore.GetSceneNode(IntPtr.Zero);
     SakuraCore.GetObjectProperties(SceneRootNode);
     List<SceneNodeProp> itemList = new List<SceneNodeProp>();
     RootProp = new SceneNodeProp(SceneRootNode);
     itemList.Add(RootProp);
     SceneViewTree.ItemsSource = itemList;
 }
コード例 #5
0
ファイル: DetailView.xaml.cs プロジェクト: SaeruHikari/Sakura
        public ISPropertyInterface RegistSubMember(SakuraCore.SPropertyData submem)
        {
            ISPropertyInterface newset = new DetailView();
            IntPtr memobj;

            SakuraCore.GetSubmemberProp(ActiveNode, submem.PropName, out memobj, submem.SourceType);
            if (memobj != IntPtr.Zero)
            {
                (newset as DetailView).RefreshActiveNode(memobj);
            }
            return(newset);
        }
コード例 #6
0
ファイル: DetailView.xaml.cs プロジェクト: SaeruHikari/Sakura
        public void RegistNewSetter(SakuraCore.SPropertyData property)
        {
            ISPropertyInterface newset;

            switch (property.PropType)
            {
            case "bool":
            {
                newset = new BoolSwitch() as ISPropertyInterface; break;
            }

            case "float":
            {
                newset = new FloatSet() as ISPropertyInterface; break;
            }

            case "const SVector&":
            case "SVector":
            case "structSakuraMath::SVector":
            {
                newset = new SVectorSet() as ISPropertyInterface; break;
            }

            case "const std::string&":
            case "std::string":
            case "string":
            case "std:string":
            {
                newset = new StringSet() as ISPropertyInterface; break;
            }

            default:
            {
                // Containers
                if (SakuraCore.PropIsContainer(property))
                {
                    RegistContainer(property);
                    return;
                }
                else
                {
                    //
                    newset = RegistSubMember(property);
                    break;
                }
            }
            }
            newset.Initialize(property);
            PropertySetters.Add(newset);
            DetailsDock.Children.Add(newset as UserControl);
            (newset as UserControl).SetValue(DockPanel.DockProperty, Dock.Top);
        }
コード例 #7
0
ファイル: DetailView.xaml.cs プロジェクト: SaeruHikari/Sakura
        public void RefreshActiveNode(IntPtr NewNode)
        {
            ActiveNode          = NewNode;
            SceneViewTab.Header = SakuraCore.GetStringProp(NewNode, "Name");
            var props = SakuraCore.GetObjectProperties(NewNode);

            PropertySetters.Clear();
            DetailsDock.Children.Clear();
            foreach (var prop in props)
            {
                RegistNewSetter(prop);
            }
        }
コード例 #8
0
 private void MenuItem_Click(object sender, RoutedEventArgs e)
 {
     if (!bInitialized)
     {
         bInitialized = true;
         SakuraCore.CreateSakuraCore((uint)CORE_GRAPHICS_API_CONF.SAKURA_DRAW_WITH_D3D12);
         MainViewPort.BorderStyle = BorderStyle.None;
         viewportHost.Child       = MainViewPort;
         IntPtr Hwnd = MainViewPort.Handle;
         SakuraCore.InitSakuraGraphicsCore(Hwnd, (uint)MainViewPort.Width, (uint)MainViewPort.Height);
         sceneView.InitializeSceneView();
         SakuraCore.Run();
     }
 }
コード例 #9
0
 public void UpdateValue()
 {
     try
     {
         SakuraCore.SVector val = new SakuraCore.SVector();
         val.x = float.Parse(ValueBoxX.Text);
         val.y = float.Parse(ValueBoxY.Text);
         val.z = float.Parse(ValueBoxZ.Text);
         SakuraCore.SetSVectorProp(PropertyData.SObject, PropertyData.PropName, val);
     }
     catch
     {
     }
 }
コード例 #10
0
ファイル: SceneView.xaml.cs プロジェクト: SaeruHikari/Sakura
 public SceneNodeProp(IntPtr node)
 {
     SceneNode = node;
     DisplayName = SakuraCore.GetStringProp(SceneNode, "Name");
     Children = new List<SceneNodeProp>();
     if (node != null)
     {
        for(uint i = 0; i < SakuraCore.GetChildrenNum(SceneNode); i++)
        {
             IntPtr cd = SakuraCore.GetSceneNode(SceneNode, i);
             var childNode = new SceneNodeProp(cd);
             Children.Add(childNode);
        }
     }
 }
コード例 #11
0
 private void ExitButton_Click(object sender, RoutedEventArgs e)
 {
     SakuraCore.ShutDown();
     SakuraWPF.App.Current.Shutdown();
 }