internal GlFunc(Func <T> function, GlRenderHandler glRenderHandler, bool synchronised, bool recursive = false) : base(glRenderHandler, synchronised, recursive) { Function = function; // TODO may cause synchronisation errors as this object has not been created yet in another thread. _result = new GlFuncResult <T>(this, synchronised); }
protected internal void AddUnitGlRenderHandler(GlRenderHandler glRenderHandler) { #if DEBUG if (glRenderHandler is null) { throw new ArgumentNullException(nameof(glRenderHandler), "Argument can not be null."); } #endif UninitRenderHandlers.Add(glRenderHandler); }
public GlRenderHandler(GlRenderHandler glRenderHandler) { glRenderHandler.AddUnitGlRenderHandler(this); _glInitialise(); }
protected internal GlObject(GlRenderHandler glRenderHandler) { GlRenderHandler = glRenderHandler; GlRenderHandler.AddUnitGlObject(this, new GlAction(GlInitialise, glRenderHandler, false)); }
public override void Queue() { GlRenderHandler.GlEnqueue(this as GlFunc <IGlEvent>); }
internal GlAction(Action action, GlRenderHandler glRenderHandler, bool synchronised, bool recursive = false) : base(glRenderHandler, synchronised, recursive) { Action = action; }
public override void Queue() { GlRenderHandler.GlEnqueue(this); }