概述
1画刷BRUSH
画笔用其输出来“绘制”区域,不同的画笔具有不同的输出类型。Direct2D 提供了四种画笔:。(以下部分内容来自msdn上的解释)
- ID2D1SolidColorBrush 用纯色绘制区域
- ID2D1LinearGradientBrush 用线性渐变绘制区域
- ID2D1RadialGradientBrush 用径向渐变绘制区域
- ID2D1BitmapBrush 用位图绘制区域
2几何对象Geometry
几何(Geometry)对象
历数微软的图形开发技术,几何(Geometry)对象就不停的在发展,不断完善,越来越强大。
在GDI和GDI+中,区域(Region)和路径(Path)就是几何(Geometry)对象的雏形。WPF中已经有专门几何(Geometry)对象的概念,包含有直线几何(LineGeometry)、矩形几何(RectangleGeometry)、椭圆几何(EllipseGeometry)、路径几何(PathGeometry)、流几何(StreamGeometry)(轻量级的PathGeometry)、合并几何(CombinedGeometry)、几何组(GeometryGroup)等
在Direct2D更加完善了几何(Geometry)对象的概念。
在Direct2D中,所有的几何(Geometry)对象都继承自基类Geometry类(是个抽象类)。包括:矩形几何(RectangleGeometry)、圆角矩形几何(RoundedRectangleGeometry)、椭圆几何(EllipseGeometry)、路径几何(PathGeometry)、几何组(GeometryGroup)、变换几何(TransformedGeometry)。
这些几何(Geometry)对象都不能直接创建,必须通过D2DFactory对象的相应的方法创建。
计算方法:
计算几何(Geometry)对象的面积:ComputerArea
计算几何(Geometry)对象线段展开的长度:ComputerLength
计算几何(Geometry)对象上指定距离处的点和正切矢量:ComputerPointAtLength
获得几何(Geometry)对象的边界:GetBounds
获得几何(Geometry)对象按指定笔画宽度和样式加宽并按指定矩阵转换后的边界:GetWidentdBounds
判定方法:
判定几何(Geometry)对象是否包含指定点:FillContainsPoint
判定几何(Geometry)对象的描边笔画是否包含指定的点:StrokeContainsPoint
判定该几何(Geometry)对象和指定几何(Geometry)对象的交集的类型的结果:CompareWithGeometry
运算方法:
该几何(Geometry)对象和指定几何(Geometry)对象的合并结果:CombineWithGeometry
按照指定笔画加宽几何(Geometry)对象:Widen
优化方法:
获得几何(Geometry)对象的轮廓:Outline
获得几何(Geometry)对象的简化版本(仅包含直线和三次贝塞尔曲线):Simplify
获得几何(Geometry)对象的简化成一组三角形:Tesselate
3 Geometry, Bitmap, Text
Geometry-几何图形,Bitmap-位图, Text-文本。这三者是要绘制的内容,几何图形包括矩形,圆角矩形,椭圆等,当然Direct2D除了可以绘制几何图形之外,还可绘制位图和文本,D2D没有提供加载位图的接口,所以对位图的加载都是使用WIC来实现的。而对文本的绘制则是通过DirectWrite来实现的,DirectWrite在分类上属于D2D,但是目前已经独立成一个组件了。为了便于理解以上三者之间的关系,大家可以想象一个画家,他在作画的时候,都需要那些东西呢?第一,他需要一支画笔用来绘制,这相当于上面的画刷,第二,他需要一张纸或者一张画布用来承载绘制的东西,这就是上面的Render target,最后,他想画什么呢?山水?花鸟?亦或是人物?这就是绘制的内容,相当于上面的几何图形,位图或者文本
4 rendertaget渲染目标
渲染目标是从ID2D1RenderTarget 接口继承的资源。其用于创建绘制的资源,并执行实际的绘制操作。你可以通过以下方式使用多种类型的渲染目标来呈现图形:。(以下部分内容来自msdn上的解释)
- ID2D1HwndRenderTarget 对象将内容呈现到窗口。
- ID2D1DCRenderTarget 对象呈现到 GDI 设备上下文。
- 位图呈现器目标对象将内容呈现到屏幕外位图。
- DXGI 呈现器目标对象呈现到用于 Direct3D 的 DXGI 图面。
所谓的资源,指的是视频内存或系统内存的某种分配。
在Direct2D中主要有两种资源,一是设备无关的资源,另一个是设备相关的资源。所谓设备无关,是指该资源不与特定的硬件渲染设备相关联,所以设备无关的资源都分配在CPU中,而设备相关是指该资源与特定的渲染硬件相关联,比如当硬件加速可用时,使用GPU渲染,否则使用CPU渲染。
设备无关的资源
- ID2D1DrawingStateBlock
- ID2D1Factory
- ID2D1Geometry及继承自它的接口
- ID2D1GeometrySink和ID2D1SimplifiedGeometrySink
- ID2D1StrokeStyle
除了ID2D1RenderTarget之外,所有使用ID2D1Factory创建的资源都是设备无关的。
设备相关的资源
- ID2D1Brush及继承自它的接口
- ID2D1Layer
- ID2D1RenderTarget及继承自它的接口
一般来说,使用ID2D1RenderTarget创建的资源都是设备相关的。
最后
以上就是兴奋长颈鹿为你收集整理的D2D的资源介绍1画刷BRUSH2几何对象Geometry 3 Geometry, Bitmap, Text4 rendertaget渲染目标的全部内容,希望文章能够帮你解决D2D的资源介绍1画刷BRUSH2几何对象Geometry 3 Geometry, Bitmap, Text4 rendertaget渲染目标所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复