public override void Render(AptRenderer renderer, ItemTransform pTransform, DrawingContext2D dc) { if (!Visible) { return; } var cTransform = pTransform * Transform; switch (Character) { case Shape s: var geometry = Context.GetGeometry(s.Geometry, Character); renderer.RenderGeometry(dc, Context, geometry, cTransform, Texture); break; case Text t: if (t.Value.Length > 0) { var val = ScriptObject.ResolveValue(t.Value, ScriptObject); if (val.Type != ValueType.Undefined) { t.Content = val.ToString(); } } //localize our content t.Content = t.Content.Replace("$", "APT:"); t.Content = t.Content.Translate(); renderer.RenderText(dc, Context, t, cTransform); break; } }
public RenderPipeline(Game game) { _renderList = new RenderList(); var graphicsDevice = game.GraphicsDevice; _globalShaderResources = game.ContentManager.ShaderResources.Global; _globalShaderResourceData = AddDisposable(new GlobalShaderResourceData(game.GraphicsDevice, _globalShaderResources)); _renderItemConstantsBufferVS = AddDisposable(new ConstantBuffer <MeshShaderResources.RenderItemConstantsVS>(graphicsDevice, "RenderItemConstantsVS")); _renderItemConstantsBufferPS = AddDisposable(new ConstantBuffer <MeshShaderResources.RenderItemConstantsPS>(graphicsDevice, "RenderItemConstantsPS")); _renderItemConstantsResourceSet = AddDisposable(graphicsDevice.ResourceFactory.CreateResourceSet( new ResourceSetDescription( game.ContentManager.ShaderResources.Mesh.RenderItemConstantsResourceLayout, _renderItemConstantsBufferVS.Buffer, _renderItemConstantsBufferPS.Buffer))); _commandList = AddDisposable(graphicsDevice.ResourceFactory.CreateCommandList()); _drawingContext = AddDisposable(new DrawingContext2D( game.ContentManager, BlendStateDescription.SingleAlphaBlend, GameOutputDescription)); _shadowMapRenderer = AddDisposable(new ShadowMapRenderer(game.GraphicsDevice, game.ContentManager.ShaderResources.Global)); _textureCopier = AddDisposable(new TextureCopier( game, game.Panel.OutputDescription)); }
public RenderPipeline(Game game) { _renderList = new RenderList(); var graphicsDevice = game.GraphicsDevice; _loadContext = game.GraphicsLoadContext; _globalShaderResources = game.GraphicsLoadContext.ShaderResources.Global; _globalShaderResourceData = AddDisposable(new GlobalShaderResourceData(game.GraphicsDevice, _globalShaderResources, game.GraphicsLoadContext.StandardGraphicsResources)); _commandList = AddDisposable(graphicsDevice.ResourceFactory.CreateCommandList()); _drawingContext = AddDisposable(new DrawingContext2D( game.ContentManager, game.GraphicsLoadContext, BlendStateDescription.SingleAlphaBlend, GameOutputDescription)); _shadowMapRenderer = AddDisposable(new ShadowMapRenderer(game.GraphicsDevice)); _waterMapRenderer = AddDisposable(new WaterMapRenderer(game.AssetStore, _loadContext, game.GraphicsDevice, game.GraphicsLoadContext.ShaderResources.Global)); _textureCopier = AddDisposable(new TextureCopier( game, game.Panel.OutputDescription)); }
internal void SetRenderTarget(RenderTarget renderTarget) { if (renderTarget != null) { _commandList.Begin(); _commandList.SetFramebuffer(renderTarget.Framebuffer); _commandList.ClearColorTarget(0, new RgbaFloat(0, 0, 0, 0)); _clipMaskDrawingContext.Begin( _commandList, _graphicsLoadContext.StandardGraphicsResources.LinearClampSampler, new SizeF(renderTarget.ColorTarget.Width, renderTarget.ColorTarget.Height)); _activeDrawingContext = _clipMaskDrawingContext; } else { _clipMaskDrawingContext.End(); _commandList.End(); _contentManager.GraphicsDevice.SubmitCommands(_commandList); _activeDrawingContext = _drawingContext; } }
public void DrawDebugOverlay(Scene3D scene, DrawingContext2D drawingContext) { if (scene?.Shadows.VisualizeShadowFrustums is not true) { return; } for (var splitIndex = 0; splitIndex < _shadowData.NumSplits; splitIndex++) { _lightFrustum.Matrix = _shadowData.ShadowCameraViewProjections[splitIndex]; var corners = _lightFrustum.Corners; var color = CascadeColors[splitIndex]; void DrawLine(int start, int end) { DebugDrawingUtils.DrawLine(drawingContext, scene.Camera, corners[start], corners[end], color); } DrawLine(0, 1); DrawLine(1, 2); DrawLine(2, 3); DrawLine(3, 0); DrawLine(4, 5); DrawLine(5, 6); DrawLine(6, 7); DrawLine(7, 4); DrawLine(0, 4); DrawLine(1, 5); DrawLine(2, 6); DrawLine(3, 7); } }
public void Render(DrawingContext2D drawingContext) { if (!_visible) { return; } var radialBorder = _game.GetMappedImage("RadialBorder"); var numVisibleButtons = _buttons.Where(x => x.IsVisible).Count(); var radius = (-1 + MathF.Sqrt(numVisibleButtons + 0.75f)) * (radialBorder.Coords.Width * 0.9f); var deltaAngle = MathUtility.TwoPi / numVisibleButtons; var i = 0; foreach (var button in _buttons) { if (!button.IsVisible) { continue; } var posX = _center.X + MathF.Sin(i * deltaAngle) * radius; var posY = _center.Y + -MathF.Cos(i * deltaAngle) * radius; button.Render(drawingContext, new Vector2(posX, posY)); i++; } }
internal void DebugDraw(DrawingContext2D drawingContext, Camera camera, GameObject parent) { var collideInfo = GeometryCollisionDetectionUtility.CreateCollideInfo(parent); foreach (var shape in Shapes) { var shapeCollideInfo = GeometryCollisionDetectionUtility.CreateShapeInfo(shape, collideInfo); switch (shape.Type) { case GeometryType.Sphere: drawingContext.DrawSphere(camera, shapeCollideInfo.CreateSphere()); break; case GeometryType.Cylinder: drawingContext.DrawCylinder(camera, shapeCollideInfo.CreateCylinder()); break; case GeometryType.Box: drawingContext.DrawBox(camera, shapeCollideInfo.CreateBox()); break; default: throw new InvalidOperationException(); } } }
public MainWindow(WindowSettingsOption windowSettings) : base(windowSettings.Width, windowSettings.Height, GraphicsMode.Default, string.Empty, GameWindowFlags.Default, DisplayDevice.GetDisplay(DisplayIndex.Default)) { var clippingArea = GetClippingArea(); _clippingAreaWidth = Math.Abs(clippingArea.Right - clippingArea.Left); _clippingAreaHeight = Math.Abs(clippingArea.Bottom - clippingArea.Top); _drawingContext2D = new DrawingContext2D(clippingArea); var buttonPlaceholderTexture = new Texture2D(Images.placeholder_100x40); buttonPlaceholderTexture.Initialize(); //var rectangle = new Rectangle3D(Vector3.Zero, new Vector3(0, 0, 1), new Vector3(0, -1, 0), 0.1f, 0.04f); _rectangle = new Rectangle2D(new Vector2(-_clippingAreaWidth / 2, -_clippingAreaHeight / 2), 0.0f, 60.0f, 20.0f); _rectangle.TextureManager = new RectangleTextureManager(buttonPlaceholderTexture); var point = new Point2D(new Vector2(0.0f, 0.0f), 5.0f, Color.Aqua); opacity = 0.0f; switch (windowSettings.BorderType) { case WindowFeatures.BorderType.Normal: WindowBorder = WindowBorder.Resizable; break; case WindowFeatures.BorderType.Borderless: WindowBorder = WindowBorder.Hidden; break; case WindowFeatures.BorderType.Fullscreen: WindowState = WindowState.Fullscreen; break; } }
public void Render(ItemTransform pTransform, DrawingContext2D dc) { if (!Visible) { return; } switch (_character) { case Shape s: var geometry = _context.GetGeometry(s.Geometry, _character); AptRenderer.RenderGeometry(dc, _context, geometry, pTransform); break; case Text t: if (t.Value.Length > 0) { var val = ScriptObject.ResolveValue(t.Value, ScriptObject); if (val.Type != ValueType.Undefined) { t.Content = val.ToString(); } } //localize our content t.Content = t.Content.Replace("$", "APT:"); t.Content = _context.ContentManager.TranslationManager.Lookup(t.Content); AptRenderer.RenderText(dc, _context, t, pTransform); break; } }
protected override void DrawOverride(DrawingContext2D drawingContext) { DrawText(drawingContext, TextAlignment.Center); if (IsMouseOver && HoverOverlayImage != null) { HoverOverlayImage.Draw(drawingContext, ClientRectangle); } }
protected override void DrawOverride(DrawingContext2D drawingContext) { Rectangle textArea = new Rectangle(ClientRectangle.X + 10, ClientRectangle.Y, ClientRectangle.Width, ClientRectangle.Height); DrawText(drawingContext, TextAlignment.Leading, textArea); }
public override void Render(AptRenderer renderer, ItemTransform pTransform, DrawingContext2D dc) { var button = Character as Button; _curTransform = pTransform * Transform; _curTransform.GeometryTranslation *= renderer.Window.GetScaling(); _curTransform.GeometryRotation.M11 *= renderer.Window.GetScaling().X; _curTransform.GeometryRotation.M22 *= renderer.Window.GetScaling().Y; }
public CameraFadeOverlay(Game game) { _game = game; _drawingContext = AddDisposable(new DrawingContext2D( game.ContentManager, game.GraphicsLoadContext, BlendStateDescription.SingleAdditiveBlend, RenderPipeline.GameOutputDescription)); }
protected override void DrawBackgroundImage(DrawingContext2D drawingContext) { if (IsMouseDown && PushedBackgroundImage != null) { PushedBackgroundImage.Draw(drawingContext, ClientRectangle); } else { base.DrawBackgroundImage(drawingContext); } }
protected override void DrawOverride(DrawingContext2D drawingContext) { var checkboxRect = new Rectangle(Point2D.Zero, CheckBoxSize); GetImage().Draw(drawingContext, checkboxRect); var textLeft = checkboxRect.Right + 3; var textRect = new Rectangle(textLeft, 0, ClientSize.Width - textLeft, CheckBoxSize.Height); DrawText(drawingContext, TextAlignment.Leading, textRect); }
// This is also used by LanMapSelectMenu. public static void W3DDrawMapPreview(Control control, DrawingContext2D drawingContext) { if (!control.Data.TryGetValue("MapPreview", out var mapPreviewTexture)) { return; } drawingContext.DrawImage( (Texture)mapPreviewTexture, null, control.ClientRectangle.ToRectangleF()); }
public void RenderText(DrawingContext2D drawingContext, AptContext context, Text text, ItemTransform transform) { var font = _contentManager.FontManager.GetOrCreateFont("Arial", text.FontHeight, FontWeight.Normal); CalculateTransform(ref transform, context); drawingContext.DrawText( text.Content, font, TextAlignment.Center, text.Color.ToColorRgbaF() * transform.ColorTransform, RectangleF.Transform(text.Bounds, transform.GeometryRotation)); }
public void Render(ItemTransform pTransform, DrawingContext2D dc) { if (!Visible) { return; } //calculate the transform for this element var cTransform = pTransform * Transform; //render all subitems foreach (var item in _content.Items.Values) { item.Render(cTransform, dc); } }
public static void RenderText(DrawingContext2D drawingContext, AptContext context, Text text, ItemTransform transform) { var content = context.ContentManager; var font = context.ContentManager.GetOrCreateFont("Arial", text.FontHeight, FontWeight.Normal); var matrix = transform.GeometryRotation; matrix.Translation = transform.GeometryTranslation; drawingContext.DrawText( text.Content, font, TextAlignment.Center, text.Color.ToColorRgbaF() * transform.ColorTransform, RectangleF.Transform(text.Bounds, matrix)); }
public override void Render(AptRenderer renderer, ItemTransform pTransform, DrawingContext2D dc) { if (!Visible) { return; } //calculate the transform for this element var cTransform = pTransform * Transform; //render all subItems foreach (var item in Content.Items.Values) { item.Render(renderer, cTransform, dc); } }
public void Render(DrawingContext2D drawingContext) { var shapeBoundingBox = _shape.BoundingBox; var translation = new Vector2(-shapeBoundingBox.X, -shapeBoundingBox.Y); var itemTransform = new ItemTransform( ColorRgbaF.White, Matrix3x2.CreateScale(_scale, _scale), translation); AptRenderer.RenderGeometry( drawingContext, _context, _shape, itemTransform); }
public void Render(DrawingContext2D drawingContext) { var shapeBoundingBox = _shape.BoundingBox; var translation = new Vector2(-shapeBoundingBox.X, -shapeBoundingBox.Y); var itemTransform = new ItemTransform( ColorRgbaF.White, Matrix3x2.CreateScale(_scale, _scale), translation); _renderingContext.SetDrawingContext(drawingContext); _renderingContext.PushTransform(itemTransform); _renderingContext.RenderGeometry(_shape, null); _renderingContext.PopTransform(); }
protected override void DrawOverride(DrawingContext2D drawingContext) { var valueWidth = (Value - MinimumValue) / (float)(MaximumValue - MinimumValue) * ClientSize.Width; var x = 0; while (x < ClientRectangle.Right) { var image = x < valueWidth ? HighlightedBoxImage : UnhighlightedBoxImage; image.Draw( drawingContext, new Rectangle(new Point2D(x, 0), BoxSize)); x += BoxSize.Width + 1; } }
protected override void OnRenderFrame(FrameEventArgs e) { base.OnRenderFrame(e); GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit); GL.ClearColor(Color.Black); GL.Enable(EnableCap.DepthTest); GL.Enable(EnableCap.AlphaTest); GL.Enable(EnableCap.Blend); GL.Enable(EnableCap.SampleAlphaToCoverage); GL.AlphaFunc(AlphaFunction.Greater, 0.1f); GL.BlendFunc(BlendingFactorSrc.SrcAlpha, BlendingFactorDest.OneMinusSrcAlpha); var clippingArea = new ClippingArea { Left = -1.0f, Right = 1.0f, Bottom = -1.0f, Top = 1.0f, Near = 1.0f, Far = -1.0f }; var buttonPlaceholderTexture = new Texture2D(Images.placeholder_100x40); buttonPlaceholderTexture.InitTexture(); var rectangle = new Graphics.Drawables.Drawables3D.Rectangle(Vector3.Zero, new Vector3(0, 0, 1), new Vector3(0, -1, 0), 0.1f, 0.04f); rectangle.TextureManager = new RectangleTextureManager(buttonPlaceholderTexture); var point = new Graphics.Drawables.Drawables2D.Point(new Vector2(0.0f, 0.0f), 5.0f, Color.Aqua); var dc2d = new DrawingContext2D(clippingArea); dc2d.Drawables.Add(point); dc2d.Drawables.Add(rectangle); dc2d.Render(); SwapBuffers(); }
public RenderPipeline(Game game) { _renderList = new RenderList(); var graphicsDevice = game.GraphicsDevice; _globalConstantBufferShared = AddDisposable(new ConstantBuffer <GlobalConstantsShared>(graphicsDevice, "GlobalConstantsShared")); _globalConstantBufferVS = AddDisposable(new ConstantBuffer <GlobalConstantsVS>(graphicsDevice, "GlobalConstantsVS")); _renderItemConstantsBufferVS = AddDisposable(new ConstantBuffer <RenderItemConstantsVS>(graphicsDevice, "RenderItemConstantsVS")); _renderItemConstantsBufferPS = AddDisposable(new ConstantBuffer <RenderItemConstantsPS>(graphicsDevice, "RenderItemConstantsPS")); _globalConstantBufferPS = AddDisposable(new ConstantBuffer <GlobalConstantsPS>(graphicsDevice, "GlobalConstantsPS")); _globalLightingVSTerrainBuffer = AddDisposable(new ConstantBuffer <LightingConstantsVS>(graphicsDevice, "GlobalLightingConstantsVS (terrain)")); _globalLightingPSTerrainBuffer = AddDisposable(new ConstantBuffer <LightingConstantsPS>(graphicsDevice, "GlobalLightingConstantsPS (terrain)")); _globalLightingVSObjectBuffer = AddDisposable(new ConstantBuffer <LightingConstantsVS>(graphicsDevice, "GlobalLightingConstantsVS (objects)")); _globalLightingPSObjectBuffer = AddDisposable(new ConstantBuffer <LightingConstantsPS>(graphicsDevice, "GlobalLightingConstantsPS (objects)")); _shadowConstantsPSBuffer = AddDisposable(new ConstantBuffer <ShadowConstantsPS>(graphicsDevice, "ShadowConstantsPS")); _commandList = AddDisposable(graphicsDevice.ResourceFactory.CreateCommandList()); _drawingContext = AddDisposable(new DrawingContext2D( game.ContentManager, BlendStateDescription.SingleAlphaBlend, GameOutputDescription)); _shadowSampler = AddDisposable(graphicsDevice.ResourceFactory.CreateSampler( new SamplerDescription( SamplerAddressMode.Clamp, SamplerAddressMode.Clamp, SamplerAddressMode.Clamp, SamplerFilter.MinLinear_MagLinear_MipLinear, ComparisonKind.LessEqual, 0, 0, 0, 0, SamplerBorderColor.OpaqueBlack))); _shadowMapRenderer = AddDisposable(new ShadowMapRenderer()); _intermediateSpriteBatch = AddDisposable(new SpriteBatch(game.ContentManager, BlendStateDescription.SingleDisabled, game.GraphicsDevice.MainSwapchain.Framebuffer.OutputDescription)); }
public RenderPipeline(Game game) { _renderList = new RenderList(); var graphicsDevice = game.GraphicsDevice; _globalConstantBufferShared = AddDisposable(new ConstantBuffer <GlobalConstantsShared>(graphicsDevice, "GlobalConstantsShared")); _globalConstantBufferVS = AddDisposable(new ConstantBuffer <GlobalConstantsVS>(graphicsDevice, "GlobalConstantsVS")); _renderItemConstantsBufferVS = AddDisposable(new ConstantBuffer <RenderItemConstantsVS>(graphicsDevice, "RenderItemConstantsVS")); _globalConstantBufferPS = AddDisposable(new ConstantBuffer <GlobalConstantsPS>(graphicsDevice, "GlobalConstantsPS")); _globalLightingVSTerrainBuffer = AddDisposable(new ConstantBuffer <LightingConstantsVS>(graphicsDevice, "Global_LightingConstantsVS (terrain)")); _globalLightingPSTerrainBuffer = AddDisposable(new ConstantBuffer <LightingConstantsPS>(graphicsDevice, "Global_LightingConstantsPS (terrain)")); _globalLightingVSObjectBuffer = AddDisposable(new ConstantBuffer <LightingConstantsVS>(graphicsDevice, "Global_LightingConstantsVS (objects)")); _globalLightingPSObjectBuffer = AddDisposable(new ConstantBuffer <LightingConstantsPS>(graphicsDevice, "Global_LightingConstantsPS (objects)")); _commandList = AddDisposable(graphicsDevice.ResourceFactory.CreateCommandList()); _drawingContext = AddDisposable(new DrawingContext2D( game.ContentManager, BlendStateDescription.SingleAlphaBlend, GameOutputDescription)); }
public static void W3DCreditsMenuDraw(Control control, DrawingContext2D drawingContext) { var data = (CreditsMenuData)control.Tag; foreach (var item in data.Items) { var rect = item.Rect; rect.Y += data.CurrentY; if (!control.ClientRectangle.ToRectangleF().IntersectsWith(rect)) { continue; } drawingContext.DrawText( item.Text, item.Font, TextAlignment.Center, item.Color.ToColorRgbaF(), rect); } }
public override void Render(AptRenderer renderer, ItemTransform pTransform, DrawingContext2D dc) { var button = Character as Button; _curTransform = pTransform * Transform; _curTransform.GeometryTranslation *= renderer.Window.GetScaling(); _curTransform.GeometryRotation.M11 *= renderer.Window.GetScaling().X; _curTransform.GeometryRotation.M22 *= renderer.Window.GetScaling().Y; var transform = _curTransform.GeometryRotation; transform.Translation = _curTransform.GeometryTranslation; ApplyCurrentRecord(ref transform); var verts = button.Vertices; foreach (var tri in button.Triangles) { var v1 = Vector2.Transform(verts[tri.IDX0], transform); var v2 = Vector2.Transform(verts[tri.IDX1], transform); var v3 = Vector2.Transform(verts[tri.IDX2], transform); var color = ColorRgbaF.White; if (button.IsMenu) { color = new ColorRgbaF(1.0f, 0.0f, 0.0f, 1.0f); } if (_isHovered) { color = new ColorRgbaF(0.0f, 1.0f, 1.0f, 1.0f); } dc.DrawLine(new Line2D(v1, v2), 1.0f, color); dc.DrawLine(new Line2D(v2, v3), 1.0f, color); dc.DrawLine(new Line2D(v3, v1), 1.0f, color); } }
internal AptRenderingContext( AptWindow window, ContentManager contentManager, GraphicsLoadContext graphicsLoadContext, AptContext aptContext) { _contentManager = contentManager; _aptContext = aptContext; _graphicsLoadContext = graphicsLoadContext; Window = window; _transformStack = new Stack <ItemTransform>(); _clipMaskDrawingContext = AddDisposable( new DrawingContext2D( contentManager, graphicsLoadContext, BlendStateDescription.SingleAlphaBlend, RenderTarget.OutputDescription)); _commandList = AddDisposable(contentManager.GraphicsDevice.ResourceFactory.CreateCommandList()); }
public void Render(DrawingContext2D drawingContext, Vector2 center) { _center = center; var rect = new RectangleF(center.X - _width / 2, center.Y - _width / 2, _width, _width); drawingContext.DrawMappedImage(_background, RectangleF.Scale(rect, 0.9f), grayscaled: !_enabled); if (_count > 0) { //drawingContext.SetAlphaMask(_alphaMask); drawingContext.FillRectangleRadial360( new Rectangle(rect), new ColorRgbaF(1.0f, 1.0f, 1.0f, 0.6f), //_scheme.BuildUpClockColor.ToColorRgbaF(), _progress); if (_count > 1) { var textRect = new Rectangle(RectangleF.Transform(rect, Matrix3x2.CreateTranslation(new Vector2(0, rect.Width / 3)))); drawingContext.DrawText(_count.ToString(), _font, TextAlignment.Center, _fontColor, textRect); } //drawingContext.SetAlphaMask(null); } if (_isHovered && _enabled) { drawingContext.DrawMappedImage(_hover, rect); } else if (_isPushed && _enabled) { drawingContext.DrawMappedImage(_down, rect); } else { drawingContext.DrawMappedImage(_border, rect); } }