protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); this.context = new SharpDXContext(); this.renderer = new SceneRenderer(this.context); this.context.BindToControl(this.SwapChainPanel); this.context.Render += context_Render; }
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) { base.OnNavigatedTo(e); this.context = new SharpDXContext(); this.renderer = new SceneRenderer(this.context); this.context.Render += context_Render; this.context.BindToControl(this.DrawingSurface); }
public SwapChainBackgroundPanelPage() { this.InitializeComponent(); this.context = new SharpDXContext(); this.renderer = new SceneRenderer(this.context); this.context.BindToControl(this.LayoutRoot); this.context.Render += context_Render; }
protected override void OnNavigatedTo(NavigationEventArgs e) { //this.mediaEngine.Play(); //this.mediaEngine.Load(); // this.mediaEngine.GetNativeVideoSize(out width, out height); context = new SharpDXContext(); context.Render += context_Render; context.DeviceReset += context_DeviceReset; context.BindToControl(this.Surface); DeviceMultithread mt = context.D3DDevice.QueryInterface<DeviceMultithread>(); mt.SetMultithreadProtected(true); deviceManager = new DXGIDeviceManager(); deviceManager.ResetDevice(context.D3DDevice); MediaEngineAttributes attr = new MediaEngineAttributes(); attr.VideoOutputFormat = (int)SharpDX.DXGI.Format.B8G8R8A8_UNorm; attr.DxgiManager = deviceManager; this.mediaFactory = new MediaEngineClassFactory(); this.mediaEngine = new MediaEngine(this.mediaFactory, attr, MediaEngineCreateFlags.None); // this.mediaEngineEx = this.mediaEngine.QueryInterface<MediaEngineEx>(); this.mediaEngine.PlaybackEvent += mediaEngine_PlaybackEvent; this.mediaEngine.Source = Package.Current.InstalledLocation.Path + "/Assets/keloid.mp4"; this.mediaEngine.Load(); ushort[] indices = new ushort[] { 0, 1, 2, 2, 3, 0, }; this.indexBuffer = SharpDX.Direct3D11.Buffer.Create<ushort>(this.context.D3DDevice, BindFlags.IndexBuffer, indices); float[] vertices = new float[] { // 3D coordinates UV Texture coordinates -1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 1.0f, // Front -1.0f, 1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 0.0f, -1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 0.0f, 1.0f, -1.0f, -1.0f, 1.0f, 1.0f, 1.0f, -1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 0.0f, // BACK 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, -1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, -1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, -1.0f, 1.0f, -1.0f, 1.0f, 0.0f, 1.0f, // Top -1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, -1.0f, 1.0f, -1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, -1.0f,-1.0f, -1.0f, 1.0f, 1.0f, 0.0f, // Bottom 1.0f,-1.0f, 1.0f, 1.0f, 0.0f, 1.0f, -1.0f,-1.0f, 1.0f, 1.0f, 1.0f, 1.0f, -1.0f,-1.0f, -1.0f, 1.0f, 1.0f, 0.0f, 1.0f,-1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f,-1.0f, 1.0f, 1.0f, 0.0f, 1.0f, -1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 1.0f, // Left -1.0f, -1.0f, 1.0f, 1.0f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, -1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, -1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, -1.0f, -1.0f, 1.0f, 1.0f, 0.0f, // Right 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, -1.0f, -1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, }; this.vertexBuffer = SharpDX.Direct3D11.Buffer.Create<float>(this.context.D3DDevice, BindFlags.VertexBuffer, vertices); this.bufferBinding = new VertexBufferBinding(this.vertexBuffer, sizeof(float) * 6, 0); var path = Windows.ApplicationModel.Package.Current.InstalledLocation.Path; // Loads vertex shader bytecode var vertexShaderByteCode = NativeFile.ReadAllBytes(path + "\\MiniCubeTexture_VS.fxo"); this.vertexShader = new VertexShader(this.context.D3DDevice, vertexShaderByteCode); this.inputLayout = new InputLayout(this.context.D3DDevice, vertexShaderByteCode, new[] { new InputElement("POSITION", 0, SharpDX.DXGI.Format.R32G32B32A32_Float, 0, 0), new InputElement("TEXCOORD", 0, SharpDX.DXGI.Format.R32G32_Float, 16, 0) }); this.pixelShader = new PixelShader(this.context.D3DDevice, NativeFile.ReadAllBytes(path + "\\MiniCubeTexture_PS.fxo")); this.constantBuffer = new SharpDX.Direct3D11.Buffer(this.context.D3DDevice, Utilities.SizeOf<Matrix>(), ResourceUsage.Default, BindFlags.ConstantBuffer, CpuAccessFlags.None, ResourceOptionFlags.None, 0); this.sampler = new SamplerState(this.context.D3DDevice, new SamplerStateDescription() { Filter = Filter.MinMagMipLinear, AddressU = TextureAddressMode.Wrap, AddressV = TextureAddressMode.Wrap, AddressW = TextureAddressMode.Wrap, BorderColor = Color.Black, ComparisonFunction = Comparison.Never, MaximumAnisotropy = 16, MipLodBias = 0, MinimumLod = -float.MaxValue, MaximumLod = float.MaxValue }); base.OnNavigatedTo(e); }
public SceneRenderer(SharpDXContext context) { this.parentContext = context; this.parentContext.DeviceReset += context_DeviceReset; }
private void Dispose(bool disposing) { if (disposing) { this.ReleaseResources(); this.parentContext = null; } }