<feed xmlns='http://www.w3.org/2005/Atom'>
<title>surreality/src, branch main</title>
<subtitle>A game and rendering engine written in Rust. There are many like it, but this one is ours.
</subtitle>
<id>http://code.irenes.space/surreality/atom?h=main</id>
<link rel='self' href='http://code.irenes.space/surreality/atom?h=main'/>
<link rel='alternate' type='text/html' href='http://code.irenes.space/surreality/'/>
<updated>2026-08-17T10:32:02+00:00</updated>
<entry>
<title>draw three teapots</title>
<updated>2026-08-17T10:32:02+00:00</updated>
<author>
<name>Irene Knapp</name>
<email>ireneista@irenes.space</email>
</author>
<published>2026-08-17T10:32:02+00:00</published>
<link rel='alternate' type='text/html' href='http://code.irenes.space/surreality/commit/?id=4b63074631fa35bd875a79b5c31d490d10a0491e'/>
<id>urn:sha1:4b63074631fa35bd875a79b5c31d490d10a0491e</id>
<content type='text'>
and split out the model rendering code a bunch for rapid instancing

Force-Push: yes
Change-Id: I75be46d8cd11bbf662013711ee5ec56abeb5e6ea
</content>
</entry>
<entry>
<title>move the texture binding to a push descriptor</title>
<updated>2026-08-17T09:07:34+00:00</updated>
<author>
<name>Irene Knapp</name>
<email>ireneista@irenes.space</email>
</author>
<published>2026-08-17T08:41:16+00:00</published>
<link rel='alternate' type='text/html' href='http://code.irenes.space/surreality/commit/?id=b52d1be4302e452a45a03595f8c70411a061f920'/>
<id>urn:sha1:b52d1be4302e452a45a03595f8c70411a061f920</id>
<content type='text'>
with a descriptor update template, even

yay

this also moves us to a minimum Vulkan version of 1.4, which we understand to be widely deployed. in theory, push descriptors and update templates were available via extensions in earlier versions, but it doesn't seem worth doing the work to switch out whether we use the extensions based on the version, so we don't.

Force-Push: yes
Change-Id: I26db8771abf5626d9614630c66e019ea99babcac
</content>
</entry>
<entry>
<title>move uniform buffers into Frame</title>
<updated>2026-08-16T09:08:18+00:00</updated>
<author>
<name>Irene Knapp</name>
<email>ireneista@irenes.space</email>
</author>
<published>2026-08-16T03:26:28+00:00</published>
<link rel='alternate' type='text/html' href='http://code.irenes.space/surreality/commit/?id=db64249ce8108439ada78a2d23d67d2c573a1688'/>
<id>urn:sha1:db64249ce8108439ada78a2d23d67d2c573a1688</id>
<content type='text'>
it's better this way. same lifetime.

Force-Push: yes
Change-Id: Ida309f05132838febcc9eb606f5915e7592ac398
</content>
</entry>
<entry>
<title>move the Frame destruction code to where it goes</title>
<updated>2026-08-15T01:54:33+00:00</updated>
<author>
<name>Irene Knapp</name>
<email>ireneista@irenes.space</email>
</author>
<published>2026-08-15T01:54:33+00:00</published>
<link rel='alternate' type='text/html' href='http://code.irenes.space/surreality/commit/?id=2fae64a18c3253a892c9b3e529fb7b09e0bac753'/>
<id>urn:sha1:2fae64a18c3253a892c9b3e529fb7b09e0bac753</id>
<content type='text'>
this is, however, the first time one of these render state objects has been managed by another one rather than by main() directly, so there's a little weirdness around the lifetime logic that might need reconsidering. seems okay for now though.

Force-Push: yes
Change-Id: Ide3b9f0a7163f78a51ceed4dfb506232475354dd
</content>
</entry>
<entry>
<title>move all the per-frame stuff into its own struct and file</title>
<updated>2026-08-14T09:35:23+00:00</updated>
<author>
<name>Irene Knapp</name>
<email>ireneista@irenes.space</email>
</author>
<published>2026-08-14T09:35:23+00:00</published>
<link rel='alternate' type='text/html' href='http://code.irenes.space/surreality/commit/?id=5a4fad7b67a6ab477b230f4d8a70efed0e9100cb'/>
<id>urn:sha1:5a4fad7b67a6ab477b230f4d8a70efed0e9100cb</id>
<content type='text'>
Force-Push: yes
Change-Id: I54b5c8fcc692616f83a37039a445796dddd4b7e4
</content>
</entry>
<entry>
<title>split the texture's sampler and its image view into separaet bindings</title>
<updated>2026-08-13T02:13:32+00:00</updated>
<author>
<name>Irene Knapp</name>
<email>ireneista@irenes.space</email>
</author>
<published>2026-08-13T02:13:32+00:00</published>
<link rel='alternate' type='text/html' href='http://code.irenes.space/surreality/commit/?id=19e3a0f319fd04c1dde803796ec272d038b634f7'/>
<id>urn:sha1:19e3a0f319fd04c1dde803796ec272d038b634f7</id>
<content type='text'>
this will make it easier to change the image view dynamically as a push update, in a future CL

Force-Push: yes
Change-Id: If7cfab07913a5a462e16dd7fb478ed491d33d4d9
</content>
</entry>
<entry>
<title>abstract over bundled assets</title>
<updated>2026-08-10T03:23:13+00:00</updated>
<author>
<name>Irene Knapp</name>
<email>ireneista@irenes.space</email>
</author>
<published>2026-08-10T03:09:35+00:00</published>
<link rel='alternate' type='text/html' href='http://code.irenes.space/surreality/commit/?id=bbe9d5993bb922ad6b33a21c3557143cecaf960d'/>
<id>urn:sha1:bbe9d5993bb922ad6b33a21c3557143cecaf960d</id>
<content type='text'>
yay build script stuff :)

Force-Push: yes
Change-Id: I694651febb02f42dac904f0dfbf4089c33ef937e
</content>
</entry>
<entry>
<title>change the interface to load_obj()</title>
<updated>2026-08-10T01:19:13+00:00</updated>
<author>
<name>Irene Knapp</name>
<email>ireneista@irenes.space</email>
</author>
<published>2026-08-10T01:19:13+00:00</published>
<link rel='alternate' type='text/html' href='http://code.irenes.space/surreality/commit/?id=677b697eb18b9abb252eacff320aa48314075a0e'/>
<id>urn:sha1:677b697eb18b9abb252eacff320aa48314075a0e</id>
<content type='text'>
now it matches load_png() in a sort of abstract, high-level way

this is meant to make it easier to abstract over assets

Force-Push: yes
Change-Id: Icddc6180e0c78c29bebbd47d84bb381c4fd0c3ca
</content>
</entry>
<entry>
<title>move PNG-specific code to a new module files::png</title>
<updated>2026-08-10T01:05:15+00:00</updated>
<author>
<name>Irene Knapp</name>
<email>ireneista@irenes.space</email>
</author>
<published>2026-08-10T01:05:15+00:00</published>
<link rel='alternate' type='text/html' href='http://code.irenes.space/surreality/commit/?id=1216c5f3dd1f902fb545db875e2b88f50d24e580'/>
<id>urn:sha1:1216c5f3dd1f902fb545db875e2b88f50d24e580</id>
<content type='text'>
this mirrors files::obj

Force-Push: yes
Change-Id: I17ccae0b54b49453100873ba707ee36406b96057
</content>
</entry>
<entry>
<title>rename and reexport a bunch of graphics state types</title>
<updated>2026-08-10T00:53:43+00:00</updated>
<author>
<name>Irene Knapp</name>
<email>ireneista@irenes.space</email>
</author>
<published>2026-08-10T00:36:41+00:00</published>
<link rel='alternate' type='text/html' href='http://code.irenes.space/surreality/commit/?id=d672e147db0df6186c528262367770dcde9d75fc'/>
<id>urn:sha1:d672e147db0df6186c528262367770dcde9d75fc</id>
<content type='text'>
the word "graphics" is part of the module name, so it does not need to be part of the struct name

the fact that an object holds state is... not strictly implied by the fact it's a struct, but it happens that ALL our objects exist primarily to hold state, so we remove that word as well

Force-Push: yes
Change-Id: I1b3e2ac0f1c29304e75a190172463aabfba4b3a4
</content>
</entry>
</feed>
