<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>C on Jorge Vega</title><link>http://jvega.xyz/tags/c/</link><description>Recent content in C on Jorge Vega</description><generator>Hugo</generator><language>en</language><lastBuildDate>Sat, 01 Dec 2018 10:59:56 +0100</lastBuildDate><atom:link href="http://jvega.xyz/tags/c/index.xml" rel="self" type="application/rss+xml"/><item><title>Cuddly Calculator — Custom Embedded Calculator in C</title><link>http://jvega.xyz/posts/cuddlycalculator/</link><pubDate>Thu, 29 Mar 2018 20:10:05 +0200</pubDate><guid>http://jvega.xyz/posts/cuddlycalculator/</guid><description>&lt;p&gt;A fully custom graphing calculator built entirely in C, designed to run on low-resolution embedded displays (128×64 pixels). The project includes a custom graphics engine, a mathematical expression parser, and a desktop LCD simulator for development and testing.&lt;/p&gt;
&lt;h2 id="components"&gt;Components&lt;/h2&gt;
&lt;h3 id="graphics-library"&gt;Graphics Library&lt;/h3&gt;
&lt;p&gt;A pixel-based rendering engine built from scratch, featuring:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Pixel surface&lt;/strong&gt; abstraction for framebuffer manipulation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Software renderer&lt;/strong&gt; with font rendering, UI elements (scroll text, scroll lists, buttons), and texture support&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Scene system&lt;/strong&gt; with input handling and update loops&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Math primitives&lt;/strong&gt; — 2D/3D vectors, 3×3 matrices, and rectangles&lt;/li&gt;
&lt;li&gt;Two display backends: &lt;strong&gt;SDL2&lt;/strong&gt; (graphical window) and &lt;strong&gt;ncurses&lt;/strong&gt; (terminal)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="math-interpreter"&gt;Math Interpreter&lt;/h3&gt;
&lt;p&gt;A recursive-descent expression parser that evaluates mathematical expressions with:&lt;/p&gt;</description></item></channel></rss>