<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="337553" data-post-id="337553">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="harrisi" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/harrisi/120/33003_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  harrisi
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Ah, thanks for the heads up! I’m definitely interested in native Windows support.</p>
<p>The parsing and everything is easy enough to reimplement (I have experience doing this in other languages), but I imagine the portaudio plugin is a problem. Is this the issue I should look at? <a href="https://github.com/membraneframework/membrane_core/issues/700" class="inline-onebox" rel="noopener nofollow ugc">[Bundlex] Refactor Unix toolchain · Issue #700 · membraneframework/membrane_core · GitHub</a></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="337553" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/opengl-rendered-breakout-clone-in-elixir/65250/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-337553" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="337553"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #11"></div>
  </section>
</div>
    <div class="postbit" id="337554" data-post-id="337554">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="mat-hek" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mat-hek/120/38168_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  mat-hek
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Membrane Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Not really, that one is more about refactoring out some accumulated debt <img src="https://forum.elixirforum.com/images/emoji/apple/wink.png?v=15" title=":wink:" class="emoji" alt=":wink:" loading="lazy" width="20" height="20"> The discussion went on in various places, particularly here: <a href="https://github.com/membraneframework/membrane_core/issues/775" class="inline-onebox" rel="noopener nofollow ugc">Cannot run on livebook windows · Issue #775 · membraneframework/membrane_core · GitHub</a>, I’ll create a proper issue tomorrow <img src="https://forum.elixirforum.com/images/emoji/apple/wink.png?v=15" title=":wink:" class="emoji" alt=":wink:" loading="lazy" width="20" height="20"> In short, we managed to make it work in a specific environment years ago and haven’t touched it since. I guess that using <a href="https://ziglang.org/" rel="noopener nofollow ugc">Zig</a> toolchain is the first thing I’d try <img src="https://forum.elixirforum.com/images/emoji/apple/thinking.png?v=15" title=":thinking:" class="emoji" alt=":thinking:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="337554" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/opengl-rendered-breakout-clone-in-elixir/65250/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-337554" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="337554"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #12"></div>
  </section>
</div>
    <div class="postbit" id="337556" data-post-id="337556">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="andyleclair" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/andyleclair/120/36483_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  andyleclair
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I completely agree. I was searching for a shortcut for doing cross-platform immediate mode graphics rendering, and that seemed like the most straightforward way, but I was wrong!</p>
<p>I’d love for there to be a fully abstracted, cross-platform immediate mode graphics toolkit (something that could handle using DirectX on Windows or, say, Vulkan) but honestly I’m not at the point in my graphics programming journey for that to actually matter.</p>
<blockquote>
<p>The ease I’ve had in jumping into various projects in Elixir and understand what’s going on and even make changes has been inspiring. I personally feel like that ease could apply to game development as well, which would allow for rapid development. Which isn’t a new idea - that’s exactly why scripting languages are used in many games. I just have a crazy idea of using Elixir for the core engine <em>and</em> the “scripting” language.</p>
</blockquote>
<p>YES!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="337556" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/opengl-rendered-breakout-clone-in-elixir/65250/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-337556" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="337556"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #13"></div>
  </section>
</div>
    <div class="postbit" id="337609" data-post-id="337609">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="mat-hek" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mat-hek/120/38168_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  mat-hek
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Membrane Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote group-Membrane-Core-Team" data-username="mat-hek" data-post="13" data-topic="65250">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mat-hek/48/38168_2.png" class="avatar"> mat-hek:</div>
<blockquote>
<p>I’ll create a proper issue tomorrow</p>
</blockquote>
</aside>
<p>Here it is: <a href="https://github.com/orgs/membraneframework/discussions/857" class="inline-onebox" rel="noopener nofollow ugc">Support for Windows · membraneframework · Discussion #857 · GitHub</a></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="337609" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/opengl-rendered-breakout-clone-in-elixir/65250/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-337609" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="337609"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #14"></div>
  </section>
</div>
    <div class="postbit" id="339644" data-post-id="339644">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="harrisi" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/harrisi/120/33003_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  harrisi
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I have a couple of neat updates.</p>
<ul>
<li>I got <a href="https://github.com/membraneframework/bundlex" rel="noopener nofollow ugc">Bundlex</a> compilation (mostly) working on Windows, which might help with Windows builds. Still work to be done for all the plugins to work but it’s a start.</li>
<li>figured out some issues with Burrito (entirely my fault), so resources should work (haven’t pushed new releases yet).</li>
<li>I got a very simple Metal rendering NIF working. You can see it at <a href="https://github.com/harrisi/elixir_metal" class="inline-onebox" rel="noopener nofollow ugc">GitHub - harrisi/elixir_metal: Elixir rendering with Apple Metal backend · GitHub</a>.</li>
</ul>
<p>I’m mainly excited about the Metal renderer. I do most of my dev work on macOS, which has pretty poor support for OpenGL. This has caused several issues and also makes it not clear if I have performance issues due to the OpenGL layer or with Elixir code. I’m hoping that using the Metal backend will make it more clear where performance issues are coming from.</p>
<p>The other interesting thing about it is that macOS has some requirements about what thread drawing is done from. Erlang does a sort of hacky thing to get wxWidgets working on macOS since drawing has to happen on the main thread. I think I’ll have an easier time getting DirectX and Vulkan rendering working for Windows and Linux (and, hopefully, macOS with MoltenVK).</p>
<p>I want to work through the rest of the Membrane/Bundlex issues to get sound working better across platforms, but I should be able to start looking at doing actually interesting stuff in terms of game development soon.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="339644" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/opengl-rendered-breakout-clone-in-elixir/65250/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-339644" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="339644"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #15"></div>
  </section>
</div>
    <div class="postbit" id="340356" data-post-id="340356">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="andyleclair" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/andyleclair/120/36483_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  andyleclair
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>You’ve inspired me to start working through the examples on <a href="https://learnopengl.com" rel="noopener nofollow ugc">https://learnopengl.com</a>. VERY cool to be able to render anything like this from Elixir!</p>
<p>I have your breakout clone checked out locally, and I am still not able to get the window to open (and stay open), even if I comment out the audio bits. Looks like something OpenGL-y is failing? It is really a shame how poor the debuggability of OpenGL is, compared to the rest of Elixir.</p>
<p>I’ll have to give it another shot when I’m back at my main machine</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="340356" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/opengl-rendered-breakout-clone-in-elixir/65250/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-340356" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="340356"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #16"></div>
  </section>
</div>
    <div class="postbit" id="340360" data-post-id="340360">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="harrisi" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/harrisi/120/33003_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  harrisi
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Are you compiling from WSL or Windows itself? I don’t think I tested compiling it in WSL. You might want to try checking out a previous commit, like 86fb31b8c0b98a332026ff070433ad1c479a2a1c maybe.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="340360" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/opengl-rendered-breakout-clone-in-elixir/65250/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-340360" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="340360"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #17"></div>
  </section>
</div>
    <div class="postbit" id="340362" data-post-id="340362">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="harrisi" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/harrisi/120/33003_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  harrisi
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>By the way, there’s a really handy library someone beat me to making that helps with the wx/gl consts/records: <a href="https://github.com/kerryb/wx_ex" class="inline-onebox" rel="noopener nofollow ugc">GitHub - kerryb/wx_ex: Elixir wrappers for wx · GitHub</a>. They just included the OpenGL macros as well, so it’s a bit easier to follow along with things from learnopengl!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="340362" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/opengl-rendered-breakout-clone-in-elixir/65250/19">Post #18</a>
	                </div>
	            </div>
              <div id="likers-container-340362" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="340362"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #18"></div>
  </section>
</div>
    <div class="postbit" id="340364" data-post-id="340364">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="andyleclair" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/andyleclair/120/36483_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  andyleclair
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’m compiling in WSL. My own stuff works as I’m going through the tutorials. I’ll give it a shot on that commit.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="340364" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/opengl-rendered-breakout-clone-in-elixir/65250/20">Post #19</a>
	                </div>
	            </div>
              <div id="likers-container-340364" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="340364"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #19"></div>
  </section>
</div>
    <div class="postbit" id="340366" data-post-id="340366">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="andyleclair" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/andyleclair/120/36483_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  andyleclair
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Nice! I was going to propose working on something like this. There are a lot of gotchas that I’ve worked through going through the exercises and it’d be nice to have some wrappers that can eliminate some common errors (especially given that errors are hard to get at and often things will just not work)</p>
<p>I noticed you used your own PNG parser, I tried using <code>Vix</code> and that worked like a charm!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="340366" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/opengl-rendered-breakout-clone-in-elixir/65250/21">Post #20</a>
	                </div>
	            </div>
              <div id="likers-container-340366" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="340366"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #20"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/65250/load_more?page=3">Load more posts (2 remaining)</a>
</div></template></turbo-stream>