<feed xmlns='http://www.w3.org/2005/Atom'>
<title>phosphor/src, branch main</title>
<subtitle>Rust library for creating graphical programs
</subtitle>
<id>https://code.benbridle.com/phosphor/atom?h=main</id>
<link rel='self' href='https://code.benbridle.com/phosphor/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/phosphor/'/>
<updated>2025-08-21T02:42:51Z</updated>
<entry>
<title>Return EventLoopError if Phosphor could not be initialised</title>
<updated>2025-08-21T02:42:51Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2025-08-21T02:34:40Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/phosphor/commit/?id=2f162164d44a41d95cbea19c1dcaf22ae21f2b64'/>
<id>urn:sha1:2f162164d44a41d95cbea19c1dcaf22ae21f2b64</id>
<content type='text'>
The function was previously throwing away the error and returning the
unit type, preventing the caller from debugging the issue further.
</content>
</entry>
<entry>
<title>Enforce a minimum window size of 8px by 8px</title>
<updated>2025-07-08T05:07:34Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2025-07-08T05:07:34Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/phosphor/commit/?id=7cc8495603524483ac2ebe9d00cde8b9bb0faf4a'/>
<id>urn:sha1:7cc8495603524483ac2ebe9d00cde8b9bb0faf4a</id>
<content type='text'>
This is to prevent a panic that occurs when the maximum size of a
window is set to 0px along at least one dimension.
</content>
</entry>
<entry>
<title>Tidy event code and add support for hover events</title>
<updated>2025-07-03T03:09:19Z</updated>
<author>
<name>Ben Bridle</name>
<email>bridle.benjamin@gmail.com</email>
</author>
<published>2025-07-03T03:09:19Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/phosphor/commit/?id=70d26c2744058cfc922527ef994126c6c840848b'/>
<id>urn:sha1:70d26c2744058cfc922527ef994126c6c840848b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Reduce minimum frame duration to 10 microseconds</title>
<updated>2025-07-03T03:08:31Z</updated>
<author>
<name>Ben Bridle</name>
<email>bridle.benjamin@gmail.com</email>
</author>
<published>2025-07-03T03:08:31Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/phosphor/commit/?id=9bb58a8557f5000489769e839dbab03d6f71c777'/>
<id>urn:sha1:9bb58a8557f5000489769e839dbab03d6f71c777</id>
<content type='text'>
The previous duration of 1 millisecond was noticeably long when drawing
frames at greater than 60 frames a second.
</content>
</entry>
<entry>
<title>Enforce minimum window dimensions of 1px</title>
<updated>2025-07-03T03:06:38Z</updated>
<author>
<name>Ben Bridle</name>
<email>bridle.benjamin@gmail.com</email>
</author>
<published>2025-07-03T03:06:38Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/phosphor/commit/?id=7a2218ed5c86813e2531db10ae69d78d97cf0685'/>
<id>urn:sha1:7a2218ed5c86813e2531db10ae69d78d97cf0685</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Allow windows to be created invisible</title>
<updated>2025-07-03T03:04:07Z</updated>
<author>
<name>Ben Bridle</name>
<email>bridle.benjamin@gmail.com</email>
</author>
<published>2025-07-03T03:04:07Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/phosphor/commit/?id=04cefafd15b6fb5324857c275c70295322f82dd4'/>
<id>urn:sha1:04cefafd15b6fb5324857c275c70295322f82dd4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Wait a minimum duration of 1ms between frames</title>
<updated>2024-12-16T01:41:45Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2024-12-16T01:41:22Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/phosphor/commit/?id=5f3f80959cd76466e9a026069ab7ab88a7d944b6'/>
<id>urn:sha1:5f3f80959cd76466e9a026069ab7ab88a7d944b6</id>
<content type='text'>
The code to do this was already in place, but was only being run on the
very first frame of the program. Programs will now sleep if the previous
frame completed in fewer than 1 millisecond, to prevent processor time
from being wasted by a rapidly spinning program.
</content>
</entry>
<entry>
<title>Only send Event::CursorExit when all mouse buttons are released</title>
<updated>2024-12-16T01:22:33Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2024-12-16T01:22:33Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/phosphor/commit/?id=393d4f309ba238f81d100aae409a784f82d88c15'/>
<id>urn:sha1:393d4f309ba238f81d100aae409a784f82d88c15</id>
<content type='text'>
This is to allow a user to drag an element inside the program window
and for the mouse cursor to move in and out of the window during the
drag operation. This is the intuitive and expected behaviour.
</content>
</entry>
<entry>
<title>Add support for 'back' and 'forward' mouse buttons</title>
<updated>2024-11-05T19:37:12Z</updated>
<author>
<name>Ben Bridle</name>
<email>bridle.benjamin@gmail.com</email>
</author>
<published>2024-11-05T19:37:12Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/phosphor/commit/?id=f6c37877fae76d7840367a0a766d92fbef9fdb5d'/>
<id>urn:sha1:f6c37877fae76d7840367a0a766d92fbef9fdb5d</id>
<content type='text'>
MouseButton events will now also trigger when the 'back' and 'forward'
mouse buttons are pressed. These buttons aren't present on all mice.
</content>
</entry>
<entry>
<title>Add a SetIcon request type</title>
<updated>2024-10-28T20:40:29Z</updated>
<author>
<name>Ben Bridle</name>
<email>bridle.benjamin@gmail.com</email>
</author>
<published>2024-10-28T20:31:09Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/phosphor/commit/?id=608494aad09f520e7d78bff9950dbb282f8276a2'/>
<id>urn:sha1:608494aad09f520e7d78bff9950dbb282f8276a2</id>
<content type='text'>
This is used to set the window icon at runtime.

This commit also exposes the Icon and CursorIcon types in the crate
root, as they were previously inaccessible.
</content>
</entry>
</feed>
