
Direct2D
文章平均质量分 89
Augusdi
让时间验证一切,让时间验证我。感谢大家的无私帮助,我愿以同样的态度回馈我热情的朋友,用我们的热忱开创美好未来!
展开
-
使用WIC将Direct2D绘制的图形保存为文件
使用WIC将Direct2D绘制的图形保存为文件从Windows Vista开始引入的WIC(Windows Imaging Component)组件以面向对象的方式处理位图,并且很适合与Direct2D配合使用。可以将Direct2D绘制的图像使用WIC保存为位图文件。以下代码演示如何将Direct2D绘制的带有透明背景色的图像保存到png位图文件:CComPtr spWicImagingFac转载 2013-07-25 11:01:04 · 3533 阅读 · 0 评论 -
Direct2D基础窗体编程
Direct2D基于Windows窗体,因此必须了解一些基本的Windows窗体编程:首先,最基本的,可以使用Windows API写一个窗体:#include typedef LRESULT (* message_callback)(HWND, WPARAM, LPARAM);struct message_handler{ UINT message; message_c转载 2013-06-07 22:26:56 · 2288 阅读 · 0 评论 -
Creating a Simple Direct2D Application
Creating a Simple Direct2D Applicationhttp://msdn.microsoft.com/zh-cn/library/windows/desktop/hh404478 This topic walks you through the process of creating the DemoApp class, which creates a window an转载 2013-06-07 22:58:48 · 2632 阅读 · 0 评论 -
Direct2D 变换
可以通过矩阵变换来给几何图形作平移(Translation)、旋转(Rotate)、扭曲(Skew)和大小变换(Scale):#include "stdafx.h"struct SampleWindow : DesktopWindow{ ComPtr m_geometry; ComPtr m_brush; void CreateDeviceIndepende转载 2013-06-07 22:30:42 · 2932 阅读 · 0 评论 -
Direct2D的Brush操作
为方便,将D2D的一个基本类DesktopWindow写成如下所示:#include "Precompiled.h"#include #include #pragma comment(lib, "d2d1.lib")using namespace D2D1;using namespace Microsoft::WRL;templatestruct DesktopWindow转载 2013-06-07 22:24:42 · 2186 阅读 · 0 评论 -
Direct2D教程(十一)几何变换
什么是几何变换(Transform)在图形学中,主要有三种几何变换,分别是平移(Translate),旋转(Rotation)和缩放(Scaling)。在D2D中,这三种变换都有实现,而且还有一种不太常见的变换,倾斜(Skewing)。 Transform是指将一个点从一个坐标系映射到另一个坐标系,或者将一个点从同一个坐标系的一个位置映射到另外一个位置。在实际应用中,通常是将转载 2013-06-06 23:38:24 · 3657 阅读 · 0 评论 -
Direct2D教程(八)梯度色画刷
概述单色画刷产生的颜色是单一的,比如一个红色画刷只能输出红色,而梯度色画刷则不同,它可以输出多种颜色,这些颜色通常是连续的,从一个颜色平滑过渡到另一个颜色,看起来有渐变的效果。梯度色画刷又分为两种,一种是ID2D1LinearGradientBrush(线性梯度色画刷),另一种是ID2D1RadialGradientBrush(放射梯度色画刷),下图显示了这两种画刷的效果。线性梯度色画刷这种画刷的转载 2013-06-06 23:33:22 · 2638 阅读 · 0 评论 -
Direct2D中资源的创建顺序
资源类型Direct2D中有两种类型的资源,设备无关资源和设备相关资源,设备无关的资源可以一次创建,永久使用(在程序生存期内),且通常创建于系统内存中,设备相关的资源和设备有相同的生命周期,一旦设备丢失,则资源也需重建。这类资源一般在显存中创建。设备无关的资源包括ID2D1DrawingStateBlockID2D1FactoryID2D1Geometry及继承自它的接口ID2D1Geometry转载 2013-06-06 23:41:46 · 2111 阅读 · 0 评论 -
Direct2D绘制的MFC控件
1.要点MFC中已有的控件都是使用GDI/GDI+绘制自身,因此不适合直接从这些已有控件中继承,而应当CWnd中继承,将控件所有外观绘制的工作都交给Direct2D完成;重写OnEraseBkgnd()函数,返回TRUE,已通知框架,控件背景色已由Direct2D负责绘制,框架不需要再绘制背景色;客户端在使用此控件时,需要在窗口初始化时修改窗口的样式为WS_CLIPCHILDREN,以防止客户端干转载 2013-06-07 16:52:59 · 3811 阅读 · 0 评论 -
Direct2D 中ID2D1Bitmap 的使用
创建 ID2D1Bitmap 对象:若要创建位图,请使用将在其上绘制位图的呈现器目标的以下方法之一: ID2D1RenderTarget::CreateBitmapID2D1RenderTarget::CreateBitmapFromWicBitmap 这里我们主要介绍了第一种方式创建: m_d2dDeviceContext->CreateBitmap( p转载 2013-06-16 15:20:58 · 6123 阅读 · 0 评论 -
Direct2D中DirectWrite处理WM_SIZE消息
对于DirectWrite程序,在窗口大小改变时,也要同步更新render target的尺寸,否则的话,所绘文本可能超出窗口之外。可以定义一个OnResize函数来更新render target的尺寸,然后再WM_SIZE中调用这个函数。// When window size changed, we need to resize the render target as wellVOID On转载 2013-06-06 23:42:23 · 1955 阅读 · 0 评论 -
Direct2D教程(十二)图层
什么是Layers?Layer,中文译成图层,在Direct2D中可以用来完成一些特殊效果,使用Layer的时候,先将Layer Push到render target,然后进行绘制,此时是直接绘制在Layer上的,绘制完毕后,将Layer Pop出来,刚刚绘制在Layer上的内容就会组合到render target上。在Direct2D中,Layer使用接口ID2D1Layer来表示。和画刷一样,转载 2013-06-06 23:41:10 · 4438 阅读 · 0 评论 -
Direct2D教程(十)绘制文本
概述在Direct2D中,文本的绘制是通过DirectWrite来实现的,DirectWrite实际上已经是一个独立的DirectX组件了。关于DirectWrite,我摘录了MSDN的一段文字。DirectWrite介绍当今的应用程序应提供高质量的文本渲染,分辨率无关的字体及完整的Unicode文本和布局支持,DirectWrite提供了这些功能,甚至比这更多。下面是DirectWrite的特性转载 2013-06-06 23:36:57 · 3542 阅读 · 1 评论 -
Direct2D教程(九)渲染位图
概述这篇的标题更确切的说应该叫位图画刷,这样才好和前几篇对应起来。在Direct2D中,位图的渲染也是通过画刷来实现的。Direct2D中并没有直接操作位图的接口,而是借助WIC(Windows Image Component)来完成的。今天我们来看看如何在Direct2D中加载并显示位图。这个方法可以用来渲染背景。基本步骤如下。从文件创建WIC位图由WIC位图创建D2D位图使用D2D绘制位图在开转载 2013-06-06 23:35:20 · 4399 阅读 · 0 评论 -
Direct2D教程(七)单色画刷
概述画刷是D2D中最重要的资源之一,无论绘制什么图形,都离不开画刷,它好比是画家手中的画笔。画刷由render target创建,是设备相关的资源,如果渲染设备重建了,那么需要重新建立画刷。Direct2D中有以下四种类型的画刷,这些画刷全部继承自ID2D1Brush,并且有一些共同特征(比如设置和获取opacity,以及transform)。ID2D1SolidColorBrush 单色画刷ID转载 2013-06-06 23:30:30 · 2747 阅读 · 0 评论 -
Direct2D 几何图形
通过ID2D1HwndRenderTarget,可以轻松地画作各种样式的长方形和椭圆形:#include "Precompiled.h"#include "DesktopWindow.h"D2D1_COLOR_F const COLOR_BLUE = { 0.26f, 0.56f, 0.87f, 1.0f };D2D1_COLOR_F const COLOR_WHITE =转载 2013-06-07 22:29:18 · 2753 阅读 · 0 评论 -
Direct2D中DWrite文字
DWrite可以高速地呈现文字:#include "stdafx.h"class unicode_file{ PCWSTR m_view; UINT32 m_size;public: unicode_file(); ~unicode_file(); PCWSTR text() const; UINT32 size() const;};转载 2013-06-07 22:31:33 · 4537 阅读 · 0 评论 -
Direct2D 中ID2D1StrokeStyle 的使用
用ID2D1StrokeStyle可以构建出我们想要的风格:virtual HRESULT CreateStrokeStyle( [in] const D2D1_STROKE_STYLE_PROPERTIES *strokeStyleProperties, [in, optional] const FLOAT *dashes, UINT dashesCount, [转载 2013-06-07 23:03:34 · 4821 阅读 · 0 评论 -
WinRT使用direct2d自由旋转图片
WinRT 使用direct2d自由旋转图片速度比GDI+绘制快上N倍。directx绘制真给力!!WriteableBitmap^ CImagePosterPuzzle::RotateImage(WriteableBitmap^ bitmap,int rotate){ if(bitmap==nullptr) return nullptr; ID2D1RenderTarget*转载 2013-06-07 22:55:25 · 6401 阅读 · 0 评论 -
Direct2D在VC中的使用
http://www.cnblogs.com/graphics/archive/2011/05/23/1964273.html http://msdn.microsoft.com/zh-cn/library/dd371902(v=VS.85).aspx http://technet.microsoft.com/zh-cn/library/dd756653(v=vs.85).aspxhttp://转载 2013-06-07 22:51:09 · 4029 阅读 · 0 评论 -
Introduction to DirectWrite
Introduction to DirectWritehttp://www.nuonsoft.com/blog/2009/05/27/introduction-to-directwrite/Microsoft has added two interesting new API’s to Windows 7: Direct2D and DirectWrite. Direct2D replaces G转载 2013-06-07 23:09:01 · 2334 阅读 · 0 评论 -
Direct2D画背景纹理
d2d 画背景纹理HRESULT ImageComponent::CreateGridPatternBrush(ID2D1RenderTarget *pRenderTarget,ID2D1BitmapBrush **ppBitmapBrush){ HRESULT hr = S_OK; // Create a compatible render target. ID2D1转载 2013-06-07 22:52:36 · 3934 阅读 · 0 评论 -
WTL-DWM,Direct2D
WTL-DWM,Direct2DDWM和Direct2D都是基于Direct3D的技术,因此二者很容易配合在一起使用。在上一篇文章中所编写的小程序,要想启用DWM的半透明效果只需要对程序做些简单修改即可:1.将背景画刷改为黑色;2.在窗口类继承列表添加CDwmImpl3.修改创建RenderTarget的代码为:D2D1_SIZE_U size = SizeU(rc.Width(),rc.Heig转载 2013-06-07 22:38:04 · 2413 阅读 · 0 评论 -
Direct2D与DWM结合得到的一个背景半透明的程序
Windows Vista和Windows 7中引入了一个新的组件:Desktop Window Manager(DWM),用于管理和控制窗口的显示。由于DWM和Direct2D在底层都是基于DirectX,因此二者可以很好的在一起工作。结合二者可以得到一些以前很难获得的特效。例如,在Win7系统开启窗口透明的情况下,使用新的Win32 API DwmExtendFrameIntoClientAr转载 2013-06-07 22:32:21 · 3812 阅读 · 0 评论 -
Direct2D中的DirectWrite
DirectWrite目的: 今天,应用程序必须支持高质量的文字描绘,分辨率无关的框架字体,完全的支持Unicode文本,DirectWrite就是提供这些或者更多特性的DirectX API。l 设备无关的文字布局系统改进了文档和UI的文字可视效果;l 用GDI、Direct2D或应用程序具体的渲染技术支持的高质量ClearType文本渲染;l 当使用Direct2D的时候还可以提供转载 2013-06-07 23:07:06 · 6817 阅读 · 0 评论 -
Direct2D 中层概述
http://msdn.microsoft.com/zh-cn/library/windows/apps/dd756654.aspx什么是层?层由 ID2D1Layer 对象表示,它使应用程序可以操作一组绘制操作。可通过将层“压入”呈现器目标的方式来使用层。呈现器目标执行的后续绘制操作将被指引到压入的层。在处理完该层之后,可从呈现器目标“弹出”该层,这可将该层的内容重新复合到呈现器目标中。与画笔类转载 2013-06-07 23:02:50 · 2232 阅读 · 0 评论 -
Direct2D 中ID2D1Bitmap 的使用
创建 ID2D1Bitmap 对象:若要创建位图,请使用将在其上绘制位图的呈现器目标的以下方法之一: ID2D1RenderTarget::CreateBitmapID2D1RenderTarget::CreateBitmapFromWicBitmap这里我们主要介绍了第一种方式创建: m_d2dDeviceContext->CreateBitmap( pi转载 2013-06-07 23:01:36 · 4589 阅读 · 0 评论 -
Direct2d effects
Direct2d effectsThe Direct2D effects API is an addition to Direct2D that provides image effect processing. Direct2D effects is GPU accelerated, immediate-mode, and is integrated with Direct2D.With Dir转载 2013-06-07 22:54:15 · 2872 阅读 · 0 评论 -
WTL-Direct2D,DirectWrite,Windows Animation
WTL-Direct2D,DirectWrite,Windows AnimationWindows 7引入了不少有趣的新技术:Direct2D,DirectWrite,Windows Animation,还有Windows Media Foundation等等,在加上之前Windows Vista引入的Windows Image Component等技术,基本上把整个UI,多媒体框架都进行了翻新。转载 2013-06-07 22:39:32 · 3115 阅读 · 0 评论 -
使用WIC将Direct2D绘制的图形保存为文件
从Windows Vista开始引入的WIC(Windows Imaging Component)组件以面向对象的方式处理位图,并且很适合与Direct2D配合使用。可以将Direct2D绘制的图像使用WIC保存为位图文件。以下代码演示如何将Direct2D绘制的带有透明背景色的图像保存到png位图文件:CComPtr spWicImagingFactory;IFR(Direct2DHelper转载 2013-06-07 22:37:42 · 4094 阅读 · 0 评论 -
如何在Direct2D中画Bezier曲线
如何在Direct2D中画Bezier曲线Direct2D通过ID2D1RenderTarget接口支持基本图元(直线,矩形,圆角矩形,椭圆等)的绘制,然而,此接口并未提供对曲线绘制的直接支持。因此,想要使用Direct2D绘制一段通过指定点的曲线,比如Bezier曲线,必须借助于DrawGeometry()方法间接实现。需要通过一定的算法,将指定点转换为定义Path的控制点。幸运的是,codpr转载 2013-06-07 22:36:17 · 3670 阅读 · 0 评论 -
Direct2D教程(六)图形也能做运算
概述大家都学过集合运算,给定两个集合,可以求他们的并集,交集,差集等。其实图形之间也能做运算,今天就带大家开始图形运算之旅,讲讲如何合并图形。在D2D中有四种方法合并图形,分别是并(UNION),交(INTERSECT),差(EXCLUDE)和异或(XOR)。那么图形之间是如何合并的呢?两个图形之间进行Xor的结果是什么呢?为了便于理解,我先把效果图贴上来。下面图片中第一副图示两个圆的原始图,第二转载 2013-06-06 17:15:14 · 2821 阅读 · 0 评论 -
Direct2D教程(五)复合图形
概述Direct2D支持以下几种类型的几何图形。Simple Geometry(简单几何图形) 矩形 圆角矩形 椭圆Path Geometry(路径图形)Composite Geometry(复合图形) Geometry Group(图形组) Transformed Geometry(变换的图形)上一篇介绍了Path geometry,这篇介绍复合图形。复合图形也可以转载 2013-06-06 17:14:07 · 3078 阅读 · 0 评论 -
Direct2D教程(四)Path Geometry
概述Direct2D支持以下几种类型的几何图形,上一篇介绍了简单几何图形,这篇介绍Path geometry。Simple Geometry(简单几何图形)矩形圆角矩形椭圆Path Geometry(路径图形)Composite Geometry(复合图形)Geometry Group(图形组)Transformed Geometry(变换的图形)Path geometry,说白了,就是以路径来描转载 2013-06-06 17:11:38 · 3054 阅读 · 0 评论 -
Direct2D图片处理
Using Bitmap BrushesDirect2D 中的图片处理增加了很多的灵活的特性,现在的Direct2D可以很好的和GUI,GUI+以及Direct3D混合使用,它支持更多的图形格式,更丰富的绘制方法。使用Direct2D绘制的win7程序,显示效果更好,绘制速度更快。 LRESULT InItD2D(HWND hWnd) { //创建一个Direct2D资源指针转载 2013-06-06 16:21:55 · 7920 阅读 · 0 评论 -
Direct2D中的2D显示
Dx11中的2D显示抛弃了Dx8和Dx9中的 ID3DxSprite 绘制精灵,也出乎意料的(出乎我的意料 :) )没有采用顶点方式而是返璞归真走向了表面。现在的Direct2D更像是GDI了~~~ DX11上Direct2D的第一个例题就是绘制一个笔刷~~这在原来是不可能实现的;原来的ID3DxSprite 只能够绘制基于纹理的格式,比如我们要做一个效果,当选中一个Button的时候,这个Bu转载 2013-06-06 15:53:32 · 4034 阅读 · 2 评论 -
提高二维矢量绘图效率
原文地址::http://blog.youkuaiyun.com/clever101/article/details/7365986作者:朱金灿来源:http://blog.youkuaiyun.com/clever101 这个问题很普遍。最近在研究这个问题,在网上搜了一些资料,再结合自己的经验,谈谈自己的一些想法。转载 2013-06-06 15:01:18 · 2166 阅读 · 0 评论 -
Visual Studio 2012 - Visual C++ MFC 类
MFC 类在下面的类中列出了 Microsoft 基础类 (MFC)库中。重要事项MFC 类及其成员不能在 Windows 运行时执行的应用程序。 本节内容CAccelerateDecelerateTransition 类实现加速-减速转换。CAnimateCtrl 类提供 windows 常用动画控件的功能。CAnimationBaseObject 类所有动画对象的基类。CAni转载 2013-06-15 15:52:18 · 5792 阅读 · 0 评论 -
向 MFC 项目添加 D2D 对象
此演练介绍如何将基本 Direct2D (D2D) 对象添加到 Visual C++ Microsoft 基础类库 (MFC) 项目中,然后将该项目构建到在渐变背景上输出“Hello, world”的应用程序中。 此演练演示如何完成以下这些任务: 创建 MFC 应用程序。原创 2013-06-15 15:14:54 · 4133 阅读 · 0 评论 -
Visual Studio2010 SP1针对Visual C++2010 做出的更新以及调整
Visual Studio2010 SP1针对Visual C++2010 做出的更新以及调整主要集中在下列方面。1.支持基于视频加速的MFC图像和动画MFC类增加了对Visual Studio 2010的SP1的 链接到的类方法增加了对Visual Studio 2010的SP1的链接到该已被添加到MFC的全局函数的参考文档。这包括已被添加到现有类的方法。2.新的AMD和Intel指令集支持,并转载 2013-06-15 15:45:24 · 2801 阅读 · 0 评论