//////////////////////////////////////////////////// #region コンストラクタ、デストラクタ /// <summary> /// 初期化を行います。 /// </summary> public D3DViewerViewModel() { _imageSource = new DX10ImageSource(); var config = Util.GetConfigManager(); initializeDirect3D( config.Parameters.BackBufferWidth, config.Parameters.BackBufferHeight, config.Parameters.DistortionSurfaceResolutionWidth, config.Parameters.DistortionSurfaceResolutionHeight, config.Parameters.DistortionThetaMappingDepth, config.Parameters.CameraPitchAngle, config.Parameters.CameraOffsetY, config.Parameters.CameraScale, config.Parameters.OffsetU ); }
public void SetRenderTargetDX10(SharpDX.Direct3D10.Texture2D renderTarget) { if (this.RenderTarget != null) { this.RenderTarget = null; base.Lock(); base.SetBackBuffer(D3DResourceType.IDirect3DSurface9, IntPtr.Zero); base.Unlock(); } if (renderTarget == null) { return; } if (!IsShareable(renderTarget)) { throw new ArgumentException("Texture must be created with ResourceOptionFlags.Shared"); } Format format = DX10ImageSource.TranslateFormat(renderTarget); if (format == Format.Unknown) { throw new ArgumentException("Texture format is not compatible with OpenSharedResource"); } IntPtr handle = GetSharedHandle(renderTarget); if (handle == IntPtr.Zero) { throw new ArgumentNullException("Handle"); } this.RenderTarget = new Texture(DX10ImageSource.D3DDevice, renderTarget.Description.Width, renderTarget.Description.Height, 1, Usage.RenderTarget, format, Pool.Default, ref handle); using (Surface surface = this.RenderTarget.GetSurfaceLevel(0)) { base.Lock(); base.SetBackBuffer(D3DResourceType.IDirect3DSurface9, surface.NativePointer); base.Unlock(); } }