就像Gdi+中用一个GraphicsPath来SetClip,然后Clear一样。可是RenderTarget的PushAxisAlignedClip只能设置矩形区域。

解决方案 »

  1.   

    就是生成一个Geometry,然后Clear这个Geometry记录的区域,说简单点就是Clear一个指定的任意形状的区域
      

  2.   

    三维任意形状布尔运算参考AutoCAD或3DS Max Studio或Maya或……流行3D软件自带的相关功能。
      

  3.   

    Direct2D中没有直接填充Region那种,你可以用GDI或者GDI+先把图形绘制好,再把DC传过来 HDC hdc = GetDC(hWnd);
    HDC memDC = CreateCompatibleDC(hdc);
    .....memDC...do something....
    ID2D1DCRenderTarget *g_pDCRT;
    g_pDCRT->BindDC(memDC, &CRect(.....));
      

  4.   

    谢谢,D2D和gdi/gid+混合编程我是知道的,确实可以做到gdi/gdi+能做到的一切,但是用D2D就是为了享受硬件加速,这个帖子我想知道的就是用D2D本身是否能做到
      

  5.   

    d2d 不是有fillgeometry吗?
      

  6.   

    并不是要fill,是要Clear,Fill只能将一个颜色跟rt中原来的颜色进行融合,clear是要用新的颜色去覆盖原来的颜色,包括alpha通道
      

  7.   

    并不是要fill,是要Clear,Fill只能将一个颜色跟rt中原来的颜色进行融合,clear是要用新的颜色去覆盖原来的颜色,包括alpha通道把alpha设置成1.0不就可以了吗?
      

  8.   

    并不是要fill,是要Clear,Fill只能将一个颜色跟rt中原来的颜色进行融合,clear是要用新的颜色去覆盖原来的颜色,包括alpha通道
    把alpha设置成1.0不就可以了吗?因为要做分层窗口,底色需要透明,必须能用任意alpha的颜色来clear
      

  9.   

    Clear只能是矩形