tzachshabtay / MonoAGS

AGS (Adventure Game Studio) reimagined in Mono
https://tzachshabtay.github.io/MonoAGS/
Artistic License 2.0
27 stars 8 forks source link

Rendering pipeline #279

Closed tzachshabtay closed 6 years ago

tzachshabtay commented 6 years ago

Refactored the rendering loop to introduce the IRenderer, IRenderInstruction and IRenderPipeline interfaces. This allows subscribing multiple renderers per entity, and reduces the number of dependencies on IObject. Also, using the rendering instructions allowed for better synchronization between the update thread and rendering thread, eliminating jittering issues like those seen in Last & Furious.

The previous image renderer was removed, and its logic been replaced by 3 components: the existing image component will do the image rendering, the new border component will render the border and the new pivot renderer component will render the pivot point. The label renderer was also removed and its logic moved to the text component.

This replaces the CustomRenderer property which has been removed.

Resolves #207