示例#1
0
        public void Init(IW32Win w32, NoForm root)
        {
            this.w32        = w32;
            noForm          = root;
            noForm.renderer = this;
            lock (noForm)
            {
                var sz = root.Size;
                // Initialise d2d things
                backBuffer = new Texture2D(device, new Texture2DDescription()
                {
                    ArraySize         = 1,
                    MipLevels         = 1,
                    SampleDescription = new SampleDescription(1, 0),
                    OptionFlags       = ResourceOptionFlags.GdiCompatible,
                    Width             = (int)sz.width,
                    Height            = (int)sz.height,
                    Usage             = ResourceUsage.Default,
                    BindFlags         = BindFlags.RenderTarget,
                    Format            = Format.B8G8R8A8_UNorm,
                });
                renderView      = new RenderTargetView(device, backBuffer);
                surface         = backBuffer.QueryInterface <Surface1>();
                d2dRenderTarget = new RenderTarget(d2dFactory, surface, new RenderTargetProperties(new PixelFormat(Format.B8G8R8A8_UNorm, AlphaMode.Premultiplied)));
                scbTrans        = new SolidColorBrush(d2dRenderTarget, new Color4(1f, 0f, 1f, 0f)); // set buffer area to transparent

                // Init uDraw and assign IRenderElement parts
                _backRenderer = new SharpDX_RenderElements(d2dRenderTarget);
                _uDraw        = new D2DDraw(_backRenderer);

                // Create the observer
                dobs = new DirtyObserver(noForm, RenderPass, () => noForm.DirtyAnimated, () => noForm.ReqSize, () => FPSLimit);
            }
        }
示例#2
0
        public void Init(IW32Win initObj, NoForm nf)
        {
            // do the form
            noForm          = nf;
            noForm.renderer = this;
            this.w32        = initObj;

            // Create the observer
            dobs = new DirtyObserver(noForm, RenderPass, () => noForm.DirtyAnimated, () => noForm.ReqSize, () => FPSLimit);
        }
示例#3
0
        public void Init(IW32Win w32, NoForm root)
        {
            // do the form
            noForm          = root;
            noForm.renderer = this;
            this.w32        = w32;

            // Create the observer
            dobs = new DirtyObserver(noForm, RenderPass, () => noForm.DirtyAnimated, () => noForm.ReqSize);
        }
示例#4
0
        public void Init(IWFWin wf, NoForm root)
        {
            noForm          = root;
            noForm.renderer = this;
            winForm         = wf.form;

            // Create buffer
            buffer   = new Bitmap(winForm.Width, winForm.Height);
            graphics = Graphics.FromImage(buffer);

            // Init uDraw and assign IRenderElement parts
            _backRenderer = new SDG_RenderElements(graphics);
            _uDraw        = new SDGDraw(_backRenderer);

            // Create the observer
            dobs = new DirtyObserver(noForm, RenderPass, () => noForm.DirtyAnimated, () => noForm.ReqSize, () => FPSLimit);
        }
示例#5
0
        void IController <IWFWin> .Init(IWFWin initObj, NoForm nf)
        {
            winForm       = initObj.form;
            this.nf       = nf;
            nf.controller = this;

            // Register!
            winForm.MouseDown += (o, e) => MouseUpDown(SDGTr.tr(e.Location), WFTr.Translate(e.Button), NoForms.Common.ButtonState.DOWN);
            winForm.MouseUp   += (o, e) => MouseUpDown(SDGTr.tr(e.Location), WFTr.Translate(e.Button), NoForms.Common.ButtonState.UP);
            winForm.MouseMove += (o, e) => MouseMove(SDGTr.tr(e.Location));
            winForm.KeyDown   += (o, e) => KeyUpDown((NoForms.Common.Keys)e.KeyCode, NoForms.Common.ButtonState.DOWN);
            winForm.KeyUp     += (o, e) => KeyUpDown((NoForms.Common.Keys)e.KeyCode, NoForms.Common.ButtonState.UP);
            winForm.KeyPress  += (o, e) => KeyPress(e.KeyChar);

            // also the noform
            MouseUpDown += (a, b, c) => nf.MouseUpDown(a, b, c, true, false);
            MouseMove   += l => nf.MouseMove(l, true, false);
            KeyUpDown   += nf.KeyUpDown;
            KeyPress    += nf.KeyPress;
        }
示例#6
0
 void IPlatform.Init(NoForm toDisplay)
 {
     // do the form
     hookAction(toDisplay);
 }
示例#7
0
 public MoveHandle(NoForm MoveControl)
 {
     controlled = MoveControl;
     Cursor     = NoForms.Common.Cursors.SizeAll;
     controlled.controller.MouseMove += MoveMove;
 }
示例#8
0
        public static void AddEdgeResize(NoForm target, int zIndex, float thickness, float cornerSize)
        {
            SizeHandle n, s, e, w, ne, nw, se, sw;

            n = new SizeHandle(target)
            {
                ZIndex = zIndex, ResizeMode = Direction.NORTH, invisible = true
            };
            s = new SizeHandle(target)
            {
                ZIndex = zIndex, ResizeMode = Direction.SOUTH, invisible = true
            };
            e = new SizeHandle(target)
            {
                ZIndex = zIndex, ResizeMode = Direction.EAST, invisible = true
            };
            w = new SizeHandle(target)
            {
                ZIndex = zIndex, ResizeMode = Direction.WEST, invisible = true
            };
            ne = new SizeHandle(target)
            {
                ZIndex = zIndex + 1, ResizeMode = Direction.NORTH | Direction.EAST, invisible = true
            };
            nw = new SizeHandle(target)
            {
                ZIndex = zIndex + 1, ResizeMode = Direction.NORTH | Direction.WEST, invisible = true
            };
            se = new SizeHandle(target)
            {
                ZIndex = zIndex + 1, ResizeMode = Direction.SOUTH | Direction.EAST, invisible = true
            };
            sw = new SizeHandle(target)
            {
                ZIndex = zIndex + 1, ResizeMode = Direction.SOUTH | Direction.WEST, invisible = true
            };

            // cursors
            s.Cursor  = n.Cursor = NoForms.Common.Cursors.SizeNS;
            e.Cursor  = w.Cursor = NoForms.Common.Cursors.SizeWE;
            ne.Cursor = sw.Cursor = NoForms.Common.Cursors.SizeNESW;
            se.Cursor = nw.Cursor = NoForms.Common.Cursors.SizeNWSE;

            Action <Size> sc = null;

            sc = new Action <Size>(size =>
            {
                float wd            = size.width;
                float hi            = size.height;
                float th            = thickness;
                float cs            = cornerSize;
                n.DisplayRectangle  = new Rectangle(0, 0, wd, th);
                s.DisplayRectangle  = new Rectangle(0, hi - th, wd, th);
                e.DisplayRectangle  = new Rectangle(wd - th, 0, th, hi);
                w.DisplayRectangle  = new Rectangle(0, 0, th, hi);
                ne.DisplayRectangle = new Rectangle(wd - cs, 0, cs, cs);
                nw.DisplayRectangle = new Rectangle(0, 0, cs, cs);
                se.DisplayRectangle = new Rectangle(wd - cs, hi - cs, cs, cs);
                sw.DisplayRectangle = new Rectangle(0, hi - cs, cs, cs);
            });
            target.SizeChanged += sc;
            sc(target.Size);
            target.components.Add(n);
            target.components.Add(s);
            target.components.Add(e);
            target.components.Add(w);
            target.components.Add(ne);
            target.components.Add(nw);
            target.components.Add(se);
            target.components.Add(sw);
        }
示例#9
0
 public SizeHandle(NoForm MoveControl)
 {
     controlled = MoveControl;
     MoveControl.controller.MouseMove += ResizeMove;
 }
示例#10
0
 void recreateddf()
 {
     ddf = new NoForm(dropPlatform);
     ddf.components.Add(lb);
 }