/* instpostrender - august 2001 - by Macfly */ typeof C3DobPostRenderList=[Ob r1];; fun OB_RemoveFromPostRenderList (o) = if o.postRenderOb == nil then nil else set C3DobPostRenderList = remove_from_list C3DobPostRenderList o ;; fun OB_AddIntoPostRenderListRec (list, o) = if list == nil then o::nil else let list -> [cur next] in if cur.postRenderPriorityOb >= o.postRenderPriorityOb then o::list else cur::(OB_AddIntoPostRenderListRec next o) ;; fun OB_AddIntoPostRenderList (o) = set C3DobPostRenderList = OB_AddIntoPostRenderListRec C3DobPostRenderList o;; fun ObCbPostRenderPriority (o, f, prio)= OB_RemoveFromPostRenderList o; set o.postRenderPriorityOb = prio; if f == nil then nil else OB_AddIntoPostRenderList o; set o.postRenderOb=f ;; fun ObCbPostRender(o,f)= ObCbPostRenderPriority o f 0;; fun OB_RunPostRenderRec (o, param) = exec o.postRenderOb with [o param];; fun OB_RunPostRender (param) = apply_on_list C3DobPostRenderList @OB_RunPostRenderRec param;;