2014-01-22 4 views
0

SharpDX.Direct2D1.BitmapRenderTarget에 그리는 데 필요한 모든 것을 만들었습니다.SharpDX 그리기 Direct2D 다른 Direct2D 비트 맵 비트 맵

대상 .bitmap 특성을 사용하여 비트 맵 자체에 액세스 할 수 있습니다.

내 질문은 지금, 다른 WicRenderTarget을 사용하여이 비트 맵을 그리는 방법입니까? 같은

뭔가 :

var wicFactory = new ImagingFactory(); 
var d2dFactory = new SharpDX.Direct2D1.Factory(); 
var wicBitmap = new Bitmap(wicFactory, width, height, SharpDX.WIC.PixelFormat.Format32bppBGR, BitmapCreateCacheOption.CacheOnLoad); 
var d2dRenderTarget = new WicRenderTarget(d2dFactory, wicBitmap, renderTargetProperties); 

d2dRenderTarget.BeginDraw(); 
d2dRenderTarget.Clear(SharpDX.Color.Black); 
d2dRenderTarget.FillGeometry(rectangleGeometry, solidColorBrush, null); 
d2dRenderTarget.DrawBitmap(MY BITMAPRENDERTARGET.BITMAP_FROM OTHER D2D FACTORY); 
d2dRenderTarget.EndDraw(); 

그러나 이것은 EndDraw에서 "UNKOWN_FACTORY"예외가 저를 throw().

내가 원하는 것을 어떻게 성취 할 수 있습니까? https://github.com/sharpdx/SharpDX/blob/master/Samples/Direct2D1/RenderToWicApp/Program.cs

대신 내 bitmaprendertarget 비트 맵을 작성하려는 기하학을 작성 :

본인은 WIC 출력에 필요한 모든 것을 만들려면 다음 링크에서 코드를 사용했다.

답변

1

다른 D2D 팩토리에서 만든 비트 맵을 그릴 수 없습니다. 공장을 사용하여 만듭니다. 다른 비트 맵의 ​​생성 방법을 제어하지 않으면 GetFactory 메서드를 통해 팩토리를 가져 와서 개체를 만드는 데 사용하십시오.

렌더링 대상 또는 공장에서 공유 할 수있는 내용에 대한 자세한 내용은 Resources Overview을 참조하십시오.

+0

나는 그 링크를 체크 아웃 할 것이다. 이제는 WicRenderTarget을 만들기 위해 동일한 팩토리를 사용했습니다. 하지만 이제 EndDraw()에서 WrongResourceDomain 예외가 발생합니다. 왜 이런거야? – user2799180

+0

이것은 일부 자원 제약 조건이 여전히 위반되었음을 의미합니다. "리소스 개요"링크를 확인하십시오. –