Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dobkeratops/26b8ea7d070182d67b6a54fe4d630551 to your computer and use it in GitHub Desktop.
Save dobkeratops/26b8ea7d070182d67b6a54fe4d630551 to your computer and use it in GitHub Desktop.
[1]ARE THERE UP-FRONT HINTS THAT CAN BE GIVEN TO HASKELL
FOR THE GARBAGE COLLECTION SYSTEM
[2] COULD I ASK HASKELL TO GIVE ERRORS IF ANY
DIRECT REFERENCES EXIST BETWEEN THE TWO ARENAS (update / render)
[3] DOES LAZINESS COMPLICATE OR HELP,
CAN THE UP-FRONT HINTS OVER-RIDE LAZINESS
.. OR COULD LAZINESS INVERT THE PROBLEM I.E
GIVEN PRIOR ARENA/DEPENDANCY HINTS,
COULD render::(World,Assets)->IO
AUTOMATICALLY GENERATE 'THE DISPLAY LIST'
BY FIGURING OUT WHERE TO PERFORM EAGER-EVAL..
THE DATA DEPENDANCY IS SIMPLER, BUT
'streamingRequests' and 'displayList' are
manually created entities to manage dependancies over time
update::(World->UserInput)->World render::
| ==update system== | ==general== | ==rendering system==
| world[N-2] | | \
| / | | assets[M-2]
time world[N-1] ---> | /
| \ ----> displayList | /
| world[N] | ---> | assets[M-1]
| / \ | RENDERIING<--- \
| -------> | \
| | asset loading | \
| | requests ------> assets[M]
V | |
| |
e.g. entity | |
positions, | | e.g. renderable assets
resource | | textures, meshes
handles | |
NO owned resources | |
| | ASYNC LOADING THREAD
collision meshes | |
===high level loops do this...========
getAsset::Handle -> Maybe Asset
update::(World,UserInput)-> World
getAssetLoadingHints::(World)->[AssetReq]
preRender::World-> DisplayList
render::Assets->DisplayList->GL)->IO()
assetStreaming ::(Assets , [AssetReq]->GL)-> IO Assets
Async??
========================================
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment