コード例 #1
0
        public virtual void Dispose()
        {
            if(SystemMemoryTexture != null)
            {
                SystemMemoryTexture.Dispose();
                SystemMemoryTexture = null;
            }

            if(m_d2DRenderTarget != null)
            {
                m_d2DRenderTarget.Dispose();
                m_d2DRenderTarget = null;
            }

            if (m_renderTargetTexture != null)
            {
                m_renderTargetTexture.Dispose();
                m_renderTargetTexture = null;
            }

            if (m_textFormat != null)
            {
                m_textFormat.Dispose();
                m_textFormat = null;
            }

            if(m_directWriteFactory != null)
            {
                m_directWriteFactory.Dispose();
                m_directWriteFactory = null;
            }

            foreach (var stateBlock in m_stateStack)
            {
                stateBlock.Dispose();
            }

            m_stateStack.Clear();
        }
コード例 #2
0
        public void DrawText(Brush brush, string text, float x, float y, float fontSize)
        {
            m_drawStateManagement.DrawPreamble();

            if (m_directWriteFactory == null)
            {
                m_directWriteFactory = new Factory(FactoryType.Isolated);
            }
            if (m_textFormat == null ||
                m_textFormat.FontSize != fontSize)
            {
                m_textFormat = new TextFormat(m_directWriteFactory, "Segoe UI", FontWeight.Bold, FontStyle.Normal, FontStretch.Normal, fontSize, "");
            }
            
            PushState();
            //var area2 = new RectangleF(0, 0, , );

            if (x > Width - 1 || y > Height - 1)
                return;

            var area = new RectangleF(x, y, Width, Height);

            var matrix = Matrix3x2.Identity;

            BrushHelper.PrepareBrush(brush, this, area, matrix, Matrix3x2.Identity);
 
            D2DRenderTarget.InternalRenderTarget.DrawText(text, 
                                                          m_textFormat,
                                                        area.InternalRectangleF,
                                                    brush.InternalBrush);
            

            PopState();
        }