Пример #1
0
        //Open File
        private void OpenFile(string filename, bool testScene, int testSceneID)
        {
            Console.WriteLine("Importing " + filename);
            ThreadRequest req;

            //Pause renderer
            req      = new ThreadRequest();
            req.type = THREAD_REQUEST_TYPE.GL_PAUSE_RENDER_REQUEST;
            req.arguments.Clear();

            //Send request
            glControl.issueRenderingRequest(ref req);
            glControl.waitForRenderingRequest(ref req);

            //Clear treeview
            Application.Current.Dispatcher.BeginInvoke((System.Action)(() =>
            {
                SceneTreeView.Items.Clear();
            }));


            RenderState.rootObject?.Dispose();

            if (testScene)
            {
                glControl.addTestScene(testSceneID);
            }
            else
            {
                glControl.addScene(filename);
            }

            //Populate
            RenderState.rootObject.ID = itemCounter;
            Util.setStatus("Creating Treeview...");
            //Add to UI
            Application.Current.Dispatcher.BeginInvoke((System.Action)(() =>
            {
                SceneTreeView.Items.Add(RenderState.rootObject);
            }));
            Util.setStatus("Ready");

            //Generate Request for resuming rendering
            ThreadRequest req2 = new ThreadRequest();

            req2.type = THREAD_REQUEST_TYPE.GL_RESUME_RENDER_REQUEST;
            req2.arguments.Clear();

            glControl.issueRenderingRequest(ref req2);
            //glControl.waitForRenderingRequest(ref req2);
        }
Пример #2
0
        public static void sendRequest(ref ThreadRequest req)
        {
            //This function simply issues the request for handling from the active GL Control
            //It is the senders responsibility to handle and keep track of any results if necessary

            //Should be awesome for blind requests that have to
            activeControl?.issueRenderingRequest(ref req);
        }