Example #1
0
        public SimpleObject(string name, IServiceProvider services, PositionTexCoordNormalVertex[] vertices, short[] indices,
                            string effectAsset, string diffuseMapAsset)
            : base(name)
        {
            if (services == null)
            {
                throw new ArgumentNullException("services");
            }
            if (vertices == null)
            {
                throw new ArgumentNullException("vertices");
            }
            if (indices == null)
            {
                throw new ArgumentNullException("indices");
            }

            batchesRO = new BatchReadOnlyCollection(batches);

            // Services
            var resourceManager = (ResourceManager)services.GetService(typeof(ResourceManager));
            var renderer        = (Renderer)services.GetService(typeof(Renderer));

            // Load effect & textures
            effect         = resourceManager.Load <Effect>(effectAsset, false);
            diffuseMapView = new ShaderResourceView(renderer.Device, resourceManager.Load <Texture2D>(diffuseMapAsset));
            effect.SetVariableByName("DiffuseMap", diffuseMapView, true);

            // Create batch
            CreateBatch(vertices, indices, renderer);

            // Calculate boundary
            CalculateBoundary(vertices);
        }
Example #2
0
        public SimpleObject(string name, IServiceProvider services, PositionTexCoordNormalVertex[] vertices, short[] indices,
            string effectAsset, string diffuseMapAsset)
            : base(name)
        {
            if (services == null)
                throw new ArgumentNullException("services");
            if (vertices == null)
                throw new ArgumentNullException("vertices");
            if (indices == null)
                throw new ArgumentNullException("indices");

            batchesRO = new BatchReadOnlyCollection(batches);

            // Services
            var resourceManager = (ResourceManager)services.GetService(typeof(ResourceManager));
            var renderer = (Renderer)services.GetService(typeof(Renderer));

            // Load effect & textures
            effect = resourceManager.Load<Effect>(effectAsset, false);
            diffuseMapView = new ShaderResourceView(renderer.Device, resourceManager.Load<Texture2D>(diffuseMapAsset));
            effect.SetVariableByName("DiffuseMap", diffuseMapView, true);

            // Create batch
            CreateBatch(vertices, indices, renderer);

            // Calculate boundary
            CalculateBoundary(vertices);
        }