<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Home on DevMindscape</title><link>https://devmindscape.com/</link><description>Recent content in Home on DevMindscape</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Tue, 28 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://devmindscape.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Hardware H.264 Decoding on Fedora 43 and 44 — The Fresh-Install Recipe</title><link>https://devmindscape.com/post/fedora-h264-hardware-decoding/</link><pubDate>Tue, 28 Apr 2026 00:00:00 +0000</pubDate><guid>https://devmindscape.com/post/fedora-h264-hardware-decoding/</guid><description>&lt;p>Fedora doesn&amp;rsquo;t ship proprietary codecs — that includes the H.264 / H.265 paths most browsers and video apps reach for first. On a fresh Fedora 43 or 44 install you&amp;rsquo;ll see Firefox falling back to software decode, &lt;code>ffmpeg&lt;/code> refusing to handle MP4s, and &lt;code>vainfo&lt;/code> listing only VP8/VP9/AV1.&lt;/p>
&lt;p>The fix is three commands.&lt;/p></description></item><item><title>Displaying 100K Rows Without Lag: wxListCtrl Virtual Mode</title><link>https://devmindscape.com/post/wxwidgets-virtual-list/</link><pubDate>Sat, 14 Mar 2026 00:00:00 +0000</pubDate><guid>https://devmindscape.com/post/wxwidgets-virtual-list/</guid><description>&lt;p>
Let&amp;#39;s talk about displaying large datasets in wxWidgets. If you&amp;#39;ve ever
tried adding tens of thousands of items to a &lt;code class="verbatim">wxListCtrl&lt;/code>, you know it
can get painfully slow. The control creates an internal object for every
single row, regardless of whether it&amp;#39;s visible on screen.&lt;/p>
&lt;p>
There&amp;#39;s a better way: virtual mode. This is a companion post to my List
Controls video tutorial, which also covers sorting and selection handling
in detail:&lt;/p></description></item><item><title>wxWidgets: The Friendly Gateway to Linux Desktop Development</title><link>https://devmindscape.com/post/wxwidgets-gtk-gateway/</link><pubDate>Sun, 08 Feb 2026 00:00:00 +0000</pubDate><guid>https://devmindscape.com/post/wxwidgets-gtk-gateway/</guid><description>&lt;p>
Someone left a &lt;a href="https://www.youtube.com/watch?v=kPB5Y6ef9dw&amp;amp;lc=UgzbHqW5RN7DRvFdv954AaABAg.ASrWIEorvHXASu9k2eS1sg">comment&lt;/a> on one of my wxWidgets videos saying
they&amp;#39;d spent a week trying to figure out GTK and gtkmm, and after
watching the video they got further in a few hours than in that
entire week. This is not uncommon, and it has a lot to do with how
GTK is designed.&lt;/p>
&lt;p>
GTK is written in C, but it implements a heavily object-oriented
framework on top of it using the GObject type system. The GObject
documentation explains why:&lt;/p></description></item><item><title>Writing a Markdown Editor in C++ with wxWidgets and cmark</title><link>https://devmindscape.com/post/wxwidgets-cmark-markdown-editor/</link><pubDate>Fri, 30 May 2025 12:55:24 +0200</pubDate><guid>https://devmindscape.com/post/wxwidgets-cmark-markdown-editor/</guid><description>&lt;div class="youtube-embed">
 &lt;iframe
 src="https://www.youtube-nocookie.com/embed/U5U0H0PvvtU"
 title="Parse and Render Markdown with C&amp;#43;&amp;#43; (fast)"
 frameborder="0"
 allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
 allowfullscreen
 loading="lazy"
 >&lt;/iframe>
&lt;/div>

&lt;p>It’s incredible what you can achieve with modern open-source libraries. Take a code editor, for example: imagine writing code in the left pane while instantly seeing the rendered output on the right, with every change reflected in real time. No manual refreshes, no delays—just seamless, live feedback as you work.&lt;/p>
&lt;p>But here’s the best part: this editor isn’t just fast and responsive—it’s also truly cross-platform. A single codebase runs natively on Windows, Linux, and macOS without any modifications. The executable is lean, weighing just a few megabytes, unlike bloated Electron-based apps that devour hundreds of megabytes just to display a simple interface.&lt;/p></description></item><item><title>Introduction to Textures in Modern OpenGL</title><link>https://devmindscape.com/post/opengl-textures-basics/</link><pubDate>Sat, 24 May 2025 00:00:00 +0000</pubDate><guid>https://devmindscape.com/post/opengl-textures-basics/</guid><description>&lt;div class="youtube-embed">
 &lt;iframe
 src="https://www.youtube-nocookie.com/embed/bvWQZq0NUv0"
 title="Basic OpenGL Textures Explained (easy)"
 frameborder="0"
 allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
 allowfullscreen
 loading="lazy"
 >&lt;/iframe>
&lt;/div>

&lt;p>Textures are a fundamental concept in 3D graphics programming, allowing you to apply images to 3D models, making them look more realistic and detailed. In this guide, we will explore the basics of textures in OpenGL, including how to create, bind, and use them in your applications.&lt;/p>
&lt;h2 id="what-is-a-texture">What is a Texture?&lt;/h2>
&lt;p>In principle, textures are simply arrays of data. They can represent images, colors, shadow maps, or any other data you want to map to a 3D object. In OpenGL, textures are typically represented as 2D or 3D arrays of pixels, where each pixel can have one or more color channels (e.g., RGB, RGBA).&lt;/p></description></item><item><title>wxWidgets with CMake FetchContent</title><link>https://devmindscape.com/post/wx-fetchcontent/</link><pubDate>Fri, 02 Feb 2024 00:00:00 +0000</pubDate><guid>https://devmindscape.com/post/wx-fetchcontent/</guid><description>&lt;p>FetchContent, introduced in CMake 3.11, simplifies the process of downloading and building dependencies. It is particularly useful for integrating libraries like wxWidgets into your project. This is the modern alternative to the &lt;a href="https://devmindscape.com/posts/wxwidgets-cmake/">ExternalProject superbuild approach&lt;/a> covered in an earlier tutorial.&lt;/p></description></item><item><title>Exploring Apple's Metal Framework: A Beginner's Guide</title><link>https://devmindscape.com/post/metal-intro/</link><pubDate>Sun, 28 Jan 2024 00:00:00 +0000</pubDate><guid>https://devmindscape.com/post/metal-intro/</guid><description>&lt;p>Apple&amp;rsquo;s Metal framework has been a game-changer in the world of 3D graphics on iOS and MacOS platforms. Since its introduction in 2014 and the subsequent deprecation of OpenGL, Metal has become the go-to framework for optimized graphics on Apple devices, especially with the advent of Apple Silicon and VisionOS. In this tutorial, we&amp;rsquo;ll dive into the basics of Metal using Swift in Xcode.&lt;/p></description></item><item><title>Grid Sizers in wxWidgets: Basics to Advanced</title><link>https://devmindscape.com/post/wxwidgets-grid-sizers/</link><pubDate>Thu, 18 Jan 2024 00:00:00 +0000</pubDate><guid>https://devmindscape.com/post/wxwidgets-grid-sizers/</guid><description>&lt;p>Welcome to our practical exploration of wxWidgets&amp;rsquo; Grid Sizers. Building on our &lt;a href="https://devmindscape.com/posts/wxwidgets-layout-basics">previous tutorial on layout basics&lt;/a>, today we&amp;rsquo;re venturing into the more advanced realms of the simple Grid Sizer and the Flex Grid Sizer. Through concrete examples – a checkerboard pattern and a functional signup form – we&amp;rsquo;ll demonstrate the power and nuances of these layout tools.&lt;/p></description></item><item><title>How to use Built-in Dialogs in wxWidgets</title><link>https://devmindscape.com/post/wxwidgets-built-in-dialogs/</link><pubDate>Fri, 05 May 2023 11:08:00 +0000</pubDate><guid>https://devmindscape.com/post/wxwidgets-built-in-dialogs/</guid><description>&lt;p>Where wxWidgets shines as a multi-platform UI library is its consistent native look and feel across different operating systems.&lt;/p>
&lt;p>Dialogs are no exception. The library offers methods and classes to display system-specific dialogs for everyday tasks, like opening a file, choosing a font, etc.&lt;/p></description></item><item><title>GDK Pixbuf error when running a wxWidgets app on Linux</title><link>https://devmindscape.com/post/wxwidgets-gdk-error/</link><pubDate>Wed, 28 Dec 2022 11:08:00 +0000</pubDate><guid>https://devmindscape.com/post/wxwidgets-gdk-error/</guid><description>&lt;p>If you encounter an error message saying &amp;ldquo;&lt;em>Could not load a pixbuf from icon theme&lt;/em>&amp;rdquo; on Linux, note that it might be just a VSCode error.&lt;/p>
&lt;p>As explained in my Menus video (the &amp;ldquo;Problems with Icons on Linux&amp;rdquo; chapter), this error may occur when using the default system icons, for example when using submenus and option items in the main menu.&lt;/p></description></item><item><title>Handling Clipboard Operations in wxWidgets Text Controls</title><link>https://devmindscape.com/post/wxwidgets-textctrl-clipboard/</link><pubDate>Thu, 15 Dec 2022 11:08:00 +0000</pubDate><guid>https://devmindscape.com/post/wxwidgets-textctrl-clipboard/</guid><description>&lt;p>Handling common clipboard tasks for your text fields is a must-have for any serious application that needs to accept keyboard input from the users. Surprisingly, it&amp;rsquo;s not that easy in wxWidgets, especially considering the differences between platforms (Linux, Mac, and Windows).&lt;/p>
&lt;p>I explain the problem in detail in my Text Fields video (the &amp;ldquo;Clipboard Operations&amp;rdquo; chapter). In the Menus tutorial, I talk about menus in general and constructing the Edit menu with the clipboard commands in particular.&lt;/p></description></item><item><title>Box Sizers in wxWidgets: Layout Fundamentals</title><link>https://devmindscape.com/post/wxwidgets-layout-basics/</link><pubDate>Mon, 05 Dec 2022 10:58:08 +0000</pubDate><guid>https://devmindscape.com/post/wxwidgets-layout-basics/</guid><description>&lt;p>Let&amp;rsquo;s talk about layout. It is a fundamental concept in any kind of UI programming, and designing desktop applications with wxWidgets is no different.&lt;/p>
&lt;p>This is a companion post to the video tutorial I created some time ago. Check it out for a more detailed explanation and live demo of various sizers configurations:&lt;/p></description></item><item><title>wxWidgets + CMake: Multiplatform Superbuild</title><link>https://devmindscape.com/post/wxwidgets-cmake/</link><pubDate>Mon, 26 Oct 2020 10:58:08 +0000</pubDate><guid>https://devmindscape.com/post/wxwidgets-cmake/</guid><description>&lt;p>In this article I’ll show you how to create a native-looking UI application in C++ and build it on each of the major platforms (Windows, Linux, Mac OS) using a single build script code.&lt;/p>
&lt;p>You can download the full source code of the sample program from github: &lt;a href="https://github.com/lszl84/wx_cmake_template">https://github.com/lszl84/wx_cmake_template&lt;/a> . Also, check the YouTube video below, which describes the process in detail, showing how this works on each of the aforementioned platforms:&lt;/p></description></item><item><title>A Polished Fedora Setup</title><link>https://devmindscape.com/fedora/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://devmindscape.com/fedora/</guid><description/></item></channel></rss>