That said, Service concept itself feels bit like overengineering. Do you really need that level of abstraction? Cannot you just have RenderOpenGL class or something?
I want service to be external to this the codebase of my project. By example my OpenGL service can be seen as kind of plugin (UFEplugin/RendererOpenGLService) which can be included by the developper to extends possibility of my project. (I plan in further to do some plugin to include Assimp or to support Vulkan rendering, Audio engine etc...) I think the best way to perform this is to give an Interface (here Service class) to user and allow him to write is own service/ component (component is part of game object and it's also an abstract class)
I would probably need to know more. I am just saying that I woudl triple-check whether existence of Context
ufeContext.GetService("RendererOpenGLService")
is really necessarry...
Quote:
Set resetable error flag. Maybe add Event<> WhenError so that client code can throw the exception if it needs to.
do Upp have a place where an event is used to handle Error ?
[/quote]
SqlSession. It really is not Event but installable function pointer (that code is now like 20 years old , but the principle is the same.