Example #1
0
        public GraphicsControl(IGL owner)
        {
            SetStyle(ControlStyles.Opaque, true);
            SetStyle(ControlStyles.UserPaint, true);
            SetStyle(ControlStyles.AllPaintingInWmPaint, true);
            SetStyle(ControlStyles.UserMouse, true);

            //in case we need it
            //GLControl.GetType().GetMethod("SetStyle", BindingFlags.Instance | BindingFlags.NonPublic).Invoke(GLControl, new object[] { System.Windows.Forms.ControlStyles.UserMouse, true });

            IGC = owner.Internal_CreateGraphicsControl();
            Managed = IGC as Control;
            Managed.Dock = DockStyle.Fill;
            Controls.Add(Managed);

            //pass through these events to the form. I tried really hard to find a better way, but there is none.
            //(dont use HTTRANSPARENT, it isnt portable, I would assume)
            Managed.MouseDoubleClick += (object sender, MouseEventArgs e) => OnMouseDoubleClick(e);
            Managed.MouseClick += (object sender, MouseEventArgs e) => OnMouseClick(e);
            Managed.MouseEnter += (object sender, EventArgs e) => OnMouseEnter(e);
            Managed.MouseLeave += (object sender, EventArgs e) => OnMouseLeave(e);
            Managed.MouseMove += (object sender, MouseEventArgs e) => OnMouseMove(e);

            //the GraphicsControl is occupying all of our area. So we pretty much never get paint events ourselves.
            //So lets capture its paint event and use it for ourselves (it doesnt know how to do anything, anyway)
            Managed.Paint += new PaintEventHandler(GraphicsControl_Paint);
        }
Example #2
0
 public RenderTargetWrapper(
     Func <BufferedGraphicsContext> getBufferedGraphicsContext,
     IGraphicsControl control = null)
 {
     _getBufferedGraphicsContext = getBufferedGraphicsContext;
     Control = control;
 }
Example #3
0
 public void RegisterVisual(IGraphicsControl graphicsControl)
 {
     this.control = graphicsControl;
 }