slot 0.0.1
A real time UI render framework
载入中...
搜索中...
未找到
Public 成员函数 | Private 成员函数 | Private 属性 | 所有成员列表
z8::DX12TextRenderer类 参考

#include <DX12TextRenderer.h>

类 z8::DX12TextRenderer 继承关系图:
Inheritance graph
[图例]
z8::DX12TextRenderer 的协作图:
Collaboration graph
[图例]

Public 成员函数

 DX12TextRenderer (DX12Render *render)
 
void Draw (const std::vector< ui::TextNode * > &texts, int bufferIndex, float originX, float originY)
 
void Init (ID3D12Resource *const buffers[2], DXGI_FORMAT format, float dpiScale)
 
void PrepareResize ()
 
void Resize (ID3D12Resource *const buffers[2], DXGI_FORMAT format, float dpiScale)
 
void Shutdown ()
 
- Public 成员函数 继承自 z8::DX12Common
 DX12Common (DX12Render *)
 
virtual ~DX12Common ()=default
 

Private 成员函数

void CreateDevices ()
 
void CreateTargets (ID3D12Resource *const buffers[2], DXGI_FORMAT format, float dpiScale)
 
IDWriteTextFormatGetFormat (const ui::TextNode &node)
 

Private 属性

ComPtr< ID3D11DeviceD3D11Device
 
ComPtr< ID3D11DeviceContextD3D11Context
 
ComPtr< ID3D11On12DeviceD3D11On12Device
 
ComPtr< ID2D1Factory3D2DFactory
 
ComPtr< ID2D1Device2D2DDevice
 
ComPtr< ID2D1DeviceContext2D2DContext
 
ComPtr< IDWriteFactoryWriteFactory
 
ComPtr< ID3D11ResourceWrappedBuffers [2]
 
ComPtr< ID2D1Bitmap1Targets [2]
 
std::unordered_map< unsigned, ComPtr< IDWriteTextFormat > > Formats
 
bool Initialized = false
 

额外继承的成员函数

- Public 属性 继承自 z8::DX12Common
DX12DeviceCtx
 
DX12RenderRender
 

详细描述

在 DX12 UI 几何之后绘制 DirectWrite 文字的互操作通道。

D3D11On12 只包装当前交换链缓冲,不拥有其生命周期;Resize 前必须释放包装, 绘制后必须 Flush,保证 Direct2D 提交发生在 DX12 Present 之前。

构造及析构函数说明

◆ DX12TextRenderer()

DX12TextRenderer::DX12TextRenderer ( DX12Render * render)
explicit

成员函数说明

◆ CreateDevices()

void DX12TextRenderer::CreateDevices ( )
private
这是这个函数的调用关系图:

◆ CreateTargets()

void DX12TextRenderer::CreateTargets ( ID3D12Resource *const buffers[2],
DXGI_FORMAT format,
float dpiScale )
private
这是这个函数的调用关系图:

◆ Draw()

void DX12TextRenderer::Draw ( const std::vector< ui::TextNode * > & texts,
int bufferIndex,
float originX,
float originY )
函数调用图:
这是这个函数的调用关系图:

◆ GetFormat()

IDWriteTextFormat * DX12TextRenderer::GetFormat ( const ui::TextNode & node)
private
这是这个函数的调用关系图:

◆ Init()

void DX12TextRenderer::Init ( ID3D12Resource *const buffers[2],
DXGI_FORMAT format,
float dpiScale )

为任意 WindowSurface 的两个交换链缓冲建立 DirectWrite 包装目标。

函数调用图:
这是这个函数的调用关系图:

◆ PrepareResize()

void DX12TextRenderer::PrepareResize ( )
这是这个函数的调用关系图:

◆ Resize()

void DX12TextRenderer::Resize ( ID3D12Resource *const buffers[2],
DXGI_FORMAT format,
float dpiScale )
函数调用图:
这是这个函数的调用关系图:

◆ Shutdown()

void DX12TextRenderer::Shutdown ( )

按 Direct2D → wrapped resource → D3D11On12 的依赖顺序显式释放。

这是这个函数的调用关系图:

类成员变量说明

◆ D2DContext

ComPtr<ID2D1DeviceContext2> z8::DX12TextRenderer::D2DContext
private

◆ D2DDevice

ComPtr<ID2D1Device2> z8::DX12TextRenderer::D2DDevice
private

◆ D2DFactory

ComPtr<ID2D1Factory3> z8::DX12TextRenderer::D2DFactory
private

◆ D3D11Context

ComPtr<ID3D11DeviceContext> z8::DX12TextRenderer::D3D11Context
private

◆ D3D11Device

ComPtr<ID3D11Device> z8::DX12TextRenderer::D3D11Device
private

◆ D3D11On12Device

ComPtr<ID3D11On12Device> z8::DX12TextRenderer::D3D11On12Device
private

◆ Formats

std::unordered_map<unsigned, ComPtr<IDWriteTextFormat> > z8::DX12TextRenderer::Formats
private

◆ Initialized

bool z8::DX12TextRenderer::Initialized = false
private

◆ Targets

ComPtr<ID2D1Bitmap1> z8::DX12TextRenderer::Targets[2]
private

◆ WrappedBuffers

ComPtr<ID3D11Resource> z8::DX12TextRenderer::WrappedBuffers[2]
private

◆ WriteFactory

ComPtr<IDWriteFactory> z8::DX12TextRenderer::WriteFactory
private

该类的文档由以下文件生成: