Пример #1
0
        public override void DrawViewportWires(IGH_PreviewArgs args)
        {
            if (!OpenGL.Initialized)
            {
                OpenGL.Initialize();
            }

            if (args.Display.Viewport.ParentView != null)
            {
                _hglrc            = OpenGL.wglGetCurrentContext();
                _viewSerialNumber = args.Display.Viewport.ParentView.RuntimeSerialNumber;
            }
            _model.Draw(args.Display);
        }
Пример #2
0
        static void PostDrawObjects(object sender, DrawEventArgs args)
        {
            if (_activeShaderComponents.Count < 1)
            {
                return;
            }

            if (!OpenGL.Initialized)
            {
                OpenGL.Initialize();
            }
            if (!OpenGL.IsAvailable)
            {
                return;
            }

            UpdateContext(args);

            SortComponents();
            using (IDisposable lifetimeObject = PerFrameCache.BeginFrame(args.Display, _activeShaderComponents))
            {
                foreach (var component in _activeShaderComponents)
                {
                    if (component.Hidden)
                    {
                        continue;
                    }

                    if (!GLSLEditorDialog.EditorsOpen && !AnimationTimerEnabled)
                    {
                        string dataType;
                        int    arrayLength;
                        if (component._model.TryGetUniformType("_time", out dataType, out arrayLength) ||
                            component._model.TryGetUniformType("_date", out dataType, out arrayLength) ||
                            component._model.TryGetUniformType("_mousePosition", out dataType, out arrayLength) ||
                            component._model.TryGetUniformType("_mouseDownPosition", out dataType, out arrayLength) ||
                            component._model.TryGetUniformType("_mouseState", out dataType, out arrayLength))
                        {
                            AnimationTimerEnabled = true;
                        }
                    }

                    component._model.Draw(args.Display, component);
                }
            }
            GLRecycleBin.Recycle();
            _activeShaderComponents.Clear();
        }
Пример #3
0
        // One time setup function to get the OpenGL functions initialized for use
        private void DisplayPipeline_DrawForeground(object sender, DrawEventArgs e)
        {
            DisplayPipeline.DrawForeground -= DisplayPipeline_DrawForeground;
            if (!OpenGL.Initialized)
            {
                OpenGL.Initialize();
            }

            _hglrc = OpenGL.wglGetCurrentContext();
            var view = e.Display.Viewport.ParentView;

            if (view == null)
            {
                view = e.RhinoDoc.Views.ActiveView;
            }
            _viewSerialNumber = view.RuntimeSerialNumber;
        }