예제 #1
0
 public D3DRenderSystem <TProperties> Init(SynchronizedGraphics graphics)
 {
     this.graphics     = graphics;
     graphics.Changed += UpdateBuffers;
     UpdateBuffers(graphics.Device);
     return(this);
 }
예제 #2
0
 public void UnSubscribeFromGraphics()
 {
     graphics.Changed -= UpdateBuffers;
     foreach (var nest in nested)
     {
         nest.CleanupRenderCache();
     }
     this.graphics = null;
 }
예제 #3
0
        RenderEngine(GraphicsDevice device, IRenderableSurface surface,
                     IInputManager inputManager, IContextState context, EngineNotificator notificator)
            : base(surface, inputManager, context, notificator)
        {
            Graphics = new SynchronizedGraphics(surface, device);

            var includes = new System.Collections.Generic.Dictionary <string, IIncludeResourse>();

            includes.Add("Common", new IncludeResourse("Common", "D3DLab.Toolkit._CommonShaders.Common.hlsl"));

            Graphics.Device.Compilator.AddInclude(new D3DLab.SDX.Engine.Shader.D3DIncludeAdapter(includes));
        }
예제 #4
0
        public override void Dispose()
        {
            graphics.Changed -= UpdateBuffers;
            this.graphics     = null;

            foreach (var n in nested)
            {
                n.Cleanup();
                n.CleanupRenderCache();
            }
            nested.Clear();
            base.Dispose();
        }
예제 #5
0
        public D3DRenderSystem <TProperties> Init(SynchronizedGraphics graphics)
        {
            this.graphics     = graphics;
            graphics.Changed += UpdateBuffers;

            UpdateBuffers(graphics.Device);

            foreach (var nest in nested)
            {
                nest.CleanupRenderCache();
            }

            return(this);
        }
예제 #6
0
        void Initializing(SynchronizedGraphics device)
        {
            var em        = Context.GetEntityManager();
            var cameraTag = new ElementTag("CameraEntity");
            {   //systems creating
                var smanager = Context.GetSystemManager();


                smanager.CreateSystem <DefaultInputSystem>();
                smanager.CreateSystem <D3D.D3DCameraSystem>();
                smanager.CreateSystem <DefaultLightsSystem>();
                smanager.CreateSystem <CollidingSystem>();
                smanager.CreateSystem <MovementSystem>();
                smanager.CreateSystem <EmptyAnimationSystem>();
                smanager.CreateSystem <MeshAnimationSystem>();
                //  smanager.CreateSystem<StickOnHeightMapSystem>();
                smanager.CreateSystem <ObjectMovementSystem>();
                smanager.CreateSystem <Systems.TerrainGeneratorSystem>();
                smanager.CreateSystem <Physics.Engine.PhysicalSystem>();

                smanager
                .CreateSystem <RenderSystem>()
                .Init(device)
                .CreateNested <SkyGradientColoringRenderTechnique>()
                .CreateNested <SkyPlaneWithParallaxRenderTechnique>()
                .CreateNested <TerrainRenderTechnique>()   //
                .CreateNested <TriangleColoredVertexRenderTechnique>()
                .CreateNested <LineVertexRenderTechnique>()
                .CreateNested <SpherePointRenderStrategy>()
                .CreateNested <AminRenderTechniqueSystem>();

                //smanager
                //    .CreateSystem<AminRenderSystem>()
                //    .Init(device);
            }
            {
                var engine = EngineInfoBuilder.Build(em, Window);
            }
            {//entities ordering
                Context.EntityOrder
                .RegisterOrder <RenderSystem>(cameraTag, 0)
                .RegisterOrder <DefaultInputSystem>(cameraTag, 0);
            }
        }