Example #1
0
 /// <summary>
 /// インスタンスを生成します。
 /// </summary>
 /// <param name="blockLoader">
 /// Block をロードするための IBlockLoader。
 /// </param>
 /// <param name="blockMeshFactory">
 /// 取得した Block から BlockMesh を生成するための BlockMeshFactory。
 /// </param>
 public BlockMeshManager(IBlockLoader blockLoader, BlockMeshFactory blockMeshFactory)
 {
     if (blockLoader == null) throw new ArgumentNullException("blockLoader");
     if (blockMeshFactory == null) throw new ArgumentNullException("blockMeshFactory");
     this.blockLoader = blockLoader;
     this.blockMeshFactory = blockMeshFactory;
 }
Example #2
0
 /// <summary>
 /// インスタンスを生成します。
 /// </summary>
 /// <param name="blockLoader">
 /// Block をロードするための IBlockLoader。
 /// </param>
 /// <param name="blockMeshFactory">
 /// 取得した Block から BlockMesh を生成するための BlockMeshFactory。
 /// </param>
 public BlockMeshManager(IBlockLoader blockLoader, BlockMeshFactory blockMeshFactory)
 {
     if (blockLoader == null)
     {
         throw new ArgumentNullException("blockLoader");
     }
     if (blockMeshFactory == null)
     {
         throw new ArgumentNullException("blockMeshFactory");
     }
     this.blockLoader      = blockLoader;
     this.blockMeshFactory = blockMeshFactory;
 }
Example #3
0
        /// <summary>
        /// BlockMesh をロードします。
        /// </summary>
        void LoadBlockMesh()
        {
            var blockLoader = new StringBlockLoader(blockData);

            var meshFactory = new BlockMeshFactory(GraphicsDevice);
            meshManager = new BlockMeshManager(blockLoader, meshFactory);

            // 通常の IBlockEffect をロードします。
            blockEffect = new BasicBlockEffect(GraphicsDevice);
            blockEffect.EnableDefaultLighting();

            // インスタンシング用の IBlockEffect をロードします。
            var instancingEffect = Content.Load<Effect>("Effects/Instancing");
            instancingBlockEffect = new InstancingBlockEffect(instancingEffect);
            instancingBlockEffect.EnableDefaultLighting();

            // 実際のアプリケーションではファイルの Block から BlockMesh をロードします。
            // BlockMesh をロードします。
            mesh = meshManager.Load("Dummy", lodCount);
        }