litzlbauer
Topic Author
Posts: 5
Joined: 19 Jan 2015, 23:10

[Noesis 1.2.3]: Fonts are not released after shutdown

03 Jun 2015, 16:08

Hi,

We recently added a custom font to our game user interface. Now the Visual Studio Debug Memory tracker reports a memory leak. The memory leak only ocures when I use a custom font. Otherwise everything is find no matter how complex my xcml files are. I read that fonts are cached. Do I need to call a separate function to clear the cache when quitting the game? The clear cache seems to be gone in the latest Noesis version.(viewtopic.php?f=3&t=708&p=3923&hilit=clear+cache#p3923).

We are using Ogre and the NoesisUI OgreBinding you provided.
<UserControl
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Height="350" Width="525" TextElement.FontFamily="../fonts/#DIN">
	<Viewbox x:Name="LayoutRoot" RenderTransformOrigin="0.5,0.5">
		<Grid Width="1280" Height="960">
			<TextBlock HorizontalAlignment="Center" Margin="0" TextWrapping="Wrap" Text="TITLE" VerticalAlignment="Center" FontSize="36"/>
		</Grid>
	</Viewbox>
</UserControl>
After quitting the application using Noesis::GUI::Shutdown(); I get a memory leak indicating that the font is still allocated.
{162742} normal block at 0x081CFD60, 32 bytes long.
 Data: <fonts/DIN-Bold.t> 66 6F 6E 74 73 2F 44 49 4E 2D 42 6F 6C 64 2E 74 
{162741} normal block at 0x081CFCA0, 8 bytes long.
 Data: <        > FC A8 D5 00 00 00 00 00 
{162682} normal block at 0x081C4550, 32 bytes long.
 Data: <fonts/DIN-Regula> 66 6F 6E 74 73 2F 44 49 4E 2D 52 65 67 75 6C 61 
{162681} normal block at 0x081C4490, 8 bytes long.
 Data: <D       > 44 A9 D5 00 00 00 00 00 
Thank you!
 
User avatar
jsantos
Site Admin
Posts: 2905
Joined: 20 Jan 2012, 17:18
Contact:

Re: [Noesis 1.2.3]: Fonts are not released after shutdown

05 Jun 2015, 19:12

You don't need to manually clear the cache. It is done automatically.

Before any further investigation, please make sure that all Ptr you own (Ptr<IRenderer> for example) are NULL (by calling Reset()) before calling Shutdown().

Who is online

Users browsing this forum: No registered users and 0 guests