Пример #1
0
        protected internal override void Render(Graphics graphics, IRender render)
        {
            if (GetPathInternal() == null)
            {
                return;
            }

            //Translate by offset
            graphics.TranslateTransform(mOffset.X, mOffset.Y);

            //Fill and draw the port
            RenderPort(graphics, render);

            //Render image
            if (Image != null)
            {
                Image.Render(graphics, render);
            }

            //Render label
            if (Label != null)
            {
                Label.Render(graphics, render);
            }

            graphics.TranslateTransform(-mOffset.X, -mOffset.Y);
        }
Пример #2
0
        public void RenderShapes(IRender render, IGame game)
        {
            var shape = game.ShapeInPlay;

            try
            {
                var shapeGridWidth = shape.ShapeGrid.GetLength(0);

                for (int i = 0; i < shapeGridWidth; i++)
                {
                    for (int j = 0; j < shapeGridWidth; j++)
                    {
                        if (shape.ShapeGrid[i, j])
                        {
                            render.Draw(i + shape.GameGridXPosition, j + shape.GameGridYPosition, shape.ShapeColor);
                        }
                    }
                }

                foreach (var block in game.GameGrid.Blocks)
                {
                    render.Draw(block.X, block.Y, block.ShapeColor);
                }
            }

            catch (NullReferenceException)
            {
            }
        }
Пример #3
0
 public Frame(IRender content, BorderType border)
 {
     fill         = content == null;
     this.content = content;
     borderType   = border;
     this.border  = BoxArt.Border[border];
 }
Пример #4
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <remarks>Every initial values come from <see cref="Constants.Player"/>.</remarks>
 internal Player() : base(
         0,
         Constants.Player.INITIAL_X,
         Constants.Player.INITIAL_Y,
         Constants.Player.SPRITE_WIDTH,
         Constants.Player.SPRITE_HEIGHT,
         Constants.Player.MAXIMAL_LIFE_POINTS,
         Constants.Player.HIT_LIFE_POINT_COST,
         Constants.Player.INITIAL_SPEED,
         Constants.Player.RECOVERY_TIME,
         nameof(Filename.Player),
         nameof(Filename.PlayerRecovery),
         Direction.Right)
 {
     NewScreenEntrance      = null;
     Inventory              = new Inventory();
     SwordHitSprite         = null;
     _hitElapser            = null;
     _currentWeaponHitDelay = Constants.Player.SWORD_HIT_DELAY;
     _movementTimeManager   = new Elapser(this, ElapserUse.PlayerMovement);
     _renderShield          = DefaultRender.BasicImage(this, nameof(Filename.PlayerShield));
     _renderRecoveryShield  = DefaultRender.AnimatedBasicImage(this,
                                                               nameof(Filename.PlayerRecoveryShield), ElapserUse.LifeSpriteRecovery, Constants.RECOVERY_BLINK_DELAY);
     _renderSword         = DefaultRender.BasicImage(this, nameof(Filename.PlayerSword));
     _renderRecoverySword = DefaultRender.AnimatedBasicImage(this,
                                                             nameof(Filename.PlayerRecoverySword), ElapserUse.LifeSpriteRecovery, Constants.RECOVERY_BLINK_DELAY);
 }
Пример #5
0
        protected internal override void Render(Graphics graphics, IRender render)
        {
            //Render this shape
            base.Render(graphics, render);

            Region current = null;

            //Set up clipping if required
            if (Clip)
            {
                Region region = new Region(GetPathInternal());
                current = graphics.Clip;
                graphics.SetClip(region, CombineMode.Intersect);
            }

            //Render the children
            if (Children != null)
            {
                foreach (SolidElement solid in RenderList)
                {
                    graphics.TranslateTransform(solid.Rectangle.X, solid.Rectangle.Y);
                    solid.Render(graphics, render);
                    graphics.TranslateTransform(-solid.Rectangle.X, -solid.Rectangle.Y);
                }
            }

            if (Clip)
            {
                graphics.Clip = current;
            }
        }
Пример #6
0
        public Engine(IRender render, IStatisticFactory statisticFactory, IStatisticStorage statisticStorage)
        {
            if (render == null)
            {
                throw new ArgumentNullException("render");
            }

            if (statisticFactory == null)
            {
                throw new ArgumentNullException("statisticFactory");
            }

            if (statisticStorage == null)
            {
                throw new ArgumentNullException("statisticStorage");
            }

            this.Render           = render;
            this.StatisticFactory = statisticFactory;
            this.StatisticStorage = statisticStorage;

            this.State          = new StartState(this);
            this.CommandFactory = new CommandFactory(this);
            this.Statistic      = StatisticFactory.CreateStatistic();
        }
Пример #7
0
        //Add custom rendered status "icon"
        protected override void Render(Graphics graphics, IRender render)
        {
            base.Render(graphics, render);

            //Save value of smoothign mode
            SmoothingMode smoothing = graphics.SmoothingMode;

            //Set up pens and brushes
            Pen        pen   = new Pen(Color.FromArgb(128, Color.Gray), 1);
            SolidBrush brush = new SolidBrush(Color.White);

            //Move the drawing origin to the icon location
            graphics.TranslateTransform(Width - 20, 5);

            //Set up the circle path
            GraphicsPath path = new GraphicsPath();

            path.AddEllipse(0, 0, 16, 16);

            graphics.SmoothingMode = SmoothingMode.HighQuality;
            graphics.FillPath(brush, path);          //Fill Circle
            graphics.DrawPath(pen, path);            //Outline

            //Set up the cross path
            if (Available)
            {
                //Set up the tick path
                GraphicsPath tick = new GraphicsPath();
                tick.AddLine(3, 8, 5, 6);
                tick.AddLine(5, 6, 8, 8);
                tick.AddLine(8, 8, 12, 3);
                tick.AddLine(12, 3, 13, 4);
                tick.AddLine(13, 4, 9, 13);
                tick.AddLine(9, 13, 3, 8);

                graphics.FillPath(new SolidBrush(BorderColor), tick);
            }
            else
            {
                GraphicsPath cross = new GraphicsPath();
                cross.AddLine(3, 5, 5, 3);
                cross.AddLine(5, 3, 8, 6);
                cross.AddLine(8, 6, 11, 3);
                cross.AddLine(11, 3, 13, 5);
                cross.AddLine(13, 5, 10, 8);

                cross.AddLine(10, 8, 13, 11);
                cross.AddLine(13, 11, 11, 13);
                cross.AddLine(11, 13, 8, 10);
                cross.AddLine(8, 10, 5, 13);
                cross.AddLine(5, 13, 3, 11);
                cross.AddLine(3, 11, 6, 8);

                graphics.FillPath(new SolidBrush(Color.DarkRed), cross);
            }

            //Reset the translate and smoothing mode
            graphics.TranslateTransform(-(Width - 20), -(Height - 20));
            graphics.SmoothingMode = SmoothingMode;
        }
Пример #8
0
    void OnAddItem_AddItem(ItemObject item)
    {
        //BagItemObject _container = Global.Component.GetPlayerBag();
        ContainerPack _containerPack = GetContainerPack();

        if (_containerPack == null)
        {
            //TODO все забито
        }

        IItemList <ItemObject> _innerItems = _containerPack.GetInnerItems();
        IRender    _render    = _containerPack.GetRender();
        GameObject _container = _containerPack.GetContainer();

        if (_innerItems != null)
        {
            //if (_container.IsFuLL() == false)
            //{

            if (IsOpen(_container) == true)
            {
                _innerItems.Add(item);
                _render.Add(item);
            }
            else
            {
                item.inventoryData.SetSlotID(_render.GetFreeSlotID((ItemObject)_innerItems));
                _innerItems.Add(item);
            }
            //}
        }
    }
Пример #9
0
        public static void Run(IControl controller, IRender renderer, World world)
        {
            var controllerLock = new object();

            Thread setControlCommand = new Thread(() =>
            {
                while (controller.Command != ControlCommand.End)
                {
                    controller.ReadCommand();
                    lock (controllerLock)
                    {
                        controller.SetCurrentCommand();
                    }
                }
            }); setControlCommand.Start();

            Thread renderSimulation = new Thread(() =>
            {
                while (controller.Command != ControlCommand.End)
                {
                    Thread.Sleep(300);
                    lock (controllerLock)
                    {
                        renderer.Render(world.CloneGrid(), controller.Command);
                        if (controller.Command == ControlCommand.Running)
                        {
                            world.Tick();
                        }
                    }
                }
            });

            renderSimulation.Start();
        }
Пример #10
0
        //fill the marker background
        protected internal override void RenderShadow(Graphics graphics, IRender render)
        {
            Layer layer       = render.CurrentLayer;
            Color shadowColor = render.AdjustColor(layer.ShadowColor, BorderWidth, Opacity);

            if (DrawBackground)
            {
                SolidBrush brush = new SolidBrush(shadowColor);

                //Draw soft shadows
                if (layer.SoftShadows)
                {
                    shadowColor = Color.FromArgb(10, shadowColor);
                    graphics.CompositingQuality = CompositingQuality.HighQuality;
                    graphics.SmoothingMode      = SmoothingMode.HighQuality;
                }

                graphics.FillPath(brush, GetPathInternal());

                if (layer.SoftShadows)
                {
                    graphics.CompositingQuality = render.CompositingQuality;
                    graphics.SmoothingMode      = SmoothingMode;
                }
            }

            base.RenderShadow(graphics, render);
        }
Пример #11
0
        public void Draw(IRender render, Vector2 position)
        {
            render.AddViewRect(new ViewRect((int)Math.Round(position.X, 0), (int)Math.Round(position.Y, 0), Width, Height));

            if (currentAnimation == null)
            {
                return;
            }

            render.Begin();

            for (int n = 0; n < currentAnimation.Textures.Length; n++)
            {
                if (textureTimes[n] <= CurrentTime && textureTimeToEnd[n] >= CurrentTime)
                {
                    Vector2 pos = position;
                    if (SpriteEffect == SpriteEffects.FlipHorizontally)
                    {
                        pos.X += currentAnimation.Width;
                    }
                    if (SpriteEffect == SpriteEffects.FlipVertically)
                    {
                        pos.Y += currentAnimation.Height;
                    }

                    currentAnimation.Textures[n].Draw(render, position, SpriteEffect);
                }
            }

            render.End();
        }
Пример #12
0
 protected override void format(TextWriter writer, IRender render, object state)
 {
     if (render != null)
     {
         render.Render(writer, state);
     }
 }
Пример #13
0
        //Implement a base rendering of an element selection
        protected internal override void RenderAction(Graphics graphics, IRender render, IRenderDesign renderDesign)
        {
            if (renderDesign.ActionStyle == ActionStyle.Default)
            {
                RenderTable(graphics, render);

                //Render the ports
                if (Ports != null)
                {
                    foreach (Port port in Ports.Values)
                    {
                        if (port.Visible)
                        {
                            graphics.TranslateTransform(-Rectangle.X + port.Rectangle.X, -Rectangle.Y + port.Rectangle.Y);
                            port.SuspendValidation();
                            port.Render(graphics, render);
                            port.ResumeValidation();
                            graphics.TranslateTransform(Rectangle.X - port.Rectangle.X, Rectangle.Y - port.Rectangle.Y);
                        }
                    }
                }
            }
            else
            {
                base.RenderAction(graphics, render, renderDesign);
            }
        }
Пример #14
0
        public EarthApplication(ApplicationWindow window)
        {
            Window          = window;
            Window.Resized += HandleWindowResize;
            Window.GraphicsDeviceCreated   += OnGraphicsDeviceCreated;
            Window.GraphicsDeviceDestroyed += OnDeviceDestroyed;
            Window.Rendering += PreDraw;
            Window.Rendering += Draw;
            //首先创建一个场景对象
            _scene      = new Scene.Scene(window.Width, window.Height);
            globeRender = new RayCastedGlobe(_scene);
            var path = @"E:\swyy\Lib\PongGlobe\PongGlobe\assets\Vector\NaturalEarth\110m-admin-0-countries\110m_admin_0_countries.shp";

            vectorLayerRender = new Renders.VectorLayerRender(path, _scene);
            var shareRender = new ShareRender(_scene);

            renders.Add(shareRender);
            renders.Add(globeRender);
            renders.Add(vectorLayerRender);
            var pat2h       = @"E:\swyy\Lib\PongGlobe\PongGlobe\assets\Vector\NaturalEarth\110m-populated-places-simple\110m_populated_places_simple.shp";
            var vectorPoint = new PointVectorLayerRender(pat2h, _scene);
            //renders.Add(vectorPoint);
            //var drawline = new DrawLineTool(_scene);
            // renders.Add(drawline);
        }
Пример #15
0
        public override void Draw(IRender render)
        {
            render.SetPixel(X, Y, ConsoleColor.White);

            Y = Y % 80 + 2;
            //base.Draw(render);
        }
Пример #16
0
        public override void Project(GameTime gameTime, int x, int y, IRender render)
        {
            render.Begin();

            int railAddX = Pointer.Width / 2;
            int railY    = y + (Pointer.Height / 2) - (RailEdge.Height / 2);

            render.DrawSprite(RailEdge, new Vector2(x + railAddX, railY), Color.White);
            render.DrawSprite(RailEdge, new Vector2(x + railAddX + Width - RailEdge.Width, railY), Color.White);

            render.DrawSprite(RailMiddle, new Rectangle(x + railAddX + RailEdge.Width, railY, Width - RailEdge.Width * 2 - railAddX * 2, RailMiddle.Height), Color.White);

            render.DrawSprite(Pointer, new Vector2(PointerX, y), Color.White);

            //Dras milestones
            double stepPixelWidth = Math.Max((Width - RailEdge.Width * 2 - railAddX) * (StepValue / MaxValue), 1F);
            double stepX          = x + railAddX;

            while (stepX < (x + Width - RailEdge.Width * 2 - railAddX))
            {
                render.DrawSprite(Milestone, new Vector2((int)Math.Round(stepX, 0), y + Pointer.Height + PointerMilestoneMargin), Color.White);
                stepX += stepPixelWidth;
            }

            render.End();
        }
Пример #17
0
        protected override void CreateHandles()
        {
            if (Container == null)
            {
                return;
            }
            SetHandles(new Handles());

            //Get the default graphics path and scale it
            IRender      render      = RenderFromContainer();
            GraphicsPath defaultPath = (GraphicsPath)Component.Instance.DefaultHandlePath.Clone();
            Matrix       matrix      = new Matrix();

            matrix.Scale(render.ZoomFactor, render.ZoomFactor);
            defaultPath.Transform(matrix);
            RectangleF pathRectangle = defaultPath.GetBounds();
            RectangleF halfRectangle = new RectangleF(0, 0, pathRectangle.Width / 2, pathRectangle.Height / 2);

            //Loop through each point and add an offset handle
            GraphicsPath path;

            foreach (PointF point in Points)
            {
                path = (GraphicsPath)defaultPath.Clone();
                matrix.Reset();
                matrix.Translate(point.X - Rectangle.X - halfRectangle.Width, point.Y - Rectangle.Y - halfRectangle.Height);
                path.Transform(matrix);
                Handles.Add(new Handle(path, HandleType.Origin));
            }

            Handles[0].CanDock = true;
            Handles[Handles.Count - 1].CanDock = true;
        }
Пример #18
0
        //Implement a base rendering of an element selection
        protected internal override void RenderSelection(Graphics graphics, IRender render, IRenderDesign renderDesign)
        {
            CreateHandles();

            SmoothingMode smoothing = graphics.SmoothingMode;

            graphics.SmoothingMode = SmoothingMode.AntiAlias;

            Handle     previousHandle = null;
            SolidBrush brushWhite     = new SolidBrush(Color.White);
            Pen        pen            = Component.Instance.SelectionStartPen;
            SolidBrush brush          = Component.Instance.SelectionStartBrush;

            foreach (Handle handle in Handles)
            {
                if (previousHandle != null)
                {
                    graphics.FillPath(brushWhite, previousHandle.Path);
                    graphics.FillPath(brush, previousHandle.Path);
                    graphics.DrawPath(pen, previousHandle.Path);
                    pen   = Component.Instance.SelectionPen;                   //Set to normal brush
                    brush = Component.Instance.SelectionBrush;                 //Set to normal pen
                }
                previousHandle = handle;
            }
            graphics.FillPath(brushWhite, previousHandle.Path);
            graphics.FillPath(Component.Instance.SelectionEndBrush, previousHandle.Path);
            graphics.DrawPath(Component.Instance.SelectionEndPen, previousHandle.Path);

            graphics.SmoothingMode = smoothing;
        }
Пример #19
0
 /// <summary>
 /// 处理后操作
 /// </summary>
 /// <param name="context">上下文</param>
 /// <param name="render">渲染器</param>
 protected virtual void ProcessAfter(Context context, IRender render)
 {
     if (WriteLog)
     {
         WriteTraceLog(render, "渲染TagHelper组件");
     }
 }
Пример #20
0
        public override void Project(GameTime gameTime, int x, int y, IRender render)
        {
            render.Begin();

            render.DrawBody(new Rectangle(x, y, Width, Height), Color.White,
                            TopBorder,
                            TopRightCorner,
                            RightBorder,
                            BottomRightCorner,
                            BottomBorder,
                            BottomLeftCorner,
                            LeftBorder,
                            TopLeftCorner,
                            Inside);


            string textToDraw = Text;

            if (HasFocus)
            {
                textToDraw = Text.Insert(CursorPosition, "|");
            }

            Font.DrawString(textToDraw, new Point(x + LeftBorder.Width + textMargin, y + base.Height / 2 - Font.CharHeight / 2), FontColor, render);

            render.End();
        }
Пример #21
0
        //Implement a base rendering of an element
        protected internal virtual void RenderShadow(Graphics graphics, IRender render)
        {
            if (this.Layer == null)
            {
                return;
            }

            Layer        layer      = Layer;
            Pen          shadowPen  = new Pen(render.AdjustColor(layer.ShadowColor, BorderWidth, Opacity));
            GraphicsPath shadowPath = GetPathInternal();

            graphics.TranslateTransform(layer.ShadowOffset.X, layer.ShadowOffset.Y);

            if (layer.SoftShadows)
            {
                graphics.CompositingQuality = CompositingQuality.HighQuality;
                graphics.SmoothingMode      = SmoothingMode.HighQuality;
                graphics.DrawPath(shadowPen, shadowPath);
                graphics.CompositingQuality = render.CompositingQuality;
                graphics.SmoothingMode      = SmoothingMode;
            }
            else
            {
                graphics.DrawPath(shadowPen, shadowPath);
            }

            //Restore graphics
            graphics.TranslateTransform(-layer.ShadowOffset.X, -layer.ShadowOffset.Y);
        }
Пример #22
0
 public SymmetricSpectrum(IEffectApi api, int width, int height) : base(width, height)
 {
     _api          = api;
     _color        = new SKColor(0, 255, 128);
     _render       = _api.CreateRender();
     _featureCache = _api.CreateAudioFeatureCache();
 }
        public static bool Show(IRender render, Screen screen)
        {
            var handle = render.ShowRender();

            var core = GetCore(screen);

            if (core == null)
            {
                return(false);
            }

            Close(core.Render);//清理旧Render

            render.SetCore(core);
            core.Render = render;

            //处理alt+tab可以看见本程序
            //https://stackoverflow.com/questions/357076/best-way-to-hide-a-window-from-the-alt-tab-program-switcher
            int exStyle = User32Wrapper.GetWindowLong(handle, WindowLongFlags.GWL_EXSTYLE);

            exStyle |= (int)WindowStyles.WS_EX_TOOLWINDOW;
            User32Wrapper.SetWindowLong(handle, WindowLongFlags.GWL_EXSTYLE, exStyle);

            bool ok = core.SendToBackground(handle);

            return(ok);
        }
Пример #24
0
        private void RenderElement(Graphics graphics, IRender render)
        {
            Pen pen = null;

            if (CustomPen == null)
            {
                pen           = new Pen(BorderColor, BorderWidth);
                pen.DashStyle = BorderStyle;

                //Check if winforms renderer and adjust color as required
                pen.Color = render.AdjustColor(BorderColor, BorderWidth, Opacity);
            }
            else
            {
                pen = CustomPen;
            }

            //Can throw an out of memory exception in System.Drawing
            try
            {
                graphics.SmoothingMode = SmoothingMode;
                graphics.DrawPath(pen, mPath);
            }
            catch
            {
            }
        }
Пример #25
0
		public override void Render(Graphics graphics, IRender render)
		{
			byte opacity = 100;
			if (Table != null) opacity = Table.Opacity;

			//Draw indent
			SolidBrush brush = new SolidBrush(render.AdjustColor(Backcolor,1,opacity));
			brush.Color = Color.FromArgb(brush.Color.A /2, brush.Color);
			graphics.FillRectangle(brush,0,Rectangle.Top,Indent,Rectangle.Height);

			//Draw image
			float imageWidth = 0;
			if (Image != null)
			{
				System.Drawing.Image bitmap = Image.Bitmap;

				//Work out position of image
				float imageTop = (Rectangle.Height - bitmap.Height) / 2;
				if (imageTop < 0) imageTop = 0;
				
				imageWidth = bitmap.Width;
				graphics.DrawImageUnscaled(bitmap,Convert.ToInt32(Indent),Convert.ToInt32(Rectangle.Top+imageTop));
			}

			//Draw text
			RectangleF textRectangle = new RectangleF(Indent+imageWidth+4,Rectangle.Top,Rectangle.Width - Indent -4,Rectangle.Height);
			brush = new SolidBrush(render.AdjustColor(Forecolor,1,opacity));
			StringFormat format = new StringFormat();
			format.LineAlignment = StringAlignment.Center;
			format.FormatFlags = StringFormatFlags.NoWrap;
			graphics.DrawString(Text,Component.Instance.GetFont(FontName,FontSize,FontStyle),brush,textRectangle,format);
		}
Пример #26
0
        /// <summary>
        /// Constructor
        /// </summary>
        public VMR9Util()
        {
            _useVmr9 = true;

            if (!GUIGraphicsContext.VMR9Allowed)
            {
                Log.Info("VMR9: ctor() - VMR9 not allowed");
                _useVmr9 = false;
                return;
            }
            _renderFrame = GUIGraphicsContext.RenderGUI;
            if (GUIGraphicsContext.DX9Device == null)
            {
                _useVmr9 = false;
                Log.Warn("VMR9: ctor() - DX9Device == null!");
            }
            if (_renderFrame == null)
            {
                _useVmr9 = false;
                Log.Debug("VMR9: ctor() _renderFrame == null");
            }
            if (g_vmr9 != null || GUIGraphicsContext.Vmr9Active)
            {
                _useVmr9 = false;
                Log.Info("VMR9: ctor() VMR9 already active");
            }
        }
Пример #27
0
        public void WaitRendingStart()
        {
            List <Task> tasklist = new List <Task>();

            foreach (KeyValuePair <int, IRender> CRK in clist)
            {
                Task t = Task.Factory.StartNew((object prm) =>
                {
                    IRender CRV = (IRender)prm;
                    while (CRV.getRendingFile() == "" || !System.IO.File.Exists(CRV.getRendingFile()))
                    {
                        System.Threading.Thread.Sleep(100);
                    }
                }, CRK.Value);
                tasklist.Add(t);
            }
            Task.WaitAll(tasklist.ToArray());

            mwsp.InputMap.Clear();
            FormatHelper fh         = new FormatHelper(IOHelper.NormalPcmMono16_Format);
            long         TailLength = fh.Ms2Bytes(1000);

            foreach (KeyValuePair <int, IRender> CRK in clist)
            {
                WaveStreamType wst = new WaveStreamType();
                wst.UnreadableTail = TailLength;
                wst.WaveStream     = new FileStream(CRK.Value.getRendingFile(), FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
                mwsp.InputMap.Add(CRK.Key, wst);
            }
        }
Пример #28
0
 public override void Draw(IRender render)
 {
     render.SetPixel(X, Y, Color);
     render.SetPixel(X - 1, Y, Color);
     render.SetPixel(X + 1, Y, Color);
     render.SetPixel(X, Y - 1, Color);
     render.SetPixel(X, Y + 1, Color);
     render.SetPixel(X, Y - 2, Color);
     render.SetPixel(X + 1, Y + 2, Color);
     render.SetPixel(X + 1, Y + 3, Color);
     render.SetPixel(X + 1, Y + 1, Color);
     render.SetPixel(X + 1, Y + 2, Color);
     render.SetPixel(X + 1, Y + 3, Color);
     render.SetPixel(X - 1, Y + 1, Color);
     render.SetPixel(X - 1, Y + 2, Color);
     render.SetPixel(X - 1, Y + 3, Color);
     render.SetPixel(X + 2, Y + 2, Color);
     render.SetPixel(X + 2, Y + 3, Color);
     render.SetPixel(X - 2, Y + 2, Color);
     render.SetPixel(X - 2, Y + 3, Color);
     render.SetPixel(X, Y + 1, Color);
     render.SetPixel(X, Y + 2, Color);
     render.SetPixel(X, Y + 3, Color);
     render.SetPixel(X - 1, Y + 4, Color);
     render.SetPixel(X + 1, Y + 4, Color);
     render.SetPixel(X + 3, Y + 3, Color);
     render.SetPixel(X - 3, Y + 3, Color);
 }
Пример #29
0
        public void DrawChar(char c, Point position, Vector2 origin, Color color, IRender render)
        {
            int addX = 0;
            int addY = 0;

            if (origin.X != 0 && origin.Y != 0)
            {
                addX = -(int)Math.Round(CharWidth * origin.X, 0);
                addY = -(int)Math.Round(CharHeight * origin.Y, 0);
            }

            Rectangle sourceRect = GetCharRect(c);

            if (sourceRect.IsEmpty)
            {
                return;
            }

            render.DrawSprite(FontSprite,
                              new Rectangle(position.X + addX,
                                            position.Y + addY,
                                            CharWidth,
                                            CharHeight),
                              sourceRect, color);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="Engine"/> class.
        /// </summary>
        /// <param name="render">The render.</param>
        /// <param name="statisticFactory">The statisticFactory.</param>
        /// <param name="statisticStorage">The statisticStorage.</param>
        public Engine(IRender render, IStatisticFactory statisticFactory, IStatisticStorage statisticStorage)
        {
            if (render == null)
            {
                throw new ArgumentNullException(nameof(render));
            }

            if (statisticFactory == null)
            {
                throw new ArgumentNullException(nameof(statisticFactory));
            }

            if (statisticStorage == null)
            {
                throw new ArgumentNullException(nameof(statisticStorage));
            }

            this.Render = render;
            this.StatisticFactory = statisticFactory;
            this.StatisticStorage = statisticStorage;

            this.State = new StartState(this);
            this.CommandFactory = new CommandFactory(this);
            this.Statistic = this.StatisticFactory.CreateStatistic();
        }
Пример #31
0
        public FilterLineControl(IRender render, IExecutor exec)
        {
            this.render = render ?? throw new ArgumentNullException(nameof(render));
            this.exec   = exec ?? throw new ArgumentNullException(nameof(exec));

            InitializeComponent();
        }
Пример #32
0
        protected override void Render(Graphics graphics, IRender render)
        {
            if (this.m_flash)
            {
                // Get Path
                GraphicsPath path = base.GetPath();

                // Draw Fill
                LinearGradientBrush brush = new LinearGradientBrush(
                    new RectangleF(0f, 0f, base.Rectangle.Width, base.Rectangle.Height),
                    base.BackColor,
                    Color.Yellow,
                    base.GradientMode);
                graphics.FillPath(brush, path);

                // Draw Outline
                Pen pen = new Pen(base.BorderColor, base.BorderWidth);
                pen.DashStyle = DashStyle.Solid;
                pen.Color     = Color.Yellow;
                graphics.DrawPath(pen, path);
            }
            else
            {
                base.Render(graphics, render);
            }
        }
Пример #33
0
		/// <summary>
		/// 	Creates new descriptor over given action
		/// </summary>
		/// <param name="render"> </param>
		public RenderDescriptor(IRender render) {
			Render = render;
			Name = RenderAttribute.GetName(render);
			DirectRole = RenderAttribute.GetRole(render);
			var contextualRender = render as IContextualRender;
			if (contextualRender != null) {
				contextualRender.SetDescriptor(this);
			}
		}
Пример #34
0
 public VideoProcessorJobMsg(String name, String forAnswer, IRender render, IEnumerator<WorkId> workIter)
 {
     if ((name == null) || (forAnswer == null) || (render == null))
         throw new ArgumentNullException("Null parameter in VideoProcessorJobMsg");
     this.name = name;
     this.forAnswer = forAnswer;
     this.render = render;
     workIter.Reset();
     while (workIter.MoveNext())
         this.workList.Add(workIter.Current);
 }
Пример #35
0
 public SendWorkAction(ManagerVideoJob job, IRender render, int quantity, IEnumerator<String> tasksAddr, IEnumerator<WorkId> initWorkIter)
 {
     this.job = job;
     tasksAddr.Reset();
     while (tasksAddr.MoveNext())
         this.tasksAddr.Add(tasksAddr.Current);
     initWorkIter.Reset();
     while (initWorkIter.MoveNext())
         this.initWork.Enqueue(initWorkIter.Current);
     this.quantity = quantity;
     this.render = render;
 }
Пример #36
0
        static void Init(IntPtr pParam)
        {
            IEngineSubSystem subSys = null;

            core.GetSubSystem(E_ENGINE_SUB_SYSTEM.ESS_RESOURCE_MANAGER, out subSys);
            resman = (IResourceManager)subSys;

            core.GetSubSystem(E_ENGINE_SUB_SYSTEM.ESS_RENDER, out subSys);
            render = (IRender)subSys;

            core.GetSubSystem(E_ENGINE_SUB_SYSTEM.ESS_INPUT, out subSys);
            input = (IInput)subSys;
        }
Пример #37
0
        public GameScreen()
        {
            InitializeComponent();

            _controller = new GameController(new GameServer());
            _renderer = new WinformsRenderer();
            _inputRouter = new WinformsInputRouter();
            _renderer.OnGameboardInput = _inputRouter.HandleGameboardInteraction;

            newToolStripMenuItem.Click += (sender, args) =>
            {
                var viewModel = _controller.StartNewGame();
                _renderer.Render(viewModel, renderTarget);
            };
        }
Пример #38
0
        public MainWindow()
        {
            InitializeComponent();

            var bmp = new WriteableBitmap(
                640, 480, 96, 96,
                PixelFormats.Bgra32,
                null);

            device = new Device(bmp);

            FrontBuffer.Source = bmp;

            meshes = new List<Mesh>();
            #if false
            var m = new Mesh("triangle", 4, 4);

            m.Vertices[0] = new Vector3(0, 1f, 0f);
            m.Vertices[1] = new Vector3(1f, -1f, 0f);
            m.Vertices[2] = new Vector3(-1f, -1f, 0f);
            m.Vertices[3] = new Vector3(-0f, 0.0f, -1f);

            m.Faces[0] = new Face(0, 1, 2);
            m.Faces[1] = new Face(0, 3, 1);
            m.Faces[2] = new Face(0, 3, 2);
            m.Faces[3] = new Face(1, 3, 2);

            meshes.Add(m);
            #else
            var mesh1 = Mesh.LoadMesh(@"resources\monkey.babylon", 0);
            mesh1.Position = new Vector3(-0.0f,0f,0f);
            mesh1.Rotation = new Vector3(-3.2f, 0f, 0f);
            meshes.Add(mesh1);

            //meshes.Add(Mesh.LoadMesh(@"resources\monkey.babylon", 0));
            //meshes.Add(Mesh.LoadMesh(@"resources\monkey.babylon", 0));
            //meshes.Add(Mesh.LoadMesh(@"resources\monkey.babylon", 0));
            //meshes.Add(Mesh.LoadMesh(@"resources\monkey.babylon", 0));
            #endif
            camera = new Camera();
            camera.Position = new Vector3(0, 0, 10.0f);
            camera.Target = Vector3.Zero;

            render = new CompositeRender(new FaceRender());

            CompositionTarget.Rendering += CompositionTargetRendering;
        }
Пример #39
0
	 	public HuiZhaoMeshView3D()	:   base(new OpenTK.Graphics.GraphicsMode(32,24,8,1,32,2,true)) 
       // public HuiZhaoMeshView3D() 
		{
            this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.MeshView3D_KeyUp);
            this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.MeshView3D_KeyDown);

            ToolPool.Instance.Width = this.Width;
            ToolPool.Instance.Height = this.Height;
            ToolPool.Instance.Tool = new ToolView(Width,Height);
             

            ToolPool.Instance.ChangedTool += new MeshChangedDelegate(Instance_ChangedTool);
            render = new RenderBasic();

            
            
		}
Пример #40
0
        void Init(IntPtr pParam)
        {
            IEngineSubSystem pSubSys;

            pEngineCore.GetSubSystem(E_ENGINE_SUB_SYSTEM.ESS_RENDER, out pSubSys);
            pRender = (IRender)pSubSys;
            pRender.GetRender2D(out pRender2D);

            pEngineCore.GetSubSystem(E_ENGINE_SUB_SYSTEM.ESS_INPUT, out pSubSys);
            pInput = (IInput)pSubSys;
            pInput.Configure(E_INPUT_CONFIGURATION_FLAGS.ICF_HIDE_CURSOR);

            IResourceManager pResMan;
            pEngineCore.GetSubSystem(E_ENGINE_SUB_SYSTEM.ESS_RESOURCE_MANAGER, out pSubSys);
            pResMan = (IResourceManager)pSubSys;

            IEngineBaseObject pBaseObj;

            pResMan.Load(RESOURCE_PATH + "sounds\\bug_death.wav", out pBaseObj, 0);
            pSndDeath = (ISoundSample)pBaseObj;
            pResMan.Load(RESOURCE_PATH + "sprites\\light.jpg", out pBaseObj, 0);
            pTexLight = (ITexture)pBaseObj;
            pResMan.Load(RESOURCE_PATH + "sprites\\smoke.png", out pBaseObj, 0);
            pTexSmoke = (ITexture)pBaseObj;
            pResMan.Load(RESOURCE_PATH + "sprites\\bug.png", out pBaseObj, 0);
            pTexBug = (ITexture)pBaseObj;
            pResMan.Load(RESOURCE_PATH + "sprites\\bug_corpse.png", out pBaseObj, 0);
            pTexBugCorpse = (ITexture)pBaseObj;
            pResMan.Load(RESOURCE_PATH + "sprites\\blood.png", out pBaseObj, 0);
            pTexBlood = (ITexture)pBaseObj;
            pResMan.Load(RESOURCE_PATH + "textures\\cartoon_grass.tga", out pBaseObj, (uint)(E_TEXTURE_LOAD_FLAGS.TLF_FILTERING_BILINEAR |
                        E_TEXTURE_LOAD_FLAGS.TLF_COORDS_REPEAT));
            pTexBg = (ITexture)pBaseObj;

            pTexBug.SetFrameSize(52, 42);

            for (uint i = 0; i < 3; i++)
            {
                pResMan.CreateTexture(out pTexTarget[i], null, ScreenWidth, ScreenHeight,
                    E_TEXTURE_DATA_FORMAT.TDF_RGB8, E_TEXTURE_CREATE_FLAGS.TCF_DEFAULT,
                    E_TEXTURE_LOAD_FLAGS.TLF_FILTERING_BILINEAR | E_TEXTURE_LOAD_FLAGS.TLF_COORDS_CLAMP);
            }
            Clear();
        }
Пример #41
0
        protected override void Render(Graphics graphics, IRender render) {
            if (this.m_flash) {
                // Get Path
                GraphicsPath path = base.GetPath();

                // Draw Fill
                LinearGradientBrush brush = new LinearGradientBrush(
                    new RectangleF(0f, 0f, base.Rectangle.Width, base.Rectangle.Height),
                    base.BackColor,
                    Color.Yellow,
                    base.GradientMode);
                graphics.FillPath(brush, path);

                // Draw Outline
                Pen pen = new Pen(base.BorderColor, base.BorderWidth);
                pen.DashStyle = DashStyle.Solid;
                pen.Color = Color.Yellow;
                graphics.DrawPath(pen, path);
            }
            else {
                base.Render(graphics, render);
            }
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="Engine"/> class.
 /// </summary>
 /// <param name="render">The render.</param>
 public Engine(IRender render)
     : this(render, new StatisticFactory(), new StatisticStorageDummy())
 {
 }
Пример #43
0
		private void RenderSolid(Graphics graphics,IRender render)
		{
			//Create a brush if no custom brush defined
			if (DrawBackground)
			{
				if (CustomBrush == null)
				{
					//Use a linear gradient brush if gradient requested
					if (DrawGradient)
					{
						LinearGradientBrush brush;
						brush = new LinearGradientBrush(new RectangleF(0,0,Rectangle.Width,Rectangle.Height),render.AdjustColor(BackColor,0,Opacity),render.AdjustColor(GradientColor,0,Opacity),mGradientMode);
						brush.GammaCorrection = true;
						if (Blend != null) brush.Blend = Blend;
						graphics.FillPath(brush, GetPathInternal());
					}
					//Draw normal solid brush
					else
					{
						SolidBrush brush;
						brush = new SolidBrush(render.AdjustColor(BackColor,0,this.Opacity));
						graphics.FillPath(brush,GetPathInternal());
					}
				}
				else	
				{
					graphics.FillPath(CustomBrush, GetPathInternal());
				}
			}

//			//Render internal rectangle
//			Pen tempPen = new Pen(Color.Red,1);
//			graphics.DrawRectangle(tempPen,mInternalRectangle.X,mInternalRectangle.Y,mInternalRectangle.Width,mInternalRectangle.Height);
//
//			tempPen = new Pen(Color.Green,1);
//			graphics.DrawRectangle(tempPen,mTransformInternalRectangle.X,mTransformInternalRectangle.Y,mTransformInternalRectangle.Width,mTransformInternalRectangle.Height);

		}
Пример #44
0
		private void RenderTableRows(Graphics graphics, IRender render,TableItems rows,ref float iHeight)
		{
			foreach (TableRow tableRow in rows)
			{
				tableRow.SuspendEvents = true;

				tableRow.SetRectangle(new RectangleF(0,iHeight,Width,RowHeight));
				tableRow.Render(graphics,render);
				iHeight+=RowHeight;

				tableRow.SuspendEvents = false;
			}
		}
Пример #45
0
    /// <summary>
    /// Constructor
    /// </summary>
    public VMR9Util()
    {
      _useVmr9 = true;

      if (!GUIGraphicsContext.VMR9Allowed)
      {
        Log.Info("VMR9: ctor() - VMR9 not allowed");
        _useVmr9 = false;
        return;
      }
      _renderFrame = GUIGraphicsContext.RenderGUI;
      if (GUIGraphicsContext.DX9Device == null)
      {
        _useVmr9 = false;
        Log.Warn("VMR9: ctor() - DX9Device == null!");
      }
      if (_renderFrame == null)
      {
        _useVmr9 = false;
        Log.Debug("VMR9: ctor() _renderFrame == null");
      }
      if (g_vmr9 != null || GUIGraphicsContext.Vmr9Active)
      {
        _useVmr9 = false;
        Log.Info("VMR9: ctor() VMR9 already active");
      }
    }
Пример #46
0
        void Init(IntPtr pParam)
        {
            TMatrix4x4 mat = TMatrix4x4.MatrixIdentity;
            transform = new TTransformStack(ref mat);
            rand = new Random();

            IEngineSubSystem p_sub_sys = null;

            IResourceManager p_res_man = null;
            pEngineCore.GetSubSystem(E_ENGINE_SUB_SYSTEM.ESS_RESOURCE_MANAGER, out p_sub_sys);
            p_res_man = (IResourceManager)p_sub_sys;

            pEngineCore.GetSubSystem(E_ENGINE_SUB_SYSTEM.ESS_RENDER, out p_sub_sys);
            p_render = (IRender)p_sub_sys;
            p_render.GetRender3D(out pRender3D);
            IEngineBaseObject p_obj = null;
            p_res_man.Load(RESOURCE_PATH + "textures\\floor.dds", out p_obj, (uint)E_TEXTURE_LOAD_FLAGS.TEXTURE_LOAD_DEFAULT_3D);
            pTexFloor = (ITexture)p_obj;
            p_res_man.Load(RESOURCE_PATH + "sprites\\light.jpg", out p_obj, (uint)E_TEXTURE_LOAD_FLAGS.TEXTURE_LOAD_DEFAULT_2D);
            pTexLight = (ITexture)p_obj;

            // some global lighting

            pRender3D.ToggleLighting(true);
            TColor4 col = TColor4.ColorBlack();
            pRender3D.SetGlobalAmbientLighting(ref col); // turn off ambient lighting

            // setup lights

            // use single directional light to simulate ambient lighting
            p_res_man.CreateLight(out pLightDirect);
            pLightDirect.SetType(E_LIGHT_TYPE.LT_DIRECTIONAL);
            col = TColor4.ColorGray();
            pLightDirect.SetColor(ref col); // dim light
            TPoint3 p3 = new TPoint3(-0.5f, 0.5f, 0.75f);
            pLightDirect.SetDirection(ref p3);
            pLightDirect.SetEnabled(true);

            // Position is ignored for direction lights but is used by engine for debug drawing.
            // Use "rnd3d_draw_lights 1" console command to debug lights.
            p3 = new TPoint3(0f, 7.5f, 0f);
            pLightDirect.SetPosition(ref p3);

            // create light for the table-lamp
            p_res_man.CreateLight(out pLightSpot);
            pLightSpot.SetType(E_LIGHT_TYPE.LT_SPOT);
            col = TColor4.ColorYellow();
            pLightSpot.SetColor(ref col);
            pLightSpot.SetSpotAngle(100f);
            p3 = new TPoint3(0.15f, 0f, -1f);
            pLightSpot.SetDirection(ref p3);
            pLightSpot.SetEnabled(true);

            // create and setup materials and load models

            ITexture p_tex;
            IMaterial p_mat;

            // desk
            p_res_man.CreateMaterial(out p_mat);
            p_res_man.Load(RESOURCE_PATH + "meshes\\furniture\\desk\\desk_diff.jpg", out p_obj, (uint)E_TEXTURE_LOAD_FLAGS.TEXTURE_LOAD_DEFAULT_3D);
            p_tex = (ITexture)p_obj;
            p_mat.SetDiffuseTexture(p_tex);
            p_res_man.Load(RESOURCE_PATH + "meshes\\furniture\\desk\\desk.dmd", out p_obj, 0);
            pMdlDesk = (IModel)p_obj;
            pMdlDesk.SetModelMaterial(p_mat);

            // table-lamp
            p_res_man.CreateMaterial(out p_mat);
            p_res_man.Load(RESOURCE_PATH + "meshes\\furniture\\table_lamp\\lamp_diff.jpg", out p_obj, (uint)E_TEXTURE_LOAD_FLAGS.TEXTURE_LOAD_DEFAULT_3D);
            p_tex = (ITexture)p_obj;
            p_mat.SetDiffuseTexture(p_tex);
            p_res_man.Load(RESOURCE_PATH + "meshes\\furniture\\table_lamp\\lamp.dmd", out p_obj, 0);
            pMdlLamp = (IModel)p_obj;
            pMdlLamp.SetModelMaterial(p_mat);

            // chair
            p_res_man.CreateMaterial(out p_mat);
            p_res_man.Load(RESOURCE_PATH + "meshes\\furniture\\chair\\chair_diff.jpg", out p_obj, (uint)E_TEXTURE_LOAD_FLAGS.TEXTURE_LOAD_DEFAULT_3D);
            p_tex = (ITexture)p_obj;
            p_mat.SetDiffuseTexture(p_tex);
            p_res_man.Load(RESOURCE_PATH + "meshes\\furniture\\chair\\chair.dmd", out p_obj, 0);
            pMdlChair = (IModel)p_obj;
            pMdlChair.SetModelMaterial(p_mat);

            // music box
            p_res_man.CreateMaterial(out p_mat);
            p_res_man.Load(RESOURCE_PATH + "meshes\\furniture\\music_box\\mbox_d.dds", out p_obj, (uint)E_TEXTURE_LOAD_FLAGS.TEXTURE_LOAD_DEFAULT_3D);
            p_tex = (ITexture)p_obj;
            p_mat.SetDiffuseTexture(p_tex);
            p_res_man.Load(RESOURCE_PATH + "meshes\\furniture\\music_box\\music_box.dmd", out p_obj, 0);
            pMdlMusicBox = (IModel)p_obj;
            pMdlMusicBox.SetModelMaterial(p_mat);

            // church
            p_res_man.Load(RESOURCE_PATH + "meshes\\church\\church.dmd", out p_obj, 0);
            pModelChurch = (IModel)p_obj;
            pModelChurch.SetModelMaterial(p_mat);

            p_res_man.CreateMaterial(out p_mat);
            col = TColor4.ColorSilver();
            p_mat.SetDiffuseColor(ref col);
            col = TColor4.ColorWhite();
            p_mat.SetSpecularColor(ref col);
            p_mat.SetShininess(25f);
            pModelChurch.SetMeshMaterial(0, p_mat);

            p_res_man.CreateMaterial(out p_mat);
            p_res_man.Load(RESOURCE_PATH + "meshes\\church\\church_roof.jpg", out p_obj, (uint)E_TEXTURE_LOAD_FLAGS.TEXTURE_LOAD_DEFAULT_3D);
            p_tex = (ITexture)p_obj;
            p_mat.SetDiffuseTexture(p_tex);
            pModelChurch.SetMeshMaterial(1, p_mat);

            p_res_man.CreateMaterial(out p_mat);
            p_res_man.Load(RESOURCE_PATH + "meshes\\church\\church_main.jpg", out p_obj, (uint)E_TEXTURE_LOAD_FLAGS.TEXTURE_LOAD_DEFAULT_3D);
            p_tex = (ITexture)p_obj;
            p_mat.SetDiffuseTexture(p_tex);
            pModelChurch.SetMeshMaterial(2, p_mat);

            // snow globe
            p_res_man.Load(RESOURCE_PATH + "meshes\\snow_globe.dmd", out p_obj, 0);
            pSnowGlobe = (IModel)p_obj;
            p_res_man.CreateMaterial(out p_mat);
            col = TColor4.ColorWhite();
            p_mat.SetDiffuseColor(ref col);
            pSnowGlobe.SetMeshMaterial(0, p_mat);

            p_res_man.CreateMaterial(out p_mat);
            col = TColor4.ColorBrown();
            p_mat.SetDiffuseColor(ref col);
            col = TColor4.ColorWhite();
            p_mat.SetSpecularColor(ref col);
            p_mat.SetShininess(25f);
            pSnowGlobe.SetMeshMaterial(2, p_mat);

            p_res_man.CreateMaterial(out p_mat);
            col = TColor4.ColorWhite(100);
            p_mat.SetDiffuseColor(ref col);
            col = TColor4.ColorWhite();
            p_mat.SetSpecularColor(ref col);
            p_mat.SetShininess(50f);
            p_mat.SetBlending(true, E_BLENDING_EFFECT.BE_NORMAL);

            // When material with blending is set model will sort mesh order for meshes with blending to be the last.
            pSnowGlobe.SetMeshMaterial(1, p_mat);

            // We will use black fog to simulate darkness.
            col = TColor4.ColorBlack();
            pRender3D.SetFogColor(ref col);
            pRender3D.SetLinearFogBounds(12.5f, 20f);
            pRender3D.ToggleFog(true);
        }
Пример #47
0
        public void Render(Camera camera, Mesh[] meshes, IRender render)
        {
            var viewMatrix = Matrix.LookAtLH(camera.Position, camera.Target, Vector3.UnitY);
            var projectionMatrix = Matrix.PerspectiveFovLH(
                0.5f,
                (float)renderWidth / renderHeight,
                0.01f,
                1.0f);

            foreach (var mesh in meshes)
            {

                var worldMatrex = Matrix.RotationYawPitchRoll(
                    mesh.Rotation.X,
                    mesh.Rotation.Y,
                    mesh.Rotation.Z)*
                                  Matrix.Translation(mesh.Position);

                var transformMatrix = worldMatrex*viewMatrix*projectionMatrix;

                render.Render(this,mesh,transformMatrix);

            }
        }
Пример #48
0
        void Init(IntPtr pParam)
        {
            // get subsystems

            pEngineCore.GetSubSystem(E_ENGINE_SUB_SYSTEM.ESS_RESOURCE_MANAGER, out p_sub_sys);
            pResMan = (IResourceManager)p_sub_sys;

            pEngineCore.GetSubSystem(E_ENGINE_SUB_SYSTEM.ESS_INPUT, out p_sub_sys);
            pInput = (IInput)p_sub_sys;
            pEngineCore.GetSubSystem(E_ENGINE_SUB_SYSTEM.ESS_RENDER, out p_sub_sys);
            pRender = (IRender)p_sub_sys;
            pRender.GetRender2D(out pRender2D);

            // create arrays
            IEngineBaseObject pObj = null;
            pTextures = new ITexture[TexCount];
            pShadows = new ITexture[ShadowCount];
            pMeshes = new IMesh[MeshCount];

            // loading data
            pResMan.Load(RESOURCE_PATH + "sounds\\helicopter.wav", out pObj, 0);
            pSound = (ISoundSample)pObj;
            pSound.PlayEx(out pSoundChannel, E_SOUND_SAMPLE_PARAMS.SSP_LOOPED);

            for (int i = 0; i < TexCount; i++)
            {
                uint flags = TexNames[i].Contains("grass") ? (uint)(E_TEXTURE_LOAD_FLAGS.TLF_FILTERING_BILINEAR | E_TEXTURE_LOAD_FLAGS.TLF_COORDS_REPEAT) : (uint)E_TEXTURE_LOAD_FLAGS.TEXTURE_LOAD_DEFAULT_2D;
                pResMan.Load(RESOURCE_PATH + TexNames[i], out pObj, flags);
                pTextures[i] = (ITexture)pObj;
            }

            pTextures[6].SetFrameSize(256, 256); // zombie sprite splitting

            for (int i = 0; i < MeshCount; i++)
            {
                pResMan.Load(RESOURCE_PATH + MeshNames[i], out pObj, (uint)E_MESH_MODEL_LOAD_FLAGS.MMLF_FORCE_MODEL_TO_MESH);
                pMeshes[i] = (IMesh)pObj;
            }

            // render shadows
            for (int i = 0; i < MeshCount; i++)
            {
                RenderMeshToTexture(out pShadows[i], pMeshes[i], pTextures[i]);
            }

            // render rotor shadow
            pResMan.CreateTexture(out pShadows[5], null, 256, 256, E_TEXTURE_DATA_FORMAT.TDF_RGBA8, E_TEXTURE_CREATE_FLAGS.TCF_DEFAULT, E_TEXTURE_LOAD_FLAGS.TLF_FILTERING_BILINEAR);
            pRender.SetRenderTarget(pShadows[5]);
            TPoint2 coords = new TPoint2(128f, 128f);
            TColor4 col = TColor4.ColorWhite();
            pRender2D.DrawCircle(ref coords, 100, 64, ref col, E_PRIMITIVE2D_FLAGS.PF_FILL);
            pRender.SetRenderTarget(null);

            // gather, fill and init 3d-objects data
            MyMeshes = new MyMesh[8]
            {
                new MyMesh(pMeshes[0], pTextures[0], pShadows[0], new TPoint2( 900f, 500f), new TPoint3(400f, 400f, 500f), 225),
                new MyMesh(pMeshes[0], pTextures[0], pShadows[0], new TPoint2(-250f, 300f), new TPoint3(400f, 400f, 500f), 225),
                new MyMesh(pMeshes[0], pTextures[0], pShadows[0], new TPoint2( 800f, 200f), new TPoint3(400f, 400f, 400f), 225),
                new MyMesh(pMeshes[1], pTextures[1], pShadows[1], new TPoint2(   0f, 450f), new TPoint3(300f, 300f, 400f), 175),
                new MyMesh(pMeshes[1], pTextures[1], pShadows[1], new TPoint2(  50f, 750f), new TPoint3(300f, 300f, 300f), 175),
                new MyMesh(pMeshes[2], pTextures[2], pShadows[2], new TPoint2( 500f, 150f), new TPoint3(400f, 400f, 500f), 225),
                new MyMesh(pMeshes[3], pTextures[3], pShadows[3], new TPoint2( 180f, 150f), new TPoint3(400f, 400f, 600f), 200),
                new MyMesh(pMeshes[3], pTextures[3], pShadows[3], new TPoint2( 600f, 550f), new TPoint3(400f, 400f, 600f), 200, 90)
            };

            copter = new Copter(new MyMesh(pMeshes[4], pTextures[4], pShadows[4], new TPoint2(), new TPoint3(600, 600, 600), 200, 0, true), pTextures[5], pShadows[5]);
            zombie = new Zombie(pTextures[6]);
        }
Пример #49
0
		protected internal override void Render(Graphics graphics, IRender render)
		{
			RenderTable(graphics,render);
			RenderExpand(graphics,render);

			//Render the ports
			if (Ports != null)
			{
				foreach (Port port in Ports.Values)
				{
					graphics.TranslateTransform(-Rectangle.X + port.Rectangle.X,-Rectangle.Y + port.Rectangle.Y);
					port.SuspendValidation();
					port.Render(graphics,render);
					port.ResumeValidation();
					graphics.TranslateTransform(Rectangle.X - port.Rectangle.X,Rectangle.Y - port.Rectangle.Y);						
				}
			}
		}
Пример #50
0
		private void RenderTable(Graphics graphics, IRender render)
		{
			GraphicsPath path = GetPathInternal();
			if (path == null) return;

			//Draw background
			Color backColor = render.AdjustColor(BackColor,0,Opacity);
			Color gradientColor = render.AdjustColor(GradientColor,0,Opacity);
			SolidBrush brush = new SolidBrush(backColor);
			graphics.FillPath(brush,path);

			Region current = graphics.Clip;
			Region region = new Region(GetPathInternal());
			graphics.SetClip(region,CombineMode.Intersect);

			//Draw Heading
			RectangleF headingRect = new RectangleF(0,0,Width,HeadingHeight);
			LinearGradientBrush gradient = new LinearGradientBrush(headingRect,gradientColor,backColor,LinearGradientMode.Horizontal);
			graphics.FillRectangle(gradient,headingRect);
			
			//Draw Heading text
			brush.Color = render.AdjustColor(Forecolor,1,Opacity);
			graphics.DrawString(Heading,Component.Instance.GetFont(FontName,FontSize,FontStyle.Bold),brush,8,5);
			graphics.DrawString(SubHeading,Component.Instance.GetFont(FontName,FontSize-1,FontStyle.Regular),brush,8,20);			
			
			if (Expanded)
			{
				float iHeight = HeadingHeight;

				//Draw the top level rows (if any)
				if (Rows.Count > 0)
				{
					brush.Color = GradientColor;
					graphics.FillRectangle(brush,0,iHeight,Indent,1);
					iHeight+=1;
			
					RenderTableRows(graphics,render,Rows,ref iHeight);
				}
			
				if (Groups.Count > 0)
				{
					foreach (TableGroup tableGroup in Groups)
					{
						iHeight+=1;
						tableGroup.SuspendEvents = true;

						tableGroup.SetRectangle(new RectangleF(0,iHeight,Width,RowHeight));
						tableGroup.Render(graphics,render);
						iHeight+=RowHeight;

						tableGroup.SuspendEvents = false;

						if (tableGroup.Groups.Count > 0 && tableGroup.Expanded) RenderTableGroups(graphics, render, tableGroup.Groups, ref iHeight);
						if (tableGroup.Rows.Count > 0 && tableGroup.Expanded) RenderTableRows(graphics, render, tableGroup.Rows, ref iHeight);
					}
				}

				//Render highlight (if any)
				if (DrawSelectedItem && SelectedItem != null) SelectedItem.RenderSelection(graphics,render);
			}

			graphics.Clip = current;

			//Draw outline
			Pen pen;
			if (CustomPen == null)
			{
				pen = new Pen(BorderColor,BorderWidth);
				pen.DashStyle = BorderStyle;
	
				//Check if winforms renderer and adjust color as required
				pen.Color = render.AdjustColor(BorderColor,BorderWidth,Opacity);
			}
			else	
			{
				pen = CustomPen;
			}
			graphics.DrawPath(pen,path);
		}
Пример #51
0
		private void RenderTableGroups(Graphics graphics, IRender render, TableItems groups,ref float iHeight)
		{
			foreach (TableGroup tableGroup in groups)
			{
				tableGroup.SuspendEvents = true;

				tableGroup.SetRectangle(new RectangleF(0, iHeight, Width, GroupHeight));
				tableGroup.Render(graphics,render);
				iHeight+=GroupHeight;

				tableGroup.SuspendEvents = false;

				//Render groups and rows recursively
				if (tableGroup.Groups.Count > 0 && tableGroup.Expanded) RenderTableGroups(graphics, render, tableGroup.Groups, ref iHeight);
				if (tableGroup.Rows.Count > 0 && tableGroup.Expanded) RenderTableRows(graphics, render, tableGroup.Rows, ref iHeight);
			}
		}
Пример #52
0
        public WebEasilyReport()
        {
            headerItems = new ReportItemCollection(this);
            footerItems = new ReportItemCollection(this);

            fieldItems = new DataSourceItemCollection(this);
            dataSource = new WebDataSourceItemCollection(this);
            mailSetting = new MailConfig();
            format = new ReportFormat();
            parameters = new ParameterItemCollection();
            images = new ImageItemCollection();
            dbGateway = new DBGateway(this);
            serializer = new BinarySerialize();

            this.reportID = ComponentInfo.DefaultReportID + DateTime.Now.ToString("yyyyMMdd");
            this.reportName = "";

            fontConvert = new FontConverter();
            Visible = false;

            if (this.UIType == EasilyReportUIType.AspNet)
            {
                render = new AspNetRender(this);
            }
            else
            {
                render = new ExtJsRender(this);
            }
        }
Пример #53
0
		//Implement a base rendering of an element selection
		protected internal override void RenderAction(Graphics graphics,IRender render,IRenderDesign renderDesign)
		{
			if (renderDesign.ActionStyle == ActionStyle.Default)
			{
				RenderTable(graphics,render);
	
				//Render the ports
				if (Ports != null)
				{
					foreach (Port port in Ports.Values)
					{
						if (port.Visible)
						{
							graphics.TranslateTransform(-Rectangle.X + port.Rectangle.X,-Rectangle.Y + port.Rectangle.Y);
							port.SuspendValidation();
							port.Render(graphics,render);
							port.ResumeValidation();
							graphics.TranslateTransform(Rectangle.X - port.Rectangle.X,Rectangle.Y - port.Rectangle.Y);						
						}
					}
				}
			}
			else
			{
				base.RenderAction(graphics,render,renderDesign);
			}
		}
Пример #54
0
		private void RenderPort(Graphics graphics,IRender render)
		{
			GraphicsPath path = GetPathInternal();

			//Create a brush if no custom brush defined
			if (DrawBackground)
			{
				if (CustomBrush == null)
				{
					//Use a linear gradient brush if gradient requested
					if (DrawGradient)
					{
						LinearGradientBrush brush;
						brush = new LinearGradientBrush(new RectangleF(0,0,Rectangle.Width,Rectangle.Height),render.AdjustColor(BackColor,0,Opacity),render.AdjustColor(GradientColor,0,Opacity),GradientMode);
						brush.GammaCorrection = true;
						if (Blend != null) brush.Blend = Blend;
						graphics.FillPath(brush, path);
					}
						//Draw normal solid brush
					else
					{
						SolidBrush brush;
						brush = new SolidBrush(render.AdjustColor(BackColor,0,this.Opacity));
						graphics.FillPath(brush,path);
					}
				}
				else	
				{
					graphics.FillPath(CustomBrush, path);
				}
			}

			Pen pen = null;

			if (CustomPen == null)
			{
				pen = new Pen(BorderColor,BorderWidth);
				pen.DashStyle = BorderStyle;
				
				//Check if winforms renderer and adjust color as required
				pen.Color = render.AdjustColor(BorderColor,BorderWidth,Opacity);
			}
			else	
			{
				pen = CustomPen;
			}
			
			graphics.SmoothingMode = SmoothingMode;
			graphics.DrawPath(pen,path);

			//Render internal rectangle
			//Pen tempPen = new Pen(Color.Red,2);
			//graphics.DrawRectangle(tempPen,mInternalRectangle.X,mInternalRectangle.Y,mInternalRectangle.Width,mInternalRectangle.Height);
		}
Пример #55
0
		private void RenderExpand(Graphics graphics,IRender render)
		{
			//Obtain a reference to IExpandable interface
			IExpandable expand = (IExpandable) this;
			
			if (!expand.DrawExpand) return;

			//Draw the expander
			Pen pen = new Pen(Color.FromArgb(128,Color.Gray),1);
			SolidBrush brush = new SolidBrush(Color.White);
			
			//Set up the expand path
			mExpandPath = new GraphicsPath();
			mExpandPath.AddEllipse(Width-20,5,14,14);

			SmoothingMode smoothing = graphics.SmoothingMode;
			graphics.SmoothingMode = SmoothingMode.HighQuality;
			graphics.FillPath(brush,mExpandPath); //Fill Circle
			graphics.DrawPath(pen,mExpandPath); //Outline
			
			pen.Color = Color.FromArgb(128,Color.Navy);
			pen.Width = 2;
			PointF[] points;

			if (expand.Expanded)
			{
				points = new PointF[] {new PointF(Width-16,11),new PointF(Width-13,8),new PointF(Width-10,11)};
			}
			else
			{
				points = new PointF[] {new PointF(Width-16,8),new PointF(Width-13,11),new PointF(Width-10,8)};
			}
			graphics.DrawLines(pen,points);
			points[0].Y += 5;
			points[1].Y += 5;
			points[2].Y += 5;
			graphics.DrawLines(pen,points);
			graphics.SmoothingMode = smoothing;
		}
Пример #56
0
		protected internal override void RenderHighlight(Graphics graphics, IRender render,IRenderDesign renderDesign)
		{
			graphics.TranslateTransform(mOffset.X,mOffset.Y);
			base.RenderHighlight (graphics,render,renderDesign);
			graphics.TranslateTransform(-mOffset.X,-mOffset.Y);
		}
Пример #57
0
		protected internal override void Render(Graphics graphics, IRender render)
		{
			if (GetPathInternal() == null) return;

			//Translate by offset
			graphics.TranslateTransform(mOffset.X,mOffset.Y);
			
			//Fill and draw the port
			RenderPort(graphics, render);
	
			//Render image
			if (Image != null) Image.Render(graphics,render);

			//Render label
			if (Label != null) Label.Render(graphics,render);	

			graphics.TranslateTransform(-mOffset.X,-mOffset.Y);
		}
Пример #58
0
 public void RemoveRenderable(IRender renderable)
 {
     lock (renderLock)
     {
         if (renderable is ISelectable) selectables.Remove((ISelectable)renderable);
         drawables.Remove(renderable);
     }
 }
Пример #59
0
 /// <summary>
 /// This adds a renderable object to the list of items to render by the renderable.
 /// Keep in mind this is an ordered list, so items are drawn in the order they are added
 /// (i.e. items added first are drawn first and items after are drawn on top of those)
 /// Items that are selectable are ALSO added to the list of selectable renderables
 /// </summary>
 /// <param name="renderable"></param>
 public void AddRenderable(IRender renderable)
 {
     lock (renderLock)
     {
         if (renderable is ISelectable) selectables.Add((ISelectable)renderable);
         drawables.Add(renderable);
     }
 }
Пример #60
-1
 public VideoProcessorJob(String name, String forAnswer, IRender render, IEnumerator<WorkId> workIter, ISelectReceiversStrategy strategy)
     : base(name)
 {
     this.forAnswer = forAnswer;
     workIter.Reset();
     while (workIter.MoveNext())
         this.works.Enqueue(workIter.Current);
     this.render = render;
     this.strategy = strategy;
 }