Esempio n. 1
0
        static void Main(string[] args)
        {
            Ag.initialize();
            Aardvark.Base.Aardvark.Init();

            using (var app = new OpenGlApplication())
            {
                var win = app.CreateSimpleRenderWindow(1);

                var view        = CameraView.LookAt(new V3d(2.0, 2.0, 2.0), V3d.Zero, V3d.OOI);
                var perspective =
                    win.Sizes.Select(s => FrustumModule.perspective(60.0, 0.1, 10.0, ((float)s.X / (float)s.Y)));


                var viewTrafo = DefaultCameraController.control(win.Mouse, win.Keyboard, win.Time, view);

                var index     = new[] { 0, 1, 2, 0, 2, 3 };
                var positions = new[] { new V3f(-1, -1, 0), new V3f(1, -1, 0), new V3f(1, 1, 0), new V3f(-1, 1, 0) };

                var attributes = new SymbolDict <Array>()
                {
                    { DefaultSemantic.Positions, positions }
                };

                var quad = new IndexedGeometry(IndexedGeometryMode.TriangleList,
                                               (Array)index,
                                               attributes,
                                               new SymbolDict <Object>());

                var quadSg = quad.ToSg();

                // This is one of the hardest parts in C#. Our FShade interface is rather generic and
                // works super awesome in F#. In C# however, without proper type inference doing simple function
                // calls suddenly requires a Phd in CS. Therefore, and especially since shaders cannot be written
                // in C# anyways, write application setup and shader code in F# ;)
                // Or don't use FShade. FShade simply does not work in without functional language
                // features such as type inference and function currying.
                Func <DefaultSurfaces.Vertex, FSharpExpr <V4d> > whiteShader =
                    HighFun.ApplyArg0 <C4f, DefaultSurfaces.Vertex, FSharpExpr <V4d> >(
                        DefaultSurfaces.constantColor, C4f.White);
                Func <DefaultSurfaces.Vertex, FSharpExpr <DefaultSurfaces.Vertex> > trafo = c => DefaultSurfaces.trafo(c);

                var sg =
                    quadSg
                    .WithEffects(new[] {
                    FShadeSceneGraph.toEffect(FSharpFuncUtil.Create(trafo)),
                    FShadeSceneGraph.toEffect(FSharpFuncUtil.Create(whiteShader)),
                })
                    .ViewTrafo(viewTrafo.Select(t => t.ViewTrafo))
                    .ProjTrafo(perspective.Select(t => t.ProjTrafo()));

                var task = app.Runtime.CompileRender(win.FramebufferSignature, sg);

                win.RenderTask = DefaultOverlays.withStatistics(task);
                win.Run();
            }
        }
Esempio n. 2
0
        static IModRef <BackendConfiguration> SetScene(IRenderControl win)
        {
            var view        = CameraView.LookAt(new V3d(2.0, 2.0, 2.0), V3d.Zero, V3d.OOI);
            var perspective =
                win.Sizes.Select(s => FrustumModule.perspective(60.0, 0.1, 10.0, ((float)s.X / (float)s.Y)));


            var viewTrafo = DefaultCameraController.control(win.Mouse, win.Keyboard, win.Time, view);

            var index     = new[] { 0, 1, 2, 0, 2, 3 };
            var positions = new[] { new V3f(-1, -1, 0), new V3f(1, -1, 0), new V3f(1, 1, 0), new V3f(-1, 1, 0) };

            var attributes = new SymbolDict <Array>()
            {
                { DefaultSemantic.Positions, positions }
            };

            var quad = new IndexedGeometry(IndexedGeometryMode.TriangleList,
                                           (Array)index,
                                           attributes,
                                           new SymbolDict <Object>());

            var quadSg = quad.ToSg();

            var whiteShader = Effects.ConstantColor.Effect(C4f.White);

            var trafo = Effects.Trafo.Effect;

            var sg =
                quadSg
                .WithEffects(new[] { trafo, whiteShader })
                .ViewTrafo(viewTrafo.Select(t => t.ViewTrafo))
                .ProjTrafo(perspective.Select(t => t.ProjTrafo()));

            var config = new ModRef <BackendConfiguration>(BackendConfigurationModule.UnmanagedOptimized);
            var task   = ((Aardvark.Rendering.GL.Runtime)win.Runtime).CompileRender(win.FramebufferSignature, config, Aardvark.SceneGraph.Semantics.RenderObjectSemantics.Semantic.renderObjects(sg));

            win.RenderTask = DefaultOverlays.withStatistics(task);

            return(config);
        }
Esempio n. 3
0
    public override void OnEnter()
    {
        string text = string.Format("{0} OnEnter OnEnter Memory = {1}MB", base.GetType().FullName, TsPlatform.Operator.GetAppMemory());

        TsPlatform.FileLog(text);
        TsLog.LogWarning(text, new object[0]);
        if (!TsPlatform.IsEditor && TsPlatform.IsAndroid && SystemInfo.processorCount < 2)
        {
            IntroMsgBoxDlg introMsgBoxDlg = (IntroMsgBoxDlg)NrTSingleton <FormsManager> .Instance.LoadForm(G_ID.INTROMSGBOX_DLG);

            if (introMsgBoxDlg != null)
            {
                string textFromPreloadText = NrTSingleton <NrTextMgr> .Instance.GetTextFromPreloadText("10");

                introMsgBoxDlg.SetBtnChangeName(NrTSingleton <NrTextMgr> .Instance.GetTextFromPreloadText("8"));
                introMsgBoxDlg.SetMsg(null, null, null, null, NrTSingleton <NrTextMgr> .Instance.GetTextFromPreloadText("8"), textFromPreloadText, eMsgType.MB_OK);
            }
        }
        if (TsPlatform.IsEditor)
        {
            NmMainFrameWork.AddBGM();
        }
        if (TsPlatform.IsAndroid)
        {
            PlayGamesPlatform.DebugLogEnabled = true;
            PlayGamesPlatform.Activate();
        }
        TsLog.Log("====== {0}.OnEnter", new object[]
        {
            base.GetType().FullName
        });
        Scene.ChangeSceneType(this.SceneType());
        if (Camera.main != null && Camera.main.gameObject != null)
        {
            DefaultCameraController component = Camera.main.gameObject.GetComponent <DefaultCameraController>();
            if (component == null)
            {
                Camera.main.gameObject.AddComponent <DefaultCameraController>();
            }
            GameObject target = GameObject.Find("MainFramework");
            UnityEngine.Object.DontDestroyOnLoad(target);
        }
        else
        {
            NrMainSystem.CheckAndSetReLoginMainCamera();
        }
        if (NrTSingleton <NrMainSystem> .Instance.m_ReLogin)
        {
            TsSceneSwitcher.Instance.DeleteScene(TsSceneSwitcher.ESceneType.WorldScene);
            TsSceneSwitcher.Instance.DeleteScene(TsSceneSwitcher.ESceneType.BattleScene);
            base.StartTaskSerial(this.LoadLoginSleep());
            base.StartTaskSerial(CommonTasks.LoadEmptyMainScene());
            base.StartTaskSerial(CommonTasks.ClearAudioStack());
            base.StartTaskSerial(CommonTasks.MemoryCleaning(true, 8));
            NmMainFrameWork.LoadImage();
            NrTSingleton <FormsManager> .Instance.LoadForm(G_ID.LOGINBG_DLG);
        }
        base.StartTaskSerial(CommonTasks.SetGUIBehaviourScene());
        if (!NrTSingleton <NrMainSystem> .Instance.m_ReLogin && TsPlatform.IsEditor)
        {
            string         strFileName    = string.Format("{0}/../SystemData/ServerList.txt", Application.dataPath);
            NrConnectTable nrConnectTable = new NrConnectTable();
            nrConnectTable.AddServerList(strFileName);
        }
        if (!TsPlatform.IsEditor)
        {
            base.StartTaskSerial(this._RequestNoticeCheck());
            base.StartTaskSerial(this._RequestNoticePage());
            NrTSingleton <NrMainSystem> .Instance.m_bIsAutoLogin = true;
        }
        base.StartTaskSerial(this._RequestLoginNexonAuthorize());
        base.StartTaskSerial(this._StageProcess());
        base.StartTaskSerial(CommonTasks.FinalizeChangeScene(true));
    }