예제 #1
0
        public GlCallResult GlCall(Action action, bool recursive = false)
        {
            var glAction = new GlAction(action, this, false, recursive);

            glAction.Queue();
            return(glAction._result);
        }
예제 #2
0
        public GlCallResult GlCallSync(Action action, bool recursive = false)
        {
            GlAction glAction = new GlAction(action, this, true, recursive);

            if (Thread.CurrentThread.Name == GlMasterRenderHandler.GlContextThreadName)
            {
                glAction.Action();
            }
            else
            {
                glAction.Queue();
                glAction._result._signal.Wait();
            }

            return(glAction._result);
        }
예제 #3
0
 protected internal static GlCallResult _glExecute(GlAction glAction)
 {
     glAction.Queue();
     return(glAction.Result);
 }