Direct3D 2D文本绘制



现在学习下Direct3D在窗口中绘制一些文本信息,ID3DXFont接口负责创建字体和绘制二维的文本.我们介绍下ID3DXFont的用法.

1.创建LPD3DXFONT接口

LPD3DXFONT g_pTextInfor = NULL;
    //创建字体
    D3DXCreateFont(g_pd3dDevice,                //Direct3D设备
        26,                                        //字体的高度
        0,                                        //字体的宽度
        1000,                                    //字体的权重值
        0,                                        //过滤属性
        false,                                    //是否斜体
        DEFAULT_CHARSET,                        //字符集
        OUT_DEFAULT_PRECIS,                        //文本的精度
        DEFAULT_QUALITY,                        //输出的质量
        0,                                        //字体的索引号,一般填0
        L"黑体",                                //字体类型
        &g_pTextInfor);

2.绘制文本

g_pd3dDevice->Clear(0, NULL, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0);

//定义一个矩形,用于获取主窗口矩形
RECT formatRect;
GetClientRect(hwnd, &formatRect);
g_pd3dDevice->BeginScene();                     // 开始绘制
g_pTextInfor->DrawText(0,L"盘子",-1,&formatRect,DT_SINGLELINE | DT_NOCLIP | DT_LEFT, D3DCOLOR_RGBA(235,123,230,255));

g_pd3dDevice->EndScene();                       // 结束绘制
g_pd3dDevice->Present(NULL, NULL, NULL, NULL);  // 翻转与显示
时间: 2024-10-08 15:30:22

Direct3D 2D文本绘制的相关文章

iOS开发——图层OC篇&Quartz 2D各种绘制实例

Quartz 2D各种绘制实例 首先说一下,本篇文章只是介绍怎么使用Quartz 2D绘制一些常用的图像效果,关于Quartz和其他相关技术请查看笔者之前写的完整版(Quartz 2D详解) 一:画线 1 // 1.获取跟当前View相关联的layer上下文(画板) 2 // 总结:目前获取的所有上下文都是以UIGraphics开头 3 // CGContextRef:上下文类型 4 // CG:CoreGraphics Ref:引用 5 CGContextRef ctx = UIGraphic

iOS上文本绘制的几种方法

文本绘制在开发客户端程序中是一个比较常用的功能,可分为采用控件和直接绘制两种方式. 采用控件的方式比较简便,添加一个比如UILabel对象,然后设置相关属性就好了.但这种方式局限性也比较大. 直接绘制相对比较自由,但也分为使用NSString和Quartz 2D两种方式. NSString有一组绘制文本的函数,drawAtPoint是其中一个.使用方式如下: 1 NSString* text = @"This is English text(NSString)."; 2 [text d

DirectX 文本绘制

在Direct中进行文本绘制,可以通过Win32程序框架实现,也可以通过DXUT进行绘制. 基于第一篇的Win32框架入门实现非常简单,只需要添加数行代码即可.主要说需要修改的地方. #pragma  comment(lib,"dxerr.lib")#pragma  comment(lib,"dxguid.lib")#pragma  comment(lib,"d3dx9d.lib")#pragma  comment(lib,"d3d9.

第70课 文本绘制技巧

1. QPainter拥有绘制文本的能力 (1)drawText(拥有多个重载形式) (2)常见调用方式 ①p.drawText(10,10, "Santa Claus");  //在坐标(10,10)处绘制文本 ②p.drawText(0,0,100,30, Qt::AlignCenter, "Santa Claus"); //在矩形范围内并以居中对齐的方式绘制文本. 2. 绘制参数 (1)字体(QFont).颜色(QColor):控制文本大小.风格.颜色等 (2

Android中GPU硬件加速控制及其在2D图形绘制上的局限

图形的渲染可分为两种:软件渲染和硬件渲染.软件渲染是靠CPU计算各种坐标并绘制,主要是占用内存:硬件渲染是靠GPU,主要占用显存,一般的3D图形程序(OpenGL.DirectX)都是GPU加速的. 在Android3.0之前,2D绘图API只支持软件渲染模式,从Android3.0开始,2D绘图API开始支持GPU硬件渲染,即View中的Canvas的绘图操作会使用GPU,所以从Android 3.0(API Level 11)开始,View中就多了一些和硬件相关的方法.如果App的Andro

JAVA学习之JAVA 2D图形绘制

最近一直没有空写博客,事情比较多,静不下心,事情顺其自然好了,有些事我也不懂为什么会变成现在这样,你以为你付出了你最珍贵的,但或许别人并不喜欢.算了,不多想,顺其自然好了. JAVA在图形绘制方面效率跟不上C++,但是我觉得JAVA也有其在图形方面的一些优势,不过对于大型桌面游戏就不行了,估计连流畅度都不能保证. 下面给出最近写的代码: package draw; import java.awt.*; import javax.swing.*; import java.awt.geom.*; p

给LinkLabel文本绘制颜色

我在form中有一个linkLabel,显示文字是“中秋快乐”.现在我希望其中的“中秋”两个字用红色字体显示,“快乐”用黑色字体.请问如何在一个linkLabel中实现上述效果? 答案: private void Form1_Load(object sender, EventArgs e) { this.linkLabel1.Paint += linkLabel1_Paint; this.linkLabel1.Text = "中秋快乐"; } private void linkLabe

4. 2D绘制与控件绘制

绘制基本图形和文本 绘制图形和文本的基本方法 drawPoint(绘制点).drawLine(绘制直线).drawCircle(绘制圆) drawArc(绘制弧).drawText(绘制文本) 1 package cn.eoe.draw; 2 3 import android.app.Activity; 4 import android.content.Context; 5 import android.graphics.Canvas; 6 import android.graphics.Col

DirectX游戏编程学习(二)文本显示与基本图元绘制

一.文本显示 在游戏开发中,在游戏界面上现实一些文字信息是很常见的一件事,要学习DX游戏开发,显然了解DX文本如何显示是必不可少的.字符包含诸多的属性,比如颜色,大小,是否加粗,斜体,等等.我们通过DX提供的LPD3DFONT对象来指定这些字体属性,然后再进行渲染. 采用WIN32程序框架实现文本绘制的具体流程如下: 二.基本图元的绘制 无论再复杂的物体,它归根结底都是由基本图元构成的.在CG(Computer graphics)领域,人们普遍使用一组或者多组包围物体表面的多边形近似的表示真实的