View Issue Details

IDProjectCategoryView StatusLast Update
0003253NoesisGUIC++ SDKpublic2024-04-23 09:54
Reporternvonhertzen Assigned Tojsantos  
PrioritynormalSeveritycrashReproducibilityalways
Status assignedResolutionopen 
Product Version3.2 
Target Version3.2.4 
Summary0003253: TextBlock is limited to a text length of 65536 glyphs
DescriptionTextBlock component crashes when a text that exceeds 65536 (16 bit) glyphs are set. With a debug build, it will hit the assert in VGLContext.cpp#3966 (NS_ASSERT(firstRenderGlyph <= 0xffff);) and without the assert it will crash when attempting to render a glyph past that point. We'd like to understand why that limitation is in place, i.e. are we introducing some other issues if we update the GeoBuilderParams to store it as 32 bit? Is there some other way we can support texts that exceed this limitation? We don't directly control the content of the text, so manually splitting it isn't an option.
Steps To ReproduceCreate a TextBlock and assign text to it that exceeds 65536 glyphs.
TagsNo tags attached.
PlatformAny

Activities

jsantos

jsantos

2024-04-22 15:21

manager   ~0009396

This is a bug/limitation of our current implementation. We used uint16_t to improve cache coherency.

Promoting GeoBuilderParams::text::first from uint16_t to uint32_t is a good solution. Do that for now, I will work on this soon to analyze if there are other alternatives.

By the way, if you are getting the warning "Not enough space in glyph texture to render this frame" please make sure to increase the default dimensions for the glyph atlas using SetGlyphCacheWidth/SetGlyphCacheHeight in your RenderDevice (before initializing the view with it). Default is 1024 x 1024.
nvonhertzen

nvonhertzen

2024-04-23 09:54

reporter   ~0009401

Thanks, we'll go ahead and update it to uint32_t for now

Issue History

Date Modified Username Field Change
2024-04-22 03:29 nvonhertzen New Issue
2024-04-22 15:11 jsantos Assigned To => jsantos
2024-04-22 15:11 jsantos Status new => assigned
2024-04-22 15:11 jsantos Target Version => 3.2.4
2024-04-22 15:21 jsantos Note Added: 0009396
2024-04-22 15:21 jsantos Status assigned => feedback
2024-04-23 09:54 nvonhertzen Note Added: 0009401
2024-04-23 09:54 nvonhertzen Status feedback => assigned