<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Drawing Rounded Rects</title>
		<link>http://www.allegro.cc/forums/view/569540</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Mon, 27 Feb 2006 23:40:50 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I looking for a way to draw a rounded rect given the radius and the thickness of the lines. Here is my code. I could have just done a circlefill instead of putpixels, but I want the rectangle to be contained in x1y1-x2y2. So the thicker I increase the thickness, the rectangle stays the same size. Just the thickness of the lines changes.</p><p>Here is a screenshot with radius=16, thickness=12,color=black<br />http://www.dharmon.cc/misc/sshot.png</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="p">#pragma warning( disable: 4311 )</span></td></tr><tr><td class="number">2</td><td><span class="p">#pragma warning( disable: 4312 )</span></td></tr><tr><td class="number">3</td><td>&#160;</td></tr><tr><td class="number">4</td><td><span class="p">#include &lt;allegro.h&gt;</span></td></tr><tr><td class="number">5</td><td>&#160;</td></tr><tr><td class="number">6</td><td><span class="k1">typedef</span> <span class="k1">struct</span> _tc_struct</td></tr><tr><td class="number">7</td><td><span class="k2">{</span></td></tr><tr><td class="number">8</td><td>    <span class="k1">int</span> color<span class="k2">;</span></td></tr><tr><td class="number">9</td><td>    <span class="k1">int</span> thickness<span class="k2">;</span></td></tr><tr><td class="number">10</td><td><span class="k2">}</span> _tc_struct<span class="k2">;</span></td></tr><tr><td class="number">11</td><td>&#160;</td></tr><tr><td class="number">12</td><td><span class="p">#define tc_to_i( x ) ((int)(void*)(_tc_struct*)(x))</span></td></tr><tr><td class="number">13</td><td><span class="p">#define i_to_tc( x ) ((_tc_struct*)(void*)(int)(x))</span></td></tr><tr><td class="number">14</td><td>&#160;</td></tr><tr><td class="number">15</td><td>&#160;</td></tr><tr><td class="number">16</td><td><span class="c">// draws a 1 width rect from top</span></td></tr><tr><td class="number">17</td><td><span class="k1">void</span> thickputpixel_t<span class="k2">(</span> <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>bmp, <span class="k1">int</span> x, <span class="k1">int</span> y, <span class="k1">int</span> color <span class="k2">)</span></td></tr><tr><td class="number">18</td><td><span class="k2">{</span></td></tr><tr><td class="number">19</td><td>    <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span> bmp, x, y, x, y <span class="k3">+</span> i_to_tc<span class="k2">(</span> color <span class="k2">)</span><span class="k3">-</span><span class="k3">&gt;</span>thickness, i_to_tc<span class="k2">(</span> color <span class="k2">)</span><span class="k3">-</span><span class="k3">&gt;</span>color <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td><span class="k2">}</span></td></tr><tr><td class="number">21</td><td>&#160;</td></tr><tr><td class="number">22</td><td><span class="c">// draws a 1 width rect from bottom</span></td></tr><tr><td class="number">23</td><td><span class="k1">void</span> thickputpixel_b<span class="k2">(</span> <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>bmp, <span class="k1">int</span> x, <span class="k1">int</span> y, <span class="k1">int</span> color <span class="k2">)</span></td></tr><tr><td class="number">24</td><td><span class="k2">{</span></td></tr><tr><td class="number">25</td><td>    <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span> bmp, x, y, x, y <span class="k3">-</span> i_to_tc<span class="k2">(</span> color <span class="k2">)</span><span class="k3">-</span><span class="k3">&gt;</span>thickness, i_to_tc<span class="k2">(</span> color <span class="k2">)</span><span class="k3">-</span><span class="k3">&gt;</span>color <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">26</td><td><span class="k2">}</span></td></tr><tr><td class="number">27</td><td>&#160;</td></tr><tr><td class="number">28</td><td><span class="c">// draws a 1 height rect from right</span></td></tr><tr><td class="number">29</td><td><span class="k1">void</span> thickputpixel_r<span class="k2">(</span> <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>bmp, <span class="k1">int</span> x, <span class="k1">int</span> y, <span class="k1">int</span> color <span class="k2">)</span></td></tr><tr><td class="number">30</td><td><span class="k2">{</span></td></tr><tr><td class="number">31</td><td>    <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span> bmp, x, y, x <span class="k3">-</span> i_to_tc<span class="k2">(</span> color <span class="k2">)</span><span class="k3">-</span><span class="k3">&gt;</span>thickness, y, i_to_tc<span class="k2">(</span> color <span class="k2">)</span><span class="k3">-</span><span class="k3">&gt;</span>color <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">32</td><td><span class="k2">}</span></td></tr><tr><td class="number">33</td><td>&#160;</td></tr><tr><td class="number">34</td><td><span class="k1">void</span> thickputpixel_l<span class="k2">(</span> <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>bmp, <span class="k1">int</span> x, <span class="k1">int</span> y, <span class="k1">int</span> color <span class="k2">)</span></td></tr><tr><td class="number">35</td><td><span class="k2">{</span></td></tr><tr><td class="number">36</td><td>    <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span> bmp, x, y, x <span class="k3">+</span> i_to_tc<span class="k2">(</span> color <span class="k2">)</span><span class="k3">-</span><span class="k3">&gt;</span>thickness, y, i_to_tc<span class="k2">(</span> color <span class="k2">)</span><span class="k3">-</span><span class="k3">&gt;</span>color <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">37</td><td><span class="k2">}</span></td></tr><tr><td class="number">38</td><td>&#160;</td></tr><tr><td class="number">39</td><td><span class="k1">void</span> thickputpixel_tl<span class="k2">(</span> <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>bmp, <span class="k1">int</span> x, <span class="k1">int</span> y, <span class="k1">int</span> color <span class="k2">)</span></td></tr><tr><td class="number">40</td><td><span class="k2">{</span></td></tr><tr><td class="number">41</td><td>    <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span> bmp, x, y, x <span class="k3">+</span> i_to_tc<span class="k2">(</span> color <span class="k2">)</span><span class="k3">-</span><span class="k3">&gt;</span>thickness, y <span class="k3">+</span> i_to_tc<span class="k2">(</span> color <span class="k2">)</span><span class="k3">-</span><span class="k3">&gt;</span>thickness, i_to_tc<span class="k2">(</span> color <span class="k2">)</span><span class="k3">-</span><span class="k3">&gt;</span>color <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">42</td><td><span class="k2">}</span></td></tr><tr><td class="number">43</td><td>&#160;</td></tr><tr><td class="number">44</td><td><span class="k1">void</span> thickputpixel_tr<span class="k2">(</span> <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>bmp, <span class="k1">int</span> x, <span class="k1">int</span> y, <span class="k1">int</span> color <span class="k2">)</span></td></tr><tr><td class="number">45</td><td><span class="k2">{</span></td></tr><tr><td class="number">46</td><td>    <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span> bmp, x, y, x <span class="k3">-</span> i_to_tc<span class="k2">(</span> color <span class="k2">)</span><span class="k3">-</span><span class="k3">&gt;</span>thickness, y <span class="k3">+</span> i_to_tc<span class="k2">(</span> color <span class="k2">)</span><span class="k3">-</span><span class="k3">&gt;</span>thickness, i_to_tc<span class="k2">(</span> color <span class="k2">)</span><span class="k3">-</span><span class="k3">&gt;</span>color <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">47</td><td><span class="k2">}</span></td></tr><tr><td class="number">48</td><td>&#160;</td></tr><tr><td class="number">49</td><td><span class="k1">void</span> thickputpixel_bl<span class="k2">(</span> <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>bmp, <span class="k1">int</span> x, <span class="k1">int</span> y, <span class="k1">int</span> color <span class="k2">)</span></td></tr><tr><td class="number">50</td><td><span class="k2">{</span></td></tr><tr><td class="number">51</td><td>    <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span> bmp, x, y, x <span class="k3">+</span> i_to_tc<span class="k2">(</span> color <span class="k2">)</span><span class="k3">-</span><span class="k3">&gt;</span>thickness, y <span class="k3">-</span> i_to_tc<span class="k2">(</span> color <span class="k2">)</span><span class="k3">-</span><span class="k3">&gt;</span>thickness, i_to_tc<span class="k2">(</span> color <span class="k2">)</span><span class="k3">-</span><span class="k3">&gt;</span>color <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">52</td><td><span class="k2">}</span></td></tr><tr><td class="number">53</td><td>&#160;</td></tr><tr><td class="number">54</td><td><span class="k1">void</span> thickputpixel_br<span class="k2">(</span> <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>bmp, <span class="k1">int</span> x, <span class="k1">int</span> y, <span class="k1">int</span> color <span class="k2">)</span></td></tr><tr><td class="number">55</td><td><span class="k2">{</span></td></tr><tr><td class="number">56</td><td>    <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span> bmp, x, y, x <span class="k3">-</span> i_to_tc<span class="k2">(</span> color <span class="k2">)</span><span class="k3">-</span><span class="k3">&gt;</span>thickness, y <span class="k3">-</span> i_to_tc<span class="k2">(</span> color <span class="k2">)</span><span class="k3">-</span><span class="k3">&gt;</span>thickness, i_to_tc<span class="k2">(</span> color <span class="k2">)</span><span class="k3">-</span><span class="k3">&gt;</span>color <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">57</td><td><span class="k2">}</span></td></tr><tr><td class="number">58</td><td>&#160;</td></tr><tr><td class="number">59</td><td><span class="c">/******************************************************************************/</span></td></tr><tr><td class="number">60</td><td>&#160;</td></tr><tr><td class="number">61</td><td><span class="k1">void</span> thickline_t<span class="k2">(</span> <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>bmp, <span class="k1">int</span> x1, <span class="k1">int</span> y1, <span class="k1">int</span> x2, <span class="k1">int</span> y2, <span class="k1">int</span> color <span class="k2">)</span></td></tr><tr><td class="number">62</td><td><span class="k2">{</span></td></tr><tr><td class="number">63</td><td>    <a href="http://www.allegro.cc/manual/do_line" target="_blank"><span class="a">do_line</span></a><span class="k2">(</span> bmp, x1, y1, x2, y2, color, thickputpixel_t <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">64</td><td><span class="k2">}</span></td></tr><tr><td class="number">65</td><td>&#160;</td></tr><tr><td class="number">66</td><td><span class="k1">void</span> thickline_b<span class="k2">(</span> <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>bmp, <span class="k1">int</span> x1, <span class="k1">int</span> y1, <span class="k1">int</span> x2, <span class="k1">int</span> y2, <span class="k1">int</span> color <span class="k2">)</span></td></tr><tr><td class="number">67</td><td><span class="k2">{</span></td></tr><tr><td class="number">68</td><td>    <a href="http://www.allegro.cc/manual/do_line" target="_blank"><span class="a">do_line</span></a><span class="k2">(</span> bmp, x1, y1, x2, y2, color, thickputpixel_b <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">69</td><td><span class="k2">}</span></td></tr><tr><td class="number">70</td><td><span class="k1">void</span> thickline_r<span class="k2">(</span> <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>bmp, <span class="k1">int</span> x1, <span class="k1">int</span> y1, <span class="k1">int</span> x2, <span class="k1">int</span> y2, <span class="k1">int</span> color <span class="k2">)</span></td></tr><tr><td class="number">71</td><td><span class="k2">{</span></td></tr><tr><td class="number">72</td><td>    <a href="http://www.allegro.cc/manual/do_line" target="_blank"><span class="a">do_line</span></a><span class="k2">(</span> bmp, x1, y1, x2, y2, color, thickputpixel_r <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">73</td><td><span class="k2">}</span></td></tr><tr><td class="number">74</td><td>&#160;</td></tr><tr><td class="number">75</td><td><span class="k1">void</span> thickline_l<span class="k2">(</span> <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>bmp, <span class="k1">int</span> x1, <span class="k1">int</span> y1, <span class="k1">int</span> x2, <span class="k1">int</span> y2, <span class="k1">int</span> color <span class="k2">)</span></td></tr><tr><td class="number">76</td><td><span class="k2">{</span></td></tr><tr><td class="number">77</td><td>    <a href="http://www.allegro.cc/manual/do_line" target="_blank"><span class="a">do_line</span></a><span class="k2">(</span> bmp, x1, y1, x2, y2, color, thickputpixel_l <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">78</td><td><span class="k2">}</span></td></tr><tr><td class="number">79</td><td>&#160;</td></tr><tr><td class="number">80</td><td><span class="c">/******************************************************************************/</span></td></tr><tr><td class="number">81</td><td>&#160;</td></tr><tr><td class="number">82</td><td><span class="k1">void</span> thickarc_tl<span class="k2">(</span> <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>bmp, <span class="k1">int</span> x, <span class="k1">int</span> y, <a href="http://www.allegro.cc/manual/fixed" target="_blank"><span class="a">fixed</span></a> angle1, <a href="http://www.allegro.cc/manual/fixed" target="_blank"><span class="a">fixed</span></a> angle2, <span class="k1">int</span> r, <span class="k1">int</span> color <span class="k2">)</span></td></tr><tr><td class="number">83</td><td><span class="k2">{</span></td></tr><tr><td class="number">84</td><td>    <a href="http://www.allegro.cc/manual/do_arc" target="_blank"><span class="a">do_arc</span></a><span class="k2">(</span> bmp, x, y, angle1, angle2, r, color, thickputpixel_tl <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">85</td><td><span class="k2">}</span></td></tr><tr><td class="number">86</td><td>&#160;</td></tr><tr><td class="number">87</td><td><span class="k1">void</span> thickarc_tr<span class="k2">(</span> <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>bmp, <span class="k1">int</span> x, <span class="k1">int</span> y, <a href="http://www.allegro.cc/manual/fixed" target="_blank"><span class="a">fixed</span></a> angle1, <a href="http://www.allegro.cc/manual/fixed" target="_blank"><span class="a">fixed</span></a> angle2, <span class="k1">int</span> r, <span class="k1">int</span> color <span class="k2">)</span></td></tr><tr><td class="number">88</td><td><span class="k2">{</span></td></tr><tr><td class="number">89</td><td>    <a href="http://www.allegro.cc/manual/do_arc" target="_blank"><span class="a">do_arc</span></a><span class="k2">(</span> bmp, x, y, angle1, angle2, r, color, thickputpixel_tr <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">90</td><td><span class="k2">}</span></td></tr><tr><td class="number">91</td><td>&#160;</td></tr><tr><td class="number">92</td><td><span class="k1">void</span> thickarc_bl<span class="k2">(</span> <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>bmp, <span class="k1">int</span> x, <span class="k1">int</span> y, <a href="http://www.allegro.cc/manual/fixed" target="_blank"><span class="a">fixed</span></a> angle1, <a href="http://www.allegro.cc/manual/fixed" target="_blank"><span class="a">fixed</span></a> angle2, <span class="k1">int</span> r, <span class="k1">int</span> color <span class="k2">)</span></td></tr><tr><td class="number">93</td><td><span class="k2">{</span></td></tr><tr><td class="number">94</td><td>    <a href="http://www.allegro.cc/manual/do_arc" target="_blank"><span class="a">do_arc</span></a><span class="k2">(</span> bmp, x, y, angle1, angle2, r, color, thickputpixel_bl <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">95</td><td><span class="k2">}</span></td></tr><tr><td class="number">96</td><td>&#160;</td></tr><tr><td class="number">97</td><td><span class="k1">void</span> thickarc_br<span class="k2">(</span> <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>bmp, <span class="k1">int</span> x, <span class="k1">int</span> y, <a href="http://www.allegro.cc/manual/fixed" target="_blank"><span class="a">fixed</span></a> angle1, <a href="http://www.allegro.cc/manual/fixed" target="_blank"><span class="a">fixed</span></a> angle2, <span class="k1">int</span> r, <span class="k1">int</span> color <span class="k2">)</span></td></tr><tr><td class="number">98</td><td><span class="k2">{</span></td></tr><tr><td class="number">99</td><td>    <a href="http://www.allegro.cc/manual/do_arc" target="_blank"><span class="a">do_arc</span></a><span class="k2">(</span> bmp, x, y, angle1, angle2, r, color, thickputpixel_br <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">100</td><td><span class="k2">}</span></td></tr><tr><td class="number">101</td><td>&#160;</td></tr><tr><td class="number">102</td><td><span class="c">/******************************************************************************/</span></td></tr><tr><td class="number">103</td><td>&#160;</td></tr><tr><td class="number">104</td><td><span class="k1">void</span> drawRoundedRect<span class="k2">(</span> <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>bitmap, <span class="k1">int</span> x1, <span class="k1">int</span> y1, <span class="k1">int</span> x2, <span class="k1">int</span> y2, <span class="k1">int</span> radius, <span class="k1">int</span> thickness, <span class="k1">int</span> color <span class="k2">)</span></td></tr><tr><td class="number">105</td><td><span class="k2">{</span></td></tr><tr><td class="number">106</td><td>    _tc_struct tc<span class="k2">;</span></td></tr><tr><td class="number">107</td><td>&#160;</td></tr><tr><td class="number">108</td><td>    tc.thickness <span class="k3">=</span> thickness <span class="k3">-</span> <span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">109</td><td>    tc.color <span class="k3">=</span> color<span class="k2">;</span></td></tr><tr><td class="number">110</td><td>&#160;</td></tr><tr><td class="number">111</td><td>&#160;</td></tr><tr><td class="number">112</td><td>    thickarc_tl<span class="k2">(</span> bitmap, x1 <span class="k3">+</span> radius, y1 <span class="k3">+</span> radius, <a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span>  <span class="n">64</span> <span class="k2">)</span>, <a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span> <span class="n">128</span> <span class="k2">)</span>, radius, tc_to_i<span class="k2">(</span> <span class="k3">&amp;</span>tc <span class="k2">)</span> <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">113</td><td>    thickarc_tr<span class="k2">(</span> bitmap, x2 <span class="k3">-</span> radius, y1 <span class="k3">+</span> radius, <a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span>   <span class="n">0</span> <span class="k2">)</span>, <a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span>  <span class="n">64</span> <span class="k2">)</span>, radius, tc_to_i<span class="k2">(</span> <span class="k3">&amp;</span>tc <span class="k2">)</span> <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">114</td><td>    thickarc_br<span class="k2">(</span> bitmap, x2 <span class="k3">-</span> radius, y2 <span class="k3">-</span> radius, <a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span> <span class="n">192</span> <span class="k2">)</span>, <a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span>   <span class="n">0</span> <span class="k2">)</span>, radius, tc_to_i<span class="k2">(</span> <span class="k3">&amp;</span>tc <span class="k2">)</span> <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">115</td><td>    thickarc_bl<span class="k2">(</span> bitmap, x1 <span class="k3">+</span> radius, y2 <span class="k3">-</span> radius, <a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span> <span class="n">128</span> <span class="k2">)</span>, <a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span> <span class="n">192</span> <span class="k2">)</span>, radius, tc_to_i<span class="k2">(</span> <span class="k3">&amp;</span>tc <span class="k2">)</span> <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">116</td><td>&#160;</td></tr><tr><td class="number">117</td><td>    thickline_t<span class="k2">(</span> bitmap, x1 <span class="k3">+</span> radius, y1, x2 <span class="k3">-</span> radius, y1, tc_to_i<span class="k2">(</span> <span class="k3">&amp;</span>tc <span class="k2">)</span> <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">118</td><td>    thickline_b<span class="k2">(</span> bitmap, x1 <span class="k3">+</span> radius, y2, x2 <span class="k3">-</span> radius, y2, tc_to_i<span class="k2">(</span> <span class="k3">&amp;</span>tc<span class="k2">)</span> <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">119</td><td>    thickline_l<span class="k2">(</span> bitmap, x1, y1 <span class="k3">+</span> radius, x1, y2 <span class="k3">-</span> radius, tc_to_i<span class="k2">(</span> <span class="k3">&amp;</span>tc <span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">120</td><td>    thickline_r<span class="k2">(</span> bitmap, x2, y1 <span class="k3">+</span> radius, x2, y2 <span class="k3">-</span> radius, tc_to_i<span class="k2">(</span> <span class="k3">&amp;</span>tc <span class="k2">)</span> <span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">121</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

I wanted to give more than just the color to do_line and do_arc. I wanted to add a thickness. So I created a struct and sent the struct instead.</p><p>Does anyone have a better way to do this?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Mon, 27 Feb 2006 05:27:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Your inner radius is same as outer radius. The arches have different middle points. So the thickness is not constant. It doesn&#39;t look bad, but I&#39;d draw them with same center point. </p><p>Guess my approach would to draw four rectangles forming the straight edges. Then I&#39;d use quadratic bitmaps for the corners. I&#39;d start with magic pink for the quadrates, then I&#39;d draw a black larger circle and a magenta smaller circle, both with centre in the corner of the quadrate. Then I&#39;d transparent blit the quadrate to the right place.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Johan Halmén)</author>
		<pubDate>Mon, 27 Feb 2006 22:02:25 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I thought about using one bitmap for the corners, but wouldn&#39;t creating it, drawing to it, and blitting it be more time consuming?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Mon, 27 Feb 2006 22:15:00 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Does anyone have a better way to do this?
</p></div></div><p>
</p><div class="source-code snippet"><div class="inner"><pre>ol::Rect<span class="k2">(</span> x, y, w, h, thickness, roundness <span class="k2">)</span>.Draw<span class="k2">(</span> color <span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
<img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /></p><p>Seriously though...
</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
I thought about using one bitmap for the corners, but wouldn&#39;t creating it, drawing to it, and blitting it be more time consuming?
</p></div></div><p>
You mean, more time-consuming than to call rectfill per each pixel through a function pointer? The best way would be to rip Allegro&#39;s circle code and modify that to draw your thick edges - all 4 at the same time as they&#39;re mirror images of each other.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Fladimir da Gorf)</author>
		<pubDate>Mon, 27 Feb 2006 23:40:50 +0000</pubDate>
	</item>
</rss>
