<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Hello, font loading keeps crashing in allegro5?</title>
		<link>http://www.allegro.cc/forums/view/616299</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Fri, 27 May 2016 00:12:46 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>ive been trying to figure this out for months now, I read the same topics but i must not be able to understand it. (although i understand it more than struggling with unity and its crazy bad component system) </p><p>im by no means the most competent C++ programmer, pretty sure im barely considered a beginner. but I try to understand concepts such as running my mainloop logic outside of main (as in, declared headers) not sure thats even a good practice but I&#39;ve seen other games source code do stuff similar. Anyway sorry about the introduction basically I wanted to make it known that I have a bit of experience getting things to work and this does not.</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span><span class="p">#include &lt;iostream&gt;</span>
<span class="number">   2</span><span class="p">#include &lt;cstdio&gt;</span>
<span class="number">   3</span><span class="p">#include &lt;string&gt;</span>
<span class="number">   4</span>
<span class="number">   5</span><span class="p">#include &lt;allegro5/allegro.h&gt;</span>
<span class="number">   6</span><span class="c">//</span>
<span class="number">   7</span>
<span class="number">   8</span><span class="p">#include &lt;allegro5/allegro_font.h&gt;</span>
<span class="number">   9</span><span class="p">#include &lt;allegro5/allegro_ttf.h&gt;</span>
<span class="number">  10</span>
<span class="number">  11</span>
<span class="number">  12</span><span class="c">//</span>
<span class="number">  13</span><span class="p">#include &lt;allegro5/allegro_native_dialog.h&gt;</span>
<span class="number">  14</span>
<span class="number">  15</span><span class="c">//namespaces</span>
<span class="number">  16</span><span class="k1">using</span> <span class="k1">namespace</span> std<span class="k2">;</span>
<span class="number">  17</span>
<span class="number">  18</span><span class="c">//start main</span>
<span class="number">  19</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc, <span class="k1">char</span> <span class="k3">*</span><span class="k3">*</span>argv<span class="k2">)</span>
<span class="number">  20</span><span class="k2">{</span>
<span class="number">  21</span>
<span class="number">  22</span>    <span class="c">//</span>
<span class="number">  23</span>    <span class="c">//printf("Testing allegro...\n");</span>
<span class="number">  24</span>    <span class="c">//</span>
<span class="number">  25</span>
<span class="number">  26</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>display <span class="k3">=</span> NULL<span class="k2">;</span> 
<span class="number">  27</span>
<span class="number">  28</span>    <span class="k1">if</span><span class="k2">(</span> <span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span> <span class="k2">)</span>
<span class="number">  29</span>    <span class="k2">{</span>
<span class="number">  30</span>
<span class="number">  31</span>        <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span>NULL, NULL, NULL, <span class="s">"failed to initialize allegro5!"</span>, NULL, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number">  32</span>
<span class="number">  33</span>        <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  34</span>    <span class="k2">}</span>
<span class="number">  35</span>
<span class="number">  36</span>    <a href="http://www.allegro.cc/manual/al_init_font_addon"><span class="a">al_init_font_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  37</span>    <a href="http://www.allegro.cc/manual/al_init_ttf_addon"><span class="a">al_init_ttf_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  38</span>
<span class="number">  39</span>
<span class="number">  40</span>
<span class="number">  41</span>    <span class="c">//</span>
<span class="number">  42</span>    display <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span><span class="n">800</span>, <span class="n">600</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  43</span>
<span class="number">  44</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>display<span class="k2">)</span>
<span class="number">  45</span>    <span class="k2">{</span>
<span class="number">  46</span>
<span class="number">  47</span>        <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span>NULL, NULL, NULL, <span class="s">""</span>, NULL, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number">  48</span>
<span class="number">  49</span>        <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  50</span>    <span class="k2">}</span>
<span class="number">  51</span>
<span class="number">  52</span>
<span class="number">  53</span>
<span class="number">  54</span>    <span class="c">//</span>
<span class="number">  55</span>    <span class="c">//ALLEGRO_PATH *path = al_get_standard_path(ALLEGRO_RESOURCES_PATH);</span>
<span class="number">  56</span>
<span class="number">  57</span>
<span class="number">  58</span>
<span class="number">  59</span>    ALLEGRO_PATH <span class="k3">*</span>path <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_standard_path"><span class="a">al_get_standard_path</span></a><span class="k2">(</span>ALLEGRO_RESOURCES_PATH<span class="k2">)</span><span class="k2">;</span>
<span class="number">  60</span>
<span class="number">  61</span>    <a href="http://www.allegro.cc/manual/al_append_path_component"><span class="a">al_append_path_component</span></a><span class="k2">(</span>path, <span class="s">"resources"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  62</span>    <a href="http://www.allegro.cc/manual/al_change_directory"><span class="a">al_change_directory</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_path_cstr"><span class="a">al_path_cstr</span></a><span class="k2">(</span>path, <span class="s">'/'</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>  <span class="c">// change the working directory</span>
<span class="number">  63</span>    <span class="c">//fprintf(path);</span>
<span class="number">  64</span>    <span class="c">//return path;</span>
<span class="number">  65</span>    cout <span class="k3">&lt;</span><span class="k3">&lt;</span> path <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span> <span class="c">//returns a hexadecimal memory address? not sure how that helps me, i cant read those.. yet.</span>
<span class="number">  66</span>    <a href="http://www.allegro.cc/manual/al_destroy_path"><span class="a">al_destroy_path</span></a><span class="k2">(</span>path<span class="k2">)</span><span class="k2">;</span>
<span class="number">  67</span>
<span class="number">  68</span>    <span class="c">//</span>
<span class="number">  69</span>    <span class="c">//al_change_directory(al_path_cstr(path, '/'));</span>
<span class="number">  70</span>    <span class="c">//al_destroy_path(path);</span>
<span class="number">  71</span>    <span class="c">///</span>
<span class="number">  72</span>
<span class="number">  73</span>    <span class="c">//initialize</span>
<span class="number">  74</span>    <span class="c">//</span>
<span class="number">  75</span>
<span class="number">  76</span>    <span class="c">//</span>
<span class="number">  77</span>    <span class="c">///variable types</span>
<span class="number">  78</span>
<span class="number">  79</span>    <span class="c">//Fonts</span>
<span class="number">  80</span>
<span class="number">  81</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_FONT"><span class="a">ALLEGRO_FONT</span></a> <span class="k3">*</span>font24 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_ttf_font"><span class="a">al_load_ttf_font</span></a><span class="k2">(</span><span class="s">"arial.ttf"</span>, <span class="n">24</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  82</span>
<span class="number">  83</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>font24<span class="k2">)</span>
<span class="number">  84</span>    <span class="k2">{</span>
<span class="number">  85</span>      <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Could not load 'arial.ttf'.\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  86</span>      <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  87</span>    <span class="k2">}</span>
<span class="number">  88</span>
<span class="number">  89</span>    <span class="c">//</span>
<span class="number">  90</span>
<span class="number">  91</span>    <span class="c">//</span>
<span class="number">  92</span>    <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  93</span>    <span class="c">//</span>
<span class="number">  94</span>    <span class="c">//draw to screen</span>
<span class="number">  95</span>    <span class="c">//al_draw_text(font24, al_map_rgb(255, 0, 255), 50, 50, 0, "Test text.");</span>
<span class="number">  96</span>
<span class="number">  97</span>    <a href="http://www.allegro.cc/manual/al_draw_text"><span class="a">al_draw_text</span></a><span class="k2">(</span>font24, <a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">200</span>,<span class="n">0</span>,<span class="n">200</span><span class="k2">)</span>, <span class="n">50</span>.<span class="n">0</span>, <span class="n">50</span>.<span class="n">0</span>, <span class="n">0</span>, <span class="s">"Hello World"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  98</span>
<span class="number">  99</span>    <span class="c">//printf("Failed to load font!\n");</span>
<span class="number"> 100</span>
<span class="number"> 101</span>
<span class="number"> 102</span>    <span class="c">//</span>
<span class="number"> 103</span>    <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 104</span>    <a href="http://www.allegro.cc/manual/al_rest"><span class="a">al_rest</span></a><span class="k2">(</span><span class="n">10</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 105</span>
<span class="number"> 106</span>
<span class="number"> 107</span>
<span class="number"> 108</span>    <a href="http://www.allegro.cc/manual/al_destroy_font"><span class="a">al_destroy_font</span></a><span class="k2">(</span>font24<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 109</span>
<span class="number"> 110</span>    <span class="c">//</span>
<span class="number"> 111</span>    <a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 112</span>    <span class="c">//</span>
<span class="number"> 113</span>
<span class="number"> 114</span>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 115</span>
<span class="number"> 116</span><span class="k2">}</span>
</div></div><p>

pardon my code it is a mess, but ive been on this same problem for months now, and its been a headache, so its be rewritten hastily quite a few times.</p><p>i have other code which loads images just fine, so im not even sure what the problem is at all. <img src="http://www.allegro.cc/forums/smileys/huh.gif" alt="???" /> <img src="http://www.allegro.cc/forums/smileys/huh.gif" alt="???" /></p><p>basically the code will either locate the font and then crash with an exit error of:<br />-1073741819, googling it found nothing. I cant figure this out to be honest, if someone could point me in the rigth way or some books to look at. Ive never encountered an issue I couldnt figure out like this in c++, im sure im doing something dumb and missing it.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (tonedahconfu)</author>
		<pubDate>Thu, 26 May 2016 02:54:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I tried this code and it worked first time for me (allegro 5.2, MSVC).</p><p>Are you sure the arial.ttf is OK and not corrupted in some way? (I used a different font that I had lying around)</p><p>On your <span class="source-code">ALLEGRO_PATH</span> stuff, you can use <span class="source-code">ALLEGRO_NATIVE_PATH_SEP</span> instead of hardcoding &#39;/&#39; and if you want to display the path on cout, just use <span class="source-code"><a href="http://www.allegro.cc/manual/al_path_cstr"><span class="a">al_path_cstr</span></a></span> again, i.e.
</p><div class="source-code snippet"><div class="inner"><pre>cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <a href="http://www.allegro.cc/manual/al_path_cstr"><span class="a">al_path_cstr</span></a><span class="k2">(</span>path, ALLEGRO_NATIVE_PATH_SEP<span class="k2">)</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span>
</pre></div></div><p>
You&#39;re right, just displaying a hex number is not helpful!<br />Pete</p><p>[edit] -1073741819 is 0xC000 0005 in hex - that&#39;s an HRESULT with STATUS_SEVERITY_ERROR..FACILITY_NULL...STATUS_ACCESS_VIOLATION<br />So it&#39;s an &#39;Access Denied&#39; sort of error. ANy help?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Peter Hull)</author>
		<pubDate>Thu, 26 May 2016 14:25:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thank you for your response, however after trying to figure it out I&#39;ve decided that in the interest of keeping my sanity it&#39;s best I let it go. Thanks again, really wanted to get into Allegro5 but I don&#39;t see it happening any time soon. I wonder why this library has issues accessing fonts when SFML was doing fine? I mean it accesses images fine, and it just doesnt make any sense. I wish I was a stronger man, but this is causing me horrible head pain. Thank you again. <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (tonedahconfu)</author>
		<pubDate>Fri, 27 May 2016 00:12:46 +0000</pubDate>
	</item>
</rss>
