예제 #1
0
		public void TestMultiamplingTypes(MultisampleType multisampleType)
		{
			var deviceWorkerSettings = new DeviceWorker.DeviceSettings
				{
					AutoDetermineMultisampleType = false,
					MultisampleType = multisampleType
				};
			DirectXScene scene = null;
			OffscreenDirectXDrawer offscreenDrawer = null;
			try
			{
				var deviceWorker = new DeviceWorker(deviceWorkerSettings);
				using(var renderTarget = deviceWorker.Device.GetRenderTarget(0))
					Assert.AreEqual(multisampleType, renderTarget.Description.MultisampleType);
				scene = new DirectXScene(deviceWorker, _rootBody, null);
				offscreenDrawer = new OffscreenDirectXDrawer(scene, Width, Height, ImageFormat);
				_rootBody.Add(RedBox);
				var camera = new TopViewCamera(new Frame3D(0, 0, 200), Width / Height);
				byte[] bitmapBytes;
				offscreenDrawer.TryGetImage(camera, out bitmapBytes);
				var bitmap = new Bitmap(new MemoryStream(bitmapBytes));
				CheckImageSize(Width, Height, bitmap);
				CheckBitmapCenter(bitmap, Color.Red);
			}
			finally
			{
				if(offscreenDrawer != null) offscreenDrawer.Dispose();
				if(scene != null) scene.DeviceWorker.TryDispose();
			}
		}
예제 #2
0
        internal DirectXScene(DeviceWorker deviceWorker, Body root, Body floor)
        {
            DeviceWorker = deviceWorker;
            RootBody     = root;
            Floor        = floor;      //TODO. get rid of floor by determining intersection
            List <Light> lights =
                SceneConfig.Lights.Select(lightSetting => lightSetting.ToDirectXLight()).ToList();

            DeviceWorker.Disposing += Dispose;
            Effect = new DefaultEffect(DeviceWorker.Device, lights);
            DeviceWorker.AfterReset += Effect.Reset;
            Models        = new Dictionary <Body, DirectXModel>(new BodyComparer());
            _modelFactory = new DirectXModelFactory(DeviceWorker.Device);
        }
예제 #3
0
        public void TestMultiamplingTypes(MultisampleType multisampleType)
        {
            var deviceWorkerSettings = new DeviceWorker.DeviceSettings
            {
                AutoDetermineMultisampleType = false,
                MultisampleType = multisampleType
            };
            DirectXScene           scene           = null;
            OffscreenDirectXDrawer offscreenDrawer = null;

            try
            {
                var deviceWorker = new DeviceWorker(deviceWorkerSettings);
                using (var renderTarget = deviceWorker.Device.GetRenderTarget(0))
                    Assert.AreEqual(multisampleType, renderTarget.Description.MultisampleType);
                scene           = new DirectXScene(deviceWorker, _rootBody, null);
                offscreenDrawer = new OffscreenDirectXDrawer(scene, Width, Height, ImageFormat);
                _rootBody.Add(RedBox);
                var    camera = new TopViewCamera(new Frame3D(0, 0, 200), Width / Height);
                byte[] bitmapBytes;
                offscreenDrawer.TryGetImage(camera, out bitmapBytes);
                var bitmap = new Bitmap(new MemoryStream(bitmapBytes));
                CheckImageSize(Width, Height, bitmap);
                CheckBitmapCenter(bitmap, Color.Red);
            }
            finally
            {
                if (offscreenDrawer != null)
                {
                    offscreenDrawer.Dispose();
                }
                if (scene != null)
                {
                    scene.DeviceWorker.TryDispose();
                }
            }
        }
예제 #4
0
		public void SetUp()
		{
			_deviceWorker = new DeviceWorker();
		
			_converter = new DirectXBrushConverter(_deviceWorker.Device);
		}
예제 #5
0
        public void SetUp()
        {
            _deviceWorker = new DeviceWorker();

            _converter = new DirectXBrushConverter(_deviceWorker.Device);
        }
예제 #6
0
			public void SetUp()
			{
				_deviceWorker = new DeviceWorker();
				_device = _deviceWorker.Device;
				_modelFactory = new DirectXModelFactory(_device);
			}
예제 #7
0
 public void SetUp()
 {
     _deviceWorker = new DeviceWorker();
     _device       = _deviceWorker.Device;
     _modelFactory = new DirectXModelFactory(_device);
 }
예제 #8
0
		public void Setup()
		{
			_deviceWorker = new DeviceWorker();
			_device = _deviceWorker.Device;
		}
예제 #9
0
 public void Setup()
 {
     _deviceWorker = new DeviceWorker();
     _device       = _deviceWorker.Device;
 }