<feed xmlns='http://www.w3.org/2005/Atom'>
<title>phosphor, branch v3.0.0</title>
<subtitle>Rust library for creating graphical programs
</subtitle>
<id>https://code.benbridle.com/phosphor/atom?h=v3.0.0</id>
<link rel='self' href='https://code.benbridle.com/phosphor/atom?h=v3.0.0'/>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/phosphor/'/>
<updated>2024-10-28T06:59:15Z</updated>
<entry>
<title>Update version to 3.0.0</title>
<updated>2024-10-28T06:59:15Z</updated>
<author>
<name>Ben Bridle</name>
<email>bridle.benjamin@gmail.com</email>
</author>
<published>2024-10-28T06:59:15Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/phosphor/commit/?id=47a754a7beb8741bfe0469236036cb8023043cd8'/>
<id>urn:sha1:47a754a7beb8741bfe0469236036cb8023043cd8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Complete rewrite of Phosphor</title>
<updated>2024-10-19T05:21:48Z</updated>
<author>
<name>Ben Bridle</name>
<email>bridle.benjamin@gmail.com</email>
</author>
<published>2024-10-19T05:20:09Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/phosphor/commit/?id=990f2b310bfecf2e04a8a462f6939833080c62bf'/>
<id>urn:sha1:990f2b310bfecf2e04a8a462f6939833080c62bf</id>
<content type='text'>
The previous version of the library passed events to an implementation
of a WindowController trait by calling the trait method associated with
each event, and received requests by calling different trait methods and
reading the returned values. This had the downside of requiring that any
data received from one event had to be stored in the type so that it
could be passed back to Phosphor when a request method was called.

The new library structure uses a single handle_event method on a trait,
which is passed data representing any single event when it is called.
Data is returned via a passed mutable reference to an EventQueue,
meaning that any number of responses for any event can be immediately
returned to Phosphor without having to wait in storage.
</content>
</entry>
<entry>
<title>Fix issue with damaged screen not being redrawn</title>
<updated>2024-09-10T00:48:13Z</updated>
<author>
<name>Ben Bridle</name>
<email>bridle.benjamin@gmail.com</email>
</author>
<published>2024-09-10T00:46:56Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/phosphor/commit/?id=824483fc95ccbc4627d07371bac8ed4da44c83e7'/>
<id>urn:sha1:824483fc95ccbc4627d07371bac8ed4da44c83e7</id>
<content type='text'>
When another window was dragged over a Phosphor window, the Phosphor
window would have streaks drawn over it from the dragged window and
would need to be redrawn. This was handled by an unrequested render
request, where a render request is received that was sent not by the
program itself but by Phosphor.

These unrequested requests were being ignored due to commit 30c61fd,
because of an issue on Windows where programs were receiving upwards of
50 unrequested requests per second for no reason, which was impacting
program performance. They have been re-enabled, pending an investigation
into the cause of these requests on Windows.
</content>
</entry>
<entry>
<title>Update version to 2.0.0</title>
<updated>2024-08-10T02:35:06Z</updated>
<author>
<name>Ben Bridle</name>
<email>bridle.benjamin@gmail.com</email>
</author>
<published>2024-08-10T02:35:06Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/phosphor/commit/?id=d598b9b0b404b386c460a09933bcfce4683b8f7a'/>
<id>urn:sha1:d598b9b0b404b386c460a09933bcfce4683b8f7a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Unify is_cursor_visible and cursor_icon callbacks</title>
<updated>2024-08-04T04:18:24Z</updated>
<author>
<name>Ben Bridle</name>
<email>bridle.benjamin@gmail.com</email>
</author>
<published>2024-08-04T04:18:24Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/phosphor/commit/?id=c141d8fe8bb9115ccb953ed6ea5b0b04bc828125'/>
<id>urn:sha1:c141d8fe8bb9115ccb953ed6ea5b0b04bc828125</id>
<content type='text'>
It makes sense to handle all cursor icon state at once.
</content>
</entry>
<entry>
<title>Fix display server lag</title>
<updated>2024-08-04T04:11:18Z</updated>
<author>
<name>Ben Bridle</name>
<email>bridle.benjamin@gmail.com</email>
</author>
<published>2024-08-04T04:11:18Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/phosphor/commit/?id=e85f41bdf72b31f6d9224cb0d9f71986cc12a15e'/>
<id>urn:sha1:e85f41bdf72b31f6d9224cb0d9f71986cc12a15e</id>
<content type='text'>
This commit reverts commit 3d44c40. Calling window.title() was causing
the X11 display server to go from 1% to 20% constant CPU usage when
testing on Linux.
</content>
</entry>
<entry>
<title>Improve comment clarity</title>
<updated>2024-07-31T04:06:43Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2024-07-31T04:06:43Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/phosphor/commit/?id=8d626d526cbf27b02896af82979a090c0b768a7d'/>
<id>urn:sha1:8d626d526cbf27b02896af82979a090c0b768a7d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Simplify code</title>
<updated>2024-07-31T04:06:25Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2024-07-31T04:06:25Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/phosphor/commit/?id=3d44c407c5c6c5574f6d3f272c6651fd75e07deb'/>
<id>urn:sha1:3d44c407c5c6c5574f6d3f272c6651fd75e07deb</id>
<content type='text'>
We don't need to keep track of the previous value of the window title.
</content>
</entry>
<entry>
<title>Implement fullscreen</title>
<updated>2024-07-31T04:05:57Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2024-07-31T04:05:57Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/phosphor/commit/?id=efe1d21b0e1ee79ef7547c0d8524a39be16ccc7d'/>
<id>urn:sha1:efe1d21b0e1ee79ef7547c0d8524a39be16ccc7d</id>
<content type='text'>
Program windows can choose to show as fullscreen or windowed.
</content>
</entry>
<entry>
<title>Only set window title when changed</title>
<updated>2024-07-31T03:36:53Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2024-07-31T03:36:53Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/phosphor/commit/?id=20bc849cfd990267684532d84b9894204c96189f'/>
<id>urn:sha1:20bc849cfd990267684532d84b9894204c96189f</id>
<content type='text'>
Setting the window title every frame was causing Windows Explorer to
show a consistent 4% CPU usage when testing under Windows 10. This
change brings it down to 0.2%.
</content>
</entry>
</feed>
