什么是Direct2D 一言以蔽之,就是Windows 7平台上的一个2D图形API,可以提供高性能,高质量的2D渲染.大多数人对Direct2D可能都比较陌生,以至于我之前在论坛上提到这个词的时候,有人竟然说你是不是写错了?可能大家比较熟悉的是Direct3D,因为D3D已经是当前游戏界的主流应用.在过去,3D世界是OpenGL与DirectX二分天下,但是由于OpenGL发展十分滞后,而且没有一个像微软这样强大的后台支柱,所以逐渐被DirectX所超越.回过头来说2D,过去Windows上的…
2014年世界杯首场淘汰赛马上开始了,闲着没事,整理以前的博客草稿打发时间,意外的发现这篇文章,本来是打算加入到Direct2D那个系列的,不知道为什么把它给遗漏了.环境配置,对于熟手来说,不是什么重要的东西,但是对于新手却很重要,尤其是没有接触过Direct2D的朋友们,整理一下发了出来,没有放博客园首页.喜欢的来顶顶. 引子 上一篇鼓吹了一些关于D2D的东西,从这一篇开始说说如何使用D2D来编程,由于我自己也是从头开始摸索,所以就写得详细点,把如何创建工程的部分也写一下,这就是这篇的由来.本…
本系列文章目录: SharpDX之Direct2D教程I——简单示例和Color(颜色) 绘制位图是绘制操作的不可缺少的一部分.在Direct2D中绘制位图,必须先利用WIC组件将位图加载到内存中,再绘制到RenderTarget中去 在SharpDX中绘制位图,分成两个部分: 利用WIC在SharpDX中加载位图,生成Bitmap对象 利用RenderTarget对象的DrawBitmap方法把Bitmap对象绘制到RenderTarget中去 利用WIC在SharpDX中加载位图文件 利用W…
研究Direct2D已经有一段时间了,也写了一个系列的文章 Direct2D ,是基于Windows API Code Pack 1.1.在前文 Direct2D教程VIII——几何(Geometry)对象的运算,本系列的终结篇 中介绍,由于Windows API Code Pack 1.1有错误问题,加上长时间没有更新(可以看出是2010年推出的),于是终止了该系列的教程. 在网上寻寻觅觅Windows API Code Pack 1.1的替代品.找到了SharpDX.SharpDX官网:ht…
目前博客园中成系列的Direct2D的教程有 1.万一的 Direct2D 系列,用的是Delphi 2009 2.zdd的 Direct2D 系列,用的是VS中的C++ 3.本文所在的 Direct2D教程 系列,用的是VS2010的Visual Basic语言(可以很方便的转为C#),基于Windows API Code Pack 1.1. 还有官方的说明文档 Direct2D ,用的是C++. 本系列的前几篇文章: Direct2D教程I——简介及首个例子 Direct2D教程II——绘制…
目前博客园中成系列的Direct2D的教程有 1.万一的 Direct2D 系列,用的是Delphi 2009 2.zdd的 Direct2D 系列,用的是VS中的C++ 3.本文所在的 Direct2D教程 系列,用的是VS2010的Visual Basic语言(可以很方便的转为C#),基于Windows API Code Pack 1.1. 还有官方的说明文档 Direct2D ,用的是C++. 本系列的前几篇文章: Direct2D教程I——简介及首个例子 Direct2D教程II——绘制…
目前博客园中成系列的Direct2D的教程有 1.万一的 Direct2D 系列,用的是Delphi 2009 2.zdd的 Direct2D 系列,用的是VS中的C++ 3.本文所在的 Direct2D教程 系列,用的是VS2010的Visual Basic语言(可以很方便的转为C#),基于Windows API Code Pack 1.1. 还有官方的说明文档 Direct2D ,用的是C++. 本系列的前几篇文章: Direct2D教程I——简介及首个例子 Direct2D教程II——绘制…
目前博客园中成系列的Direct2D的教程有 1.万一的 Direct2D 系列,用的是Delphi 2009 2.zdd的 Direct2D 系列,用的是VS中的C++ 3.本文所在的 Direct2D教程 系列,用的是VS2010的Visual Basic语言(可以很方便的转为C#),基于Windows API Code Pack 1.1. 还有官方的说明文档 Direct2D ,用的是C++. 本系列的前几篇文章: Direct2D教程I——简介及首个例子 Direct2D教程II——绘制…
目前博客园中成系列的Direct2D的教程有 1.万一的 Direct2D 系列,用的是Delphi 2009 2.zdd的 Direct2D 系列,用的是VS中的C++ 3.本文所在的 Direct2D教程 系列,用的是VS2010的Visual Basic语言(可以很方便的转为C#),基于Windows API Code Pack 1.1. 还有官方的说明文档 Direct2D ,用的是C++. 在Direct2D中不再区分笔刷(Brush)对象和画笔(Pen)对象,统一用笔刷(Brush)…
目前博客园中成系列的Direct2D的教程有 1.万一的 Direct2D 系列,用的是Delphi 2009 2.zdd的 Direct2D 系列,用的是VS中的C++ 3.本文所在的 Direct2D教程 系列,用的是VS2010的Visual Basic语言(可以很方便的转为C#),基于Windows API Code Pack 1.1. 还有官方的说明文档 Direct2D ,用的是C++. 几何(Geometry)对象 历数微软的图形开发技术,几何(Geometry)对象就不停的在发展…
目前,在博客园上,相对写得比较好的两个关于Direct2D的教程系列,分别是万一的Direct2D系列和zdd的Direct2D系列.有兴趣的网友可以去看看.本系列也是介绍Direct2D的教程,是基于Windows API Code Pack 1.1的Direct2D的教程,如果要调试文中的代码的话,还得参考前文 Direct2D教程I——简介及首个例子 下载导入Windows API Code Pack 1.1的动态库 在前文 Direct2D教程I——简介及首个例子 简单介绍了Direct…
本主题说明如何结合使用 Direct2D 和 GDI(可能为英文网页).有两种方法可以结合使用 Direct2D 和 GDI:您可以将 GDI 内容写入与 Direct2D GDI 兼容的呈现器目标,也可以将 Direct2D 内容写入 GDI 设备上下文 (DC) 0X01 将Direct2D内容绘制到GDI设备上下文: 要将 Direct2D 内容绘制到 GDI DC,可以使用 ID2D1DCRenderTarget.要创建 DC 呈现器目标,可以使用ID2D1Factory::Create…
在博客园里,系统的Direct2D的教程比较少,只有“万一”写了一个关于Direct2D的系列(Delphi 2009).于是,仿照其系列,写一个在VS下的Direct2D系列教程. 博客园中的高手还是有不少的,在写本系列教程的过程中,也会把碰到的问题或疑惑一一贴出来,期待高手的解答.以使得大家共同提高. 什么是Direct2D 一言以蔽之,就是Windows 7平台上的一个2D图形API,可以提供高性能,高质量的2D渲染.大多数人对Direct2D可能都比较陌生,以至于我之前在论坛上提到这个词…
引子 任何一门语言的第一个教程几乎都是Hello,world.我们也不例外,但是这里不是教大家打印Hello,world,而是编写一个简单的D2D绘制程序,让大家对Direct2D的程序结构及编程方法有一个基本的认识.下面我们来看如何一步一步绘制一个矩形. 基本概念 在开始之前,还是先介绍一些基本的概念,有助于大家理解程序,这些概念包括,Brush(画刷),Render target(渲染目标),Geometry(几何图形),它们会贯穿整个教程,所以越早介绍越好,对于有Windows GDI基础…
概述 这篇的标题更确切的说应该叫位图画刷,这样才好和前几篇对应起来.在Direct2D中,位图的渲染也是通过画刷来实现的. Direct2D中并没有直接操作位图的接口,而是借助WIC(Windows Image Component)来完成的.今天我们来看看如何在Direct2D中加载并显示位图.这个方法可以用来渲染背景.基本步骤如下. 从文件创建WIC位图 由WIC位图创建D2D位图 使用D2D绘制位图 在开始之前,首先简要介绍一下WIC 什么是WIC? WIC全称是Windows Image…
从本章开始,我们介绍D2D几何图形. D2D图形分类 Direct2D支持多种类型的几何图形,包括Simple Geometry(简单几何图形) 矩形 圆角矩形 椭圆 Path Geometry(路径图形)Composite Geometry(复合图形) Geometry Group(图形组) Transformed Geometry(变换的图形) 各种图形对应的D2D接口如下,所有接口都继承自ID2D1Geometry. 矩形-ID2D1RectangleGeometry 圆角矩形-ID2D1…
什么是Layers? Layer,中文译成图层,在Direct2D中可以用来完成一些特殊效果,使用Layer的时候,先将Layer Push到render target,然后进行绘制,此时是直接绘制在Layer上的,绘制完毕后,将Layer Pop出来,刚刚绘制在Layer上的内容就会组合到render target上.在Direct2D中,Layer使用接口ID2D1Layer来表示. 和画刷一样,Layer由render target创建,属于设备相关的资源,Layer可以用于任何rende…
Direct2D Direct2D教程III——几何(Geometry)对象 摘要: 目前博客园中成系列的Direct2D的教程有1.万一的 Direct2D 系列,用的是Delphi 20092.zdd的 Direct2D 系列,用的是VS中的C++3.本文所在的 Direct2D教程 系列,用的是VS2010的Visual Basic语言(可以很方便的转为C#),基于Windows API Code Pack 1.1.还有官方的说明文档 Direct2D ,用的是C++.几何(Geometr…
Direct2D 是微软新的二维图形 API,可为二维几何图形.位图和文本提供高性能和高质量的呈现.Direct2D 支持硬件加速,无论是绘制速度还是绘制质量,Direct2D 都要比 GDI 和 GDI+ 好很多,不过系统要求 Windows 7 或 Windows Vista SP2 以上. 关于 Direct2D 的一些介绍可以参见微软的帮助<关于 Direct2D>. Direct2D 内置了很多特效(Effects),包括高斯模糊(Gaussian Blur).颜色转换(Color…
原文:Direct2D 第6篇 绘制多种风格的线条 上图是使用Direct2D绘制的线条,Direct2D在效率上比GDI/GDI+要快几倍,GDI/GDI+绘图是出了名的"慢",不过Direct2D的绘制线条代码,要比GDI/GDI+要繁锁一些. 1.首先,初始化Direct2D(可以参考 http://blog.csdn.net/ubuntu_ai/article/details/50365536 ) 2.创建线条的风格实例  ID2D1StrokeStyle,以下函数Create…
书接上回,Cairo编译好使用后,发现简单的每帧画100条随机线段就卡得不行,装了个gooreplacer( http://liujiacai.net/gooreplacer/ )上stackoverflow上问了下, 有个老外回复说是硬件加速问题,默认Cairo是CPU处理,所以慢,也不知道有什么现成的轻量级矢量库集成Cairo并且可以硬件加速画线段,但是他提到了NanoVG矢量库,说是Opengl原生框架, 于是我下载试了一下,每帧3000直线不卡,不过不支持dash点线这种,功能似乎只是最…
在前文 SharpDX之Direct2D教程II——加载位图文件和保存位图文件 中,发现在VB2010中不能很好的运用SharpDx中的WIC组件进行图片的编码工作.可能是我的设置问题,也可能是SharpDx对VB2010支持的不够好(用C#就没有问题) ,有网友将代码贴到VB2012中,也发现可以运行的很好.由于手头上没有VS2012,故这个功能的实验放置一段时间 不过,回过头想一想.我们需要WIC的图片编码功能么? Direct2D(SharpDx等)的显示绘制优势 和GDI.GDI+相比,…
绘制基本图形和线型(StrokeStyle)的设置详解 目前,在博客园上,相对写得比较好的两个关于Direct2D的教程系列,分别是万一的Direct2D系列和zdd的Direct2D系列.有兴趣的网友可以去看看.本系列也是介绍Direct2D的教程,是基于Windows API Code Pack 1.1的Direct2D的教程,如果要调试文中的代码的话,还得参考前文 Direct2D教程I——简介及首个例子 下载导入Windows API Code Pack 1.1的动态库 在前文 Dire…
本文来告诉大家如何在 WPF 使用 D2D 画图. 本文是一个系列 WPF 使用 Direct2D1 画图入门 WPF 使用 Direct2D1 画图 绘制基本图形 WPF 使用 SharpDX WPF 使用 SharpDX 在 D3DImage 显示 WPF 使用封装的 SharpDx 控件 WPF 使用 SharpDx 异步渲染 什么是 D2D 实际上现在很多小伙伴对于渲染性能就是听到 DirectX 才会去搜索这个博客.我在博客园看到很少的博客讲到这个.即使有也很少会说如何使用 WPF 的…
书接上回,Cairo编译好使用后,发现简单的每帧画100条随机线段就卡得不行,装了个gooreplacer( http://liujiacai.net/gooreplacer/ )上stackoverflow上问了下, 有个老外回复说是硬件加速问题,默认Cairo是CPU处理,所以慢,也不知道有什么现成的轻量级矢量库集成Cairo并且可以硬件加速画线段,但是他提到了NanoVG矢量库,说是Opengl原生框架, 于是我下载试了一下,每帧3000直线不卡,不过不支持dash点线这种,功能似乎只是最…
title author date CreateTime categories C# 从零开始写 SharpDx 应用 笔刷 lindexi 2019-8-30 8:50:0 +0800 2019-6-23 20:15:4 +0800 C# 本文告诉大家如何在 SharpDx 里面使用笔刷,包括纯色笔刷.渐变笔刷和图片笔刷 本文属于 SharpDx 系列 博客,建议从头开始读 初始化 本文将会在 C# 从零开始写 SharpDx 应用 初始化dx修改颜色的代码基础进行修改 用到的初始化代码也不多…
本文告诉大家如何在 SharpDx 里面使用笔刷,包括纯色笔刷.渐变笔刷和图片笔刷 本文属于 SharpDx 系列 博客,建议从头开始读 初始化 本文将会在 C# 从零开始写 SharpDx 应用 初始化dx修改颜色的代码基础进行修改 用到的初始化代码也不多,请看下面代码,这些代码都可以在上一篇博客找到 private void InitializeDeviceResources() { var backBufferDesc = new ModeDescription(Width, Height…
configure是一个命令行工具,用于配置Qt编译到指定平台.configure必须运行于Qt源码根目录.当运行configure时,编译源码使用的是所选工具链中的make工具. 一.源码目录.编译目录和安装目录 源码目录就是包含源码的目录.编译目录是包含Makefiles文件.object文件和其他中间文件的目录.安装目录是二进制文件和库文件安装的目录. 当编译目录和源码目录不一样时,称为影子编译(shadow build),比如说,Qt Creator默认是使用影子编译来编译工程的.这里也…
转载请注明出处:http://www.cnblogs.com/Ray1024 一.概述 Direct2D是一个基于Direct3D的2D图形API,可以利用硬件加速特性来提供高性能高质量的2D渲染.但是使用过老版本Direct2D的朋友应该都会发现,如果你想使用它来实现2D图形效果很困难,只能用来做一些基本的绘制和变换.但是最近看了msdn上面Direct2D有了1.1和1.3版本,这些版本提供了更丰富的功能,但是只有英文文档,所以大家可能对这些功能不是很熟悉.在这一系列教程中,将详细介绍Dir…
转载请注明出处:http://www.cnblogs.com/Ray1024 一.概述 Direct2D使用Windows图像处理组件 (WIC) 来加载位图.从文件加载位图的方法很简单,而且网上的教程也很多,相信大家都非常熟悉了.但是如果需要从资源加载位图,该怎么做呢? 从资源加载Direct2D位图的需求是很常见的,但是网上关于从资源加载位图的资料很少.折腾了很久终于找到了解决方法,贴到这里供大家参考. 二.从资源加载位图 1.在应用程序资源定义文件中定义资源.下面代码为resource.h…