/// <summary> /// /// /// </summary> public Tool() { InitializeComponent(); IntPtr handle = this.Handle; IntPtr PanelHandle = splitContainer1.Panel1.Handle; Int32 _Width = splitContainer1.Panel1.Width; Int32 _Height = splitContainer1.Panel1.Height; String ViewerDLLName = @"Viewer.dll"; IRealTime iRT = (IRealTime)SearchForInterface(ViewerDLLName, "IRealTime"); if (iRT != null) { iRT.Create(PanelHandle, _Width, _Height); this.MenuEnumVariables.DropDownItems.AddRange(iRT.GetMenuItems()); this.LoadEnumVariables.DropDownItems.AddRange(iRT.GetLoadItems()); splitContainer1.Panel1.MouseUp += iRT.GetMouseClick(); m_Timer = new Timer(iRT); m_Timer.SetNumUD(this.FrameRate); m_Thread = new Thread(new ThreadStart(m_Timer.Run)); m_Thread.Start(); Closing += FermerFenetre; } }
protected virtual void NewFrame(IRealTime realTime) { if (window.Input.Keyboard.KeyReleased(Keys.F)) { SwapChainDescription sd; eye.Device.PrimarySwapChain.GetDescription(out sd); var dm = desctopDisplayMode; sd.ColorBufferFormatID = dm.FormatID; eye.Device.PrimarySwapChain.ResetToFullscreen(ref dm, ref sd); } else if (window.Input.Keyboard.KeyReleased(Keys.W)) { SwapChainDescription sd; eye.Device.PrimarySwapChain.GetDescription(out sd); eye.Device.PrimarySwapChain.Reset(ref sd); } else if (window.Input.Keyboard.KeyReleased(Keys.P)) { SwapChainDescription sd; eye.Device.PrimarySwapChain.GetDescription(out sd); eye.Device.PrimarySwapChain.ResetToPseudoFullscreen(ref sd); } for (int i = 0; i <= 6; i++) if (window.Input.Keyboard.KeyPressed(Keys.D0 + i)) currentScene = CreateAndInitializeScene(i); currentScene.NewFrame(realTime); }
/// <summary> /// 取得即時路況(全台) /// </summary> /// <param name="radius">半徑範圍(公尺)</param> /// <param name="x">經度</param> /// <param name="y">緯度</param> /// <returns></returns> public List <RealTimeInfoDeserialize> GetRealTime(float y, float x, int radius) { //Initialize IRealTime repos = DataFactory.RealTimeRepository(); //return radius range Info return(repos.getRealTimeInfo(y, x, radius)); }
public ActionResult GetRealTime(float y, float x, int radius) { //Initialize IRealTime repos = DataFactory.RealTimeRepository(); //return radius range Info return(Content(JsonConvert.SerializeObject(repos.getRealTimeInfo(y, x, radius)), "application/json")); }
public override void NewFrame(IRealTime realTime) { if (SwapChain.BeginScene()) { ImmediateContext.ClearRenderTargetView(SwapChain.GetCurrentColorBuffer(), Color4.CornflowerBlue); SwapChain.EndScene(); SwapChain.Present(); } }
public IHttpActionResult GetSearchWeather(float y, float x, int radius) { //Initial IHttpActionResult responseResult; IRealTime repos = DataFactory.RealTimeRepository(); //序列化撈出來的資料 var jsonSerialize = JsonConvert.SerializeObject(repos.getRealTimeInfo(y, x, radius)); //做成JSON字串包裝到最後輸出 StringContent responseMsgString = new StringContent(jsonSerialize, System.Text.Encoding.UTF8, "application/json"); HttpResponseMessage responseMsg = new HttpResponseMessage() { Content = responseMsgString }; responseResult = ResponseMessage(responseMsg); return(responseResult); }
// GET: RealTimeTrafficInfo public async Task <ActionResult> Index() { //Initialize IRealTime repos = DataFactory.RealTimeRepository(); //Setting target Url string targetURI = ConfigurationManager.AppSettings["RealTimeInfoURL"].ToString(); HttpClient client = new HttpClient(); client.MaxResponseContentBufferSize = Int32.MaxValue; //Get Parking Json Format (not completed json) var response = await client.GetStringAsync(targetURI); JObject o = (JObject)JsonConvert.DeserializeObject(response); string parkString = o.SelectToken("result").ToString(); //將JSON反序列化的資料填進資料庫中 var collection = JsonConvert.DeserializeObject <IEnumerable <RealTimeInfoDeserialize> >(parkString); repos.addRealTimeInfo(collection); return(View()); }
public override void NewFrame(IRealTime realTime) { if (SwapChain.BeginScene()) { ImmediateContext.ClearRenderTargetView(SwapChain.GetCurrentColorBuffer(), Color4.CornflowerBlue); ImmediateContext.OutputMerger.RenderTargets.Set(SwapChain.GetCurrentColorBuffer()); ImmediateContext.Rasterizer.Viewports.Set(new Viewport(SwapChain.Width, SwapChain.Height)); ImmediateContext.ShadersForDrawing = shaderCombination; ImmediateContext.InputAssembler.VertexLayout = vertexLayout; ImmediateContext.InputAssembler.VertexSources[0] = new VertexSource(vertexBuffer, 0, Vertex.SizeInBytes); ImmediateContext.InputAssembler.PrimitiveTopology = PrimitiveTopology.TriangleList; ImmediateContext.Draw(3, 0); SwapChain.EndScene(); SwapChain.Present(); } }
public unsafe override void NewFrame(IRealTime realTime) { float angle = realTime.TotalRealTime * 0.125f; var cameraPosition = new Vector3(5, 3, 0); var world = Matrix4x4.CreateRotationX(angle) * Matrix4x4.CreateRotationY(2 * angle) * Matrix4x4.CreateRotationZ(3 * angle); var transform = new Transform { World = world, WorldInverseTranspose = Matrix4x4.Transpose(Matrix4x4.Invert(world)) }; var light = new Light { AmbientColor = new Color3(0.2f, 0.2f, 0.2f), LightPosition = new Vector3(10f, -7f, 2f), LightColor = Color3.White }; if (SwapChain.BeginScene()) { ImmediateContext.ShadersForDrawing = shaderCombination; ImmediateContext.InputAssembler.VertexLayout = vertexLayout; ImmediateContext.InputAssembler.VertexSources[0] = cubeMesh.Vertices; ImmediateContext.InputAssembler.IndexSource = cubeMesh.Indices; ImmediateContext.InputAssembler.PrimitiveTopology = PrimitiveTopology.TriangleList; ImmediateContext.SetSubresourceData(transformBuffer, 0, new SubresourceData((IntPtr)(&transform))); ImmediateContext.SetSubresourceData(lightBuffer, 0, new SubresourceData((IntPtr)(&light))); ImmediateContext.VertexStage.UniformBuffers[0] = transformBuffer; ImmediateContext.VertexStage.UniformBuffers[1] = cameraVertexBuffer; ImmediateContext.PixelStage.UniformBuffers[0] = lightBuffer; ImmediateContext.PixelStage.Samplers[0] = samplerState; ImmediateContext.OutputMerger.DepthStencilState = depthStencilState; var meshSubset = cubeMesh.Subsets[0]; // Render Target ImmediateContext.OutputMerger.RenderTargets.Set(targetRtv); ImmediateContext.OutputMerger.DepthStencil = targetDsv; ImmediateContext.Rasterizer.Viewports.Set(new Viewport(TargetSize, TargetSize)); ImmediateContext.ClearRenderTargetView(targetRtv, Color4.CornflowerBlue); ImmediateContext.ClearDepthStencilView(targetDsv, ClearDepthStencilFlags.All, 1.0f, 0); var cameraVertex = new CameraVertex { ViewProjection = Matrix4x4.CreateLookAtRH(cameraPosition, Vector3.Zero, Vector3.UnitZ) * Matrix4x4.CreatePerspectiveFieldOfView(MathHelper.PiOver4, 1.0f, 0.1f, 1000.0f) }; ImmediateContext.SetSubresourceData(cameraVertexBuffer, 0, new SubresourceData((IntPtr)(&cameraVertex))); ImmediateContext.PixelStage.ShaderResources[0] = diffuseView; ImmediateContext.DrawIndexed(meshSubset.IndexCount, meshSubset.StartIndexLocation, meshSubset.BaseVertexLocation); ImmediateContext.GenerateMips(targetSrv); // Swap Chain ImmediateContext.OutputMerger.RenderTargets.Set(SwapChain.GetCurrentColorBuffer()); ImmediateContext.OutputMerger.DepthStencil = SwapChain.GetCurrentDepthStencilBuffer(); ImmediateContext.Rasterizer.Viewports.Set(new Viewport(SwapChain.Width, SwapChain.Height)); ImmediateContext.ClearRenderTargetView(SwapChain.GetCurrentColorBuffer(), Color4.Blue); ImmediateContext.ClearDepthStencilView(SwapChain.GetCurrentDepthStencilBuffer(), ClearDepthStencilFlags.All, 1.0f, 0); cameraVertex = new CameraVertex { ViewProjection = Matrix4x4.CreateLookAtRH(cameraPosition, Vector3.Zero, Vector3.UnitZ) * Matrix4x4.CreatePerspectiveFieldOfView(MathHelper.PiOver4, SwapChain.GetAspectRatio(), 0.1f, 1000.0f) }; ImmediateContext.SetSubresourceData(cameraVertexBuffer, 0, new SubresourceData((IntPtr)(&cameraVertex))); ImmediateContext.PixelStage.ShaderResources[0] = targetSrv; ImmediateContext.DrawIndexed(meshSubset.IndexCount, meshSubset.StartIndexLocation, meshSubset.BaseVertexLocation); SwapChain.EndScene(); SwapChain.Present(); } }
public unsafe void Draw(IDeviceContext context, IRealTime realTime) { context.ShadersForDrawing = shaders; float totalRealTime = realTime.TotalRealTime; context.SetSubresourceData(timeUbuffer, 0, new SubresourceData(new IntPtr(&totalRealTime))); context.VertexStage.UniformBuffers[0] = timeUbuffer; context.InputAssembler.PrimitiveTopology = PrimitiveTopology.TriangleList; context.InputAssembler.VertexLayout = vertexLayout; context.InputAssembler.VertexSources[0] = new VertexSource(vertexBuffer, 0, Vertex.SizeInBytes); context.InputAssembler.IndexSource = new IndexSource(indexBuffer, 0, IndexFormat.SixteenBit); context.Rasterizer.State = rasterizerState; context.OutputMerger.DepthStencilState = depthStencilState; context.OutputMerger.BlendState = blendState; context.DrawIndexed(starCount * 6, 0, 0); }
public unsafe override void NewFrame(IRealTime realTime) { if (SwapChain.BeginScene()) { var time = new Time { CurrentTime = realTime.TotalRealTime * ParticleSpeed }; var camera = new Camera { AspectRatio = SwapChain.GetAspectRatio() }; ImmediateContext.SetSubresourceData(timeBuffer, 0, new SubresourceData(new IntPtr(&time))); ImmediateContext.SetSubresourceData(cameraBuffer, 0, new SubresourceData(new IntPtr(&camera))); ImmediateContext.OutputMerger.RenderTargets.Set(SwapChain.GetCurrentColorBuffer()); ImmediateContext.Rasterizer.Viewports.Set(new Viewport(SwapChain.Width, SwapChain.Height)); ImmediateContext.ClearRenderTargetView(SwapChain.GetCurrentColorBuffer(), Color4.Black); ImmediateContext.OutputMerger.BlendState = blendState; ImmediateContext.ShadersForDrawing = shaderCombination; ImmediateContext.InputAssembler.VertexLayout = vertexLayout; ImmediateContext.InputAssembler.PrimitiveTopology = PrimitiveTopology.PointList; ImmediateContext.InputAssembler.VertexSources[0] = new VertexSource(vertexBuffer, 0, Vertex.SizeInBytes); ImmediateContext.VertexStage.UniformBuffers[0] = timeBuffer; ImmediateContext.GeometryStage.UniformBuffers[0] = cameraBuffer; ImmediateContext.Draw(ParticleCount, 0); SwapChain.EndScene(); SwapChain.Present(); } }
public abstract void NewFrame(IRealTime realTime);
public unsafe override void NewFrame(IRealTime realTime) { if (SwapChain.BeginScene()) { ImmediateContext.OutputMerger.RenderTargets.Set(SwapChain.GetCurrentColorBuffer()); ImmediateContext.Rasterizer.Viewports.Set(new Viewport(SwapChain.Width, SwapChain.Height)); ImmediateContext.ClearRenderTargetView(SwapChain.GetCurrentColorBuffer(), Color4.Violet); ImmediateContext.ShadersForDrawing = shaderCombination; ImmediateContext.InputAssembler.VertexLayout = vertexLayout; ImmediateContext.InputAssembler.PrimitiveTopology = PrimitiveTopology.PatchList4; ImmediateContext.InputAssembler.VertexSources[0] = new VertexSource(vertexBuffer, 0, Vertex.SizeInBytes); ImmediateContext.HullStage.UniformBuffers[0] = tessFactorBuffer; var tessFactor = new TessFactor(); tessFactor.NumSegments = 4; ImmediateContext.SetSubresourceData(tessFactorBuffer, 0, new SubresourceData(new IntPtr(&tessFactor))); ImmediateContext.Draw(4, 0); tessFactor.NumSegments = 64; ImmediateContext.SetSubresourceData(tessFactorBuffer, 0, new SubresourceData(new IntPtr(&tessFactor))); ImmediateContext.Draw(4, 4); var amount = Math.Sin(realTime.TotalRealTime - Math.PI) * 0.5 + 0.5; tessFactor.NumSegments = (int)(32.0 * amount * amount) + 1; ImmediateContext.SetSubresourceData(tessFactorBuffer, 0, new SubresourceData(new IntPtr(&tessFactor))); ImmediateContext.Draw(4, 8); SwapChain.EndScene(); SwapChain.Present(); } }
public void OnNewFrame(IRealTime realTime) { var swapChain = eye.Device.PrimarySwapChain; if (swapChain.BeginScene()) { var context = eye.Device.ImmediateContext; context.ClearRenderTargetView(swapChain.GetCurrentColorBuffer(), Color4.Black); context.Rasterizer.Viewports.Set(new Viewport(swapChain.Width, swapChain.Height)); context.OutputMerger.RenderTargets.Set(swapChain.GetCurrentColorBuffer()); stars.Draw(context, realTime); swapChain.EndScene(); swapChain.Present(); } }
public Timer(IRealTime _ToUpdate) { m_pApp = _ToUpdate; }