MCPcopy Create free account
hub / github.com/NVIDIAGameWorks/Falcor / TextRenderer

Method TextRenderer

Source/Falcor/Utils/UI/TextRenderer.cpp:69–109  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

67} // namespace
68
69TextRenderer::TextRenderer(ref<Device> pDevice) : mpDevice(pDevice)
70{
71 for (uint32_t i = 0; i < kVaoCount; ++i)
72 {
73 // Create a vertex buffer
74 const uint32_t vbSize = (uint32_t)(sizeof(Vertex) * kMaxCharCount * std::size(kVertexPos));
75 ref<Buffer> pVb = mpDevice->createBuffer(vbSize, ResourceBindFlags::Vertex, MemoryType::Upload, nullptr);
76 mpVaos[i] = createVAO(pVb);
77 }
78
79 // Create the RenderState
80 mpPass = RasterPass::create(mpDevice, "Utils/UI/TextRenderer.3d.slang", "vsMain", "psMain");
81 auto& pState = mpPass->getState();
82
83 // create the depth-state
84 DepthStencilState::Desc dsDesc;
85 dsDesc.setDepthEnabled(false);
86 pState->setDepthStencilState(DepthStencilState::create(dsDesc));
87
88 // Rasterizer state
89 RasterizerState::Desc rsState;
90 rsState.setCullMode(RasterizerState::CullMode::None);
91 pState->setRasterizerState(RasterizerState::create(rsState));
92
93 // Blend state
94 BlendState::Desc blendDesc;
95 blendDesc.setRtBlend(0, true).setRtParams(
96 0,
97 BlendState::BlendOp::Add,
98 BlendState::BlendOp::Add,
99 BlendState::BlendFunc::SrcAlpha,
100 BlendState::BlendFunc::OneMinusSrcAlpha,
101 BlendState::BlendFunc::One,
102 BlendState::BlendFunc::One
103 );
104 pState->setBlendState(BlendState::create(blendDesc));
105 mpFont = std::make_unique<Font>(mpDevice, getRuntimeDirectory() / "data/framework/fonts/dejavu-sans-mono-14");
106
107 // Initialize the buffer
108 mpPass->getRootVar()["gFontTex"] = mpFont->getTexture();
109}
110
111TextRenderer::~TextRenderer() = default;
112

Callers

nothing calls this directly

Calls 7

createVAOFunction · 0.85
createBufferMethod · 0.80
setCullModeMethod · 0.80
getRootVarMethod · 0.80
sizeFunction · 0.50
createFunction · 0.50
getTextureMethod · 0.45

Tested by

no test coverage detected