Пример #1
0
        public RenderBase(int adapterIndex)
        {
            //Only enable when specifically using to debug, eats up CPU time...
            //ObjectTracker.StackTraceProvider = () => Environment.StackTrace;

            SetupWindow();
            Input.XInputInput.Init();
            InitDeviceRes(adapterIndex);
            InitDebugShaders();
            InitTriangle();

            WVP = new UConstantBuffer(this, Utilities.SizeOf <Matrix>() * 4);
            WVP.Set(0);

            Sun = new SunBuffer(this);

            var entities = new List <Entity>();
            var tank     = new Tank();

            fishManager  = new FishManager(entities, tank);
            fishRenderer = new FishRenderer(this, fishManager);
            fishGlow     = new FishGlow(this, fishManager);
            raysRenderer = new RaysRenderer(this);

            foodManager  = new FoodManager(entities, tank);
            foodRenderer = new FoodRenderer(this, foodManager);

            decorRenderer = new DecorRenderer(this);

            //swapChain.SetFullscreenState(true, null);
        }
        public HeadlessSim(int id)
        {
            ID = id;

            var entities = new List <Entity>();
            var tank     = new Tank();

            fishManager              = new FishManager(entities, tank);
            fishManager.trackDead    = false;
            fishManager.newTopPrefix = "[" + ID + "] New Top: ";
            foodManager              = new FoodManager(entities, tank);
        }
        public FoodRenderer(RenderBase rb, FoodManager manager)
        {
            RenderBase = rb;
            Manager    = manager;

            paramsBuffer = new UConstantBuffer(RenderBase, Utilities.SizeOf <Vector4>() * 2);

            var shaderFlags =
#if DEBUG
                ShaderFlags.Debug;
#else
                ShaderFlags.None;
#endif

            vertexShader = new UVertexShader(RenderBase, "shaders/Vertex_PN_Standard.hlsl", VertexPositionNormal.InputElements);
            using (var pixelShaderByteCode = ShaderBytecode.CompileFromFile("shaders/Pixel_PC_FishPointLights.hlsl", "main", "ps_4_0", shaderFlags))
                pixelShader = new PixelShader(RenderBase.Device, pixelShaderByteCode);

            vertexBuffer = Buffer.Create(RenderBase.Device, BindFlags.VertexBuffer,
                                         //new VertexPositionColor[] { new VertexPositionColor(new Vector3(-0.5f, 0.5f, 0.0f), Color.White), new VertexPositionColor(new Vector3(0.5f, 0.5f, 0.0f), Color.White), new VertexPositionColor(new Vector3(-0.5f, -0.5f, 0.0f), Color.White),
                                         //                            new VertexPositionColor(new Vector3(0.5f, -0.5f, 0.0f), Color.White), new VertexPositionColor(new Vector3(-0.5f, -0.5f, 0.0f), Color.White), new VertexPositionColor(new Vector3(0.5f, 0.5f, 0.0f), Color.White)});
                                         VertexPositionNormal.LoadSTL("models/food.stl", out vertCount));
        }