MCPcopy Create free account
hub / github.com/defold/defold / QueueTextAndCopyVertices

Function QueueTextAndCopyVertices

engine/render/src/test/test_render.cpp:112–143  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

110}
111
112static uint32_t QueueTextAndCopyVertices(dmRender::HRenderContext render_context, dmRender::HFontMap font_map, const dmRender::DrawTextParams& params, dmArray<uint8_t>& out_vertices, HTextLayout* out_layout, float* out_radius_sq)
113{
114 dmRender::RenderListBegin(render_context);
115 dmRender::DrawText(render_context, font_map, 0, 0, params);
116
117 dmRender::TextContext& text_context = render_context->m_TextContext;
118 if (out_layout)
119 {
120 *out_layout = text_context.m_TextEntries.Size() > 0 ? text_context.m_TextEntries[0].m_TextLayout : 0;
121 }
122 if (out_radius_sq)
123 {
124 *out_radius_sq = text_context.m_TextEntries.Size() > 0 ? text_context.m_TextEntries[0].m_FrustumCullingRadiusSq : 0.0f;
125 }
126
127 dmRender::FlushTexts(render_context, dmRender::RENDER_ORDER_AFTER_WORLD, true);
128 dmRender::RenderListEnd(render_context);
129 dmRender::DrawRenderList(render_context, 0, 0, 0, dmRender::SORT_BACK_TO_FRONT);
130
131 uint32_t vertex_count = text_context.m_VertexIndex;
132 uint32_t vertex_stride = dmRender::GetFontVertexSize(text_context.m_FontRenderBackend);
133 uint32_t byte_count = vertex_count * vertex_stride;
134
135 out_vertices.SetCapacity(byte_count);
136 out_vertices.SetSize(byte_count);
137 if (byte_count > 0)
138 {
139 memcpy(out_vertices.Begin(), text_context.m_ClientBuffer, byte_count);
140 }
141
142 return vertex_count;
143}
144
145struct TestGlyphVertex
146{

Callers 1

TEST_FFunction · 0.85

Calls 10

RenderListBeginFunction · 0.85
DrawTextFunction · 0.85
FlushTextsFunction · 0.85
RenderListEndFunction · 0.85
DrawRenderListFunction · 0.85
GetFontVertexSizeFunction · 0.85
SizeMethod · 0.45
SetCapacityMethod · 0.45
SetSizeMethod · 0.45
BeginMethod · 0.45

Tested by

no test coverage detected