Direct2D 应用程序接口概述
主要用到的头文件是:d2d1.h
编译时需要连接文件:d2d1.lib
 
Direct2D接口的老大 (root) 是 ID2D1Factory 和 ID2D1Resource
并且 ID2D1Resource 对象由 ID2D1Factory 对象创建
所有的 Direct2D 绘制对象都继承于 ID2D1Resource 
 
ID2D1Factory 对象的创建需要调用 CreateFactory 方法

ID2D1Factory *pDirect2dFactory;
D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &pDirect2dFactory);
ID2D1HwndRenderTarget 接口用于窗口的绘制
ID2D1BitmapRenderTarget 接口用于位图的绘制
 
ID2D1Target 实现绘制需要调用 BeginDraw / EndDraw 方法:

ID2D1HwndRenderTarget *pDirect2dRenderTarget;
//初始化Target代码......
pDirect2dRenderTarget->BeginDraw();
//绘制代码......
pDirect2dRenderTarget->EndDraw();
画刷:ID2D1Brush
SolidColor \ LinearGradient \ RadialGradient \ Bitmap \...
创建方法: pDirect2dRenderTarget->Creat***Brush(...);
***可以用任意一个画刷种类代替
 
简单几何图形:ID2D1Geometry
Rectangle \ Rounded \ Ellipse \ Path \ ...
创建方法:pDirect2dFactory->Create***Geometry(...);
 
位图加载:ID2D1Bitmap
采用WIC(Windows Imaging Component)加载
pDirect2dRenderTarget->CreateBitmapFromWicBitmap(...);
 
文字加载:(由RenderTarget调用)
DrawText方法:用于简单输出文字
DrawTextLayout方法:用于输出格式化的文字(需要IDWriteTextLayout 对象设置格式)
DrawGlyphRun方法:用于精确控制符号级布置的场景(需要用到dwrite.h文件中的DirectWrite工具)
 
至于这些接口的使用我将在之后的学习笔记中更新。

Direct2D 学习笔记(1)概述的更多相关文章

  1. Direct2D 学习笔记 前言

    Direct2D模板程序网址:https://docs.microsoft.com/zh-cn/windows/win32/direct2d/direct2d-quickstart DirectX S ...

  2. Struts2 学习笔记(概述)

    Struts2 学习笔记 2015年3月7日11:02:55 MVC思想 Strust2的MVC对应关系如下: 在MVC三个模块当中,struts2对应关系如下: Model: 负责封装应用的状态,并 ...

  3. μCos-ii学习笔记1_概述

    一.μCos-ii _概述 网上关于μCosii的文章多不胜数,本人学习的过程中也参考了很多人的理解和想法,看的是卢有亮老师的<嵌入式实时操作系统-μC/OS原理与实践>(第2版),同时也 ...

  4. MyBatis学习笔记(一) 概述

    一.什么是MyBatis? MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBat ...

  5. Python学习笔记 - day1 - 概述及安装

    Python概述 Python是一种计算机程序设计语言.我们平时已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合网页编程的JavaScript语言等等. Python ...

  6. Direct2D 学习笔记(2)画刷 Brush

    画刷的使用方法 需要包含的文件:<wincodec.h> 需要包含的库: "windowscodecs.lib" 资源网址:    https://docs.micro ...

  7. XML学习笔记1——概述

    我对于XML是很不够重视的,认识也是非常肤浅的,因为在之前的Web经验中,基本上都可以使用JSON来代替XML,JSON网络流量少,解析快,JS支持好等这些特点让我对自己的观点坚信不疑.然而我渐渐地改 ...

  8. angular2新手学习笔记(1)概述

    作为培训生出生的一员.在培训出来之后如愿的找到了一份能温饱的工作.进来之后告知公司后面的项目需要angular2来搭建. 对于只会jQuery和bootstrap这两招的我来说无疑是一个巨大的挑战,在 ...

  9. 以太坊区块链Java(EthereumJ)学习笔记:概述

    本系列文章介绍以太坊区块链基于Java语言的解决方案.通过介绍EthereumJ定义的主要模块和Class,希望为大家学习和使用EthereumJ提供一些帮助. 整体架构 以太坊的Java解决方案主要 ...

随机推荐

  1. [Sdoi2013] [bzoj 3198] spring (hash+容斥原理)

    题目描述 给出nnn个666维坐标,求有多少对点对满足恰好mmm个位置相等 1<=n<=1051<=n<=10^51<=n<=105 0<=k<=60& ...

  2. React应用数据传递的方式

    1. props属性 典型的React应用,数据通过props按照自上而下(父->子)的顺序传递数据. 2. Context传值 1. 应用场景 对于一些应用中全局性的属性(如UI主题.语言.登 ...

  3. PostgreSQL 多版本的实现与Innodb和oracle的差别

    PostgreSQL与oracle或InnoDB的多版本实现最大的区别在于最新版本和历史版本是否分离存储,PostgreSQL不分,而oracle和InnoDB分,而innodb也只是分离了数据,索引 ...

  4. package.json文件说明解释

    1.package.json是什么? 什么是Node.js的模块(Module)?在Node.js中,模块是一个库或框架,也是一个Node.js项目.Node.js项目遵循模块化的架构,当我们创建了一 ...

  5. Matlab学习——求解微分方程(组)

    介绍: 1.在 Matlab 中,用大写字母 D 表示导数,Dy 表示 y 关于自变量的一阶导数,D2y 表示 y 关于自变量的二阶导数,依此类推.函数 dsolve 用来解决常微分方程(组)的求解问 ...

  6. NodeJs的Event Loop

    我们之前谈过浏览器的Event Loop:https://www.cnblogs.com/amiezhang/p/11349450.html 简单来说,就是每执行一个宏任务,就去执行微任务队列,直到清 ...

  7. [WEB安全]Dirsearch工具命令

    下载项目,并打开 ┌─[root@kali]─[/kali] └──╼ #git clone https://github.com/maurosoria/dirsearch ┌─[root@kali] ...

  8. java maven scope compile,provide,system,test,runtime

    在一个maven项目中,如果存在编译需要而发布不需要的jar包,可以用scope标签,值设为provided.如下: <dependency>            <groupId ...

  9. windows 下 安装 Solr

    Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引:也可以通过Http Get操 ...

  10. BaggingClassifier

      写在前面 Ensemble methods 组合模型的方式大致为四个:/bagging / boosting / voting / stacking ,此文主要简单叙述 bagging算法. 算法 ...