Opened 10 years ago

Closed 10 years ago

#25 closed enhancement (fixed)

Add IO derivatives of the play, simulate, and animate actions

Reported by: Thomas DuBuisson Owned by:
Priority: normal Milestone: 1.7.0
Component: Unknown Version: 1.5.0
Keywords: Cc:

Description

I propose we generalize the animate, simulate, and play actions by providing variants allowing IO actions for world stepping and rendering.

The reasoning here is: 1) World-stepping should be permitted to be IO because there might be outside influences on the world state (ex: a networked game). 2) Rendering the world should be permitted to be IO because there might be outside information needed (texture loading, map tile retrieving, etc).

This would be particularly useful for work like gloss-osm, that allows immediate rendering by presenting missing tiles with a default until the download is complete.

Attachments (2)

Add-IO-derivitives.patch (14.1 KB) - added by Thomas DuBuisson 10 years ago.
This is a patch that implements the proposal.
AllowEventCallbacksToBeIOActions.patch (10.8 KB) - added by Thomas DuBuisson 10 years ago.
Fix the event callback to be an IO action

Download all attachments as: .zip

Change History (5)

Changed 10 years ago by Thomas DuBuisson

Attachment: Add-IO-derivitives.patch added

This is a patch that implements the proposal.

comment:1 Changed 10 years ago by Ben Lippmeier

I've pushed this and exported the IO versions from their own modules. We should still change the event handling function of playIO to take an IO action, be consistent.

Changed 10 years ago by Thomas DuBuisson

Fix the event callback to be an IO action

comment:2 in reply to:  1 Changed 10 years ago by Thomas DuBuisson

Replying to benl:

I've pushed this and exported the IO versions from their own modules. We should still change the event handling function of playIO to take an IO action, be consistent.

Done, see the new attachment.

comment:3 Changed 10 years ago by Ben Lippmeier

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.