Example #1
0
        public void Render(DXCanvas canvas)
        {
            Freeze(canvas.RenderDevice);

            canvas.RenderDevice.ImmediateContext.PixelShader.SetSampler(0, canvas.TextSamplerState);
            canvas.RenderDevice.ImmediateContext.PixelShader.SetShaderResource(0, SegoeUI.TextureView);

            canvas.Draw(TextMesh);
        }
        public ComplexDynamicMesh(DXCanvas canvas, int chunkCount)
        {
            double scaleX = 1.0 / chunkCount;

            for (int i = 0; i < chunkCount; ++i)
            {
                DynamicMesh mesh = canvas.CreateMesh();
                mesh.LocalTransform = new Matrix(scaleX, 0.0, 0.0, 1.0, -i / chunkCount, 0.0);
                DIPs.Add(mesh);
            }
        }
Example #3
0
        private void Canvas_OnDraw(DXCanvas canvas, DXCanvas.Layer layer)
        {
            Vector scale      = new Vector(1.0 / Scroll.Area.Width, 1.0 / Scroll.Area.Height);
            Matrix cameraView = new Matrix(scale.X, 0, 0, scale.Y, -scale.X * Scroll.Area.Location.X, -scale.Y * Scroll.Area.Location.Y);

            canvas.CameraView = cameraView;

            Scroll.Size = new Size(canvas.RenderCanvas.ClientSize.Width / RenderSettings.DpiScale.X, canvas.RenderCanvas.ClientSize.Height / RenderSettings.DpiScale.Y);

            OnDraw?.Invoke(canvas, layer, Scroll);
        }
Example #4
0
        public TextManager(DXCanvas canvas)
        {
            double baseFontSize    = 16.0;
            int    desiredFontSize = (int)(RenderSettings.DpiScale.Y * baseFontSize);

            int fontSize = 16;

            int[] sizes = { 16, 20, 24, 28, 32 };
            for (int i = 0; i < sizes.Length; ++i)
            {
                if (desiredFontSize < sizes[i])
                {
                    break;
                }

                fontSize = sizes[i];
            }

            SegoeUI           = Font.Create(canvas.RenderDevice, String.Format("SegoeUI_{0}_Normal", fontSize));
            VertexBuffer      = new DynamicBuffer <Vertex>(canvas.RenderDevice, BindFlags.VertexBuffer);
            IndexBuffer       = new DynamicBuffer <int>(canvas.RenderDevice, BindFlags.IndexBuffer);
            TextMesh          = canvas.CreateMesh(DXCanvas.MeshType.Text);
            TextMesh.UseAlpha = true;
        }