OSDN Git Service

メトロ版はもはや使ってる人がいないので削除することにした
[fooeditengine/FooEditEngine.git] / Metro / FooEditEngine / Direct2D / D2DRender.cs
diff --git a/Metro/FooEditEngine/Direct2D/D2DRender.cs b/Metro/FooEditEngine/Direct2D/D2DRender.cs
deleted file mode 100644 (file)
index 42990bf..0000000
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- * Copyright (C) 2013 FooProject
- * * This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of 
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-using System;
-using System.Collections.Generic;
-using Windows.Graphics.Display;
-using Windows.UI.Xaml.Media;
-using Windows.UI.Xaml.Media.Imaging;
-using SharpDX;
-using DXGI = SharpDX.DXGI;
-using D2D = SharpDX.Direct2D1;
-using D3D = SharpDX.Direct3D;
-using D3D11 = SharpDX.Direct3D11;
-using FooEditEngine.Metro;
-using DotNetTextStore;
-using DotNetTextStore.UnmanagedAPI.TSF;
-using DotNetTextStore.UnmanagedAPI.WinDef;
-
-namespace FooEditEngine
-{
-    sealed class D2DRender : D2DRenderBase,IEditorRender
-    {
-        SurfaceImageSource SurfaceImage;
-        DXGI.ISurfaceImageSourceNative SurfaceImageNative;
-        D2D.Device D2DDevice;
-        D2D.DeviceContext D2DContext;
-        D2D.Bitmap1 Bitmap;
-        Size Size = new Size();
-        DXGI.Surface Surface;
-        TextStore2 store;
-
-        public D2DRender(FooTextBox textbox,Windows.UI.Xaml.Shapes.Rectangle rect,TextStore2 store)
-            : base()
-        {
-            this.ConstructDeviceResource(rect.ActualWidth,rect.ActualHeight);
-            this.InitTextFormat(textbox.FontFamily, textbox.FontSize);
-
-            this.store = store;
-
-            this.Size.Width = rect.ActualWidth;
-            this.Size.Height = rect.ActualHeight;
-
-            this.CreateSurface(rect, rect.ActualWidth, rect.ActualHeight);
-
-            base.PreDrawOneLine = D2DRender_PreDrawOneLine;
-
-            this.Foreground = D2DRenderBase.ToColor4( textbox.Foreground);
-            this.Background = D2DRenderBase.ToColor4(textbox.Background);
-            this.Hilight = D2DRenderBase.ToColor4(textbox.Hilight);
-            this.Keyword1 = D2DRenderBase.ToColor4(textbox.Keyword1);
-            this.Keyword2 = D2DRenderBase.ToColor4(textbox.Keyword2);
-            this.Literal = D2DRenderBase.ToColor4(textbox.Literal);
-            this.Url = D2DRenderBase.ToColor4(textbox.URL);
-            this.ControlChar = D2DRenderBase.ToColor4(textbox.ControlChar);
-            this.Comment = D2DRenderBase.ToColor4(textbox.Comment);
-            this.InsertCaret = D2DRenderBase.ToColor4(textbox.InsertCaret);
-            this.OverwriteCaret = D2DRenderBase.ToColor4(textbox.OverwriteCaret);
-            this.LineMarker = D2DRenderBase.ToColor4(textbox.LineMarker);
-            this.UpdateArea = D2DRenderBase.ToColor4(textbox.UpdateArea);
-            this.LineNumber = D2DRenderBase.ToColor4(textbox.LineNumber);
-        }
-
-        void D2DRender_PreDrawOneLine(MyTextLayout layout,LineToIndexTable lti, int row, double x, double y)
-        {
-            using (Unlocker locker = this.store.LockDocument(false))
-            {
-                int lineIndex = lti.GetIndexFromLineNumber(row);
-                int lineLength = lti.GetLengthFromLineNumber(row);
-                foreach (TextDisplayAttribute attr in this.store.EnumAttributes(lineIndex, lineIndex + lineLength))
-                {
-                    if (attr.startIndex == attr.endIndex)
-                        continue;
-                    int length = attr.endIndex - attr.startIndex;
-                    int start = attr.startIndex - lineIndex;
-
-                    HilightType type = HilightType.None;
-                    Color4? color = null;
-                    switch (attr.attribute.lsStyle)
-                    {
-                        case TF_DA_LINESTYLE.TF_LS_DOT:
-                            type = HilightType.Dot;
-                            color = this.Foreground;
-                            break;
-                        case TF_DA_LINESTYLE.TF_LS_SOLID:
-                            type = HilightType.Sold;
-                            color = this.Foreground;
-                            break;
-                        case TF_DA_LINESTYLE.TF_LS_DASH:
-                            type = HilightType.Dash;
-                            color = this.Foreground;
-                            break;
-                        case TF_DA_LINESTYLE.TF_LS_SQUIGGLE:
-                            type = HilightType.Squiggle;
-                            color = this.Foreground;
-                            break;
-                    }
-
-                    if (attr.attribute.crBk.type != TF_DA_COLORTYPE.TF_CT_NONE)
-                    {
-                        type = HilightType.Select;
-                        color = this.Hilight;
-                    }
-
-                    this.DrawMarkerEffect(layout, type, start, length, x, y, attr.attribute.fBoldLine, color);
-                }
-            }
-        }
-
-        public override void GetDpi(out float dpix, out float dpiy)
-        {
-            Util.GetDpi(out dpix, out dpiy);
-        }
-
-        public bool Resize(Windows.UI.Xaml.Shapes.Rectangle rect, double width, double height)
-        {
-            if (this.Size.Width == width && this.Size.Height == height)
-                return false;
-            this.ReConstructDeviceResource(width, height);
-            this.CreateSurface(rect, width, height);
-            return true;
-        }
-
-        public bool IsCanDraw()
-        {
-            return this.Size.Height != 0 && this.Size.Width != 0;
-        }
-
-        public void DrawContent(EditView view,bool IsEnabled,Rectangle updateRect)
-        {
-            SharpDX.Mathematics.Interop.RawPoint offset;
-            this.Surface = this.SurfaceImageNative.BeginDraw(
-                new SharpDX.Rectangle(0, 0, (int)this.Size.Width, (int)this.Size.Height), out offset);
-            float dpix, dpiy;
-            this.GetDpi(out dpix, out dpiy);
-            D2D.BitmapProperties1 prop = new D2D.BitmapProperties1(new D2D.PixelFormat(DXGI.Format.B8G8R8A8_UNorm, D2D.AlphaMode.Premultiplied),
-                    dpix, dpiy, D2D.BitmapOptions.Target | D2D.BitmapOptions.CannotDraw);
-            this.Bitmap = new D2D.Bitmap1(this.D2DContext, this.Surface, prop);
-            this.D2DContext.Target = this.Bitmap;
-            this.D2DContext.Transform = Matrix3x2.Translation(offset.X, offset.Y);
-            base.BegineDraw();
-
-            if (IsEnabled)
-                view.Draw(updateRect);
-            else
-                this.FillBackground(updateRect);
-
-            base.EndDraw();
-            this.Surface.Dispose();
-            this.Bitmap.Dispose();
-            this.SurfaceImageNative.EndDraw();
-        }
-
-        void CreateSurface(Windows.UI.Xaml.Shapes.Rectangle rect, double width, double height)
-        {
-            if (this.SurfaceImageNative != null)
-                this.SurfaceImageNative.Dispose();
-            this.SurfaceImage = new SurfaceImageSource((int)width, (int)height);
-            this.SurfaceImageNative = ComObject.As<DXGI.ISurfaceImageSourceNative>(this.SurfaceImage);
-            this.SurfaceImageNative.Device = this.DXGIDevice;
-            this.Size.Width = width;
-            this.Size.Height = height;
-            ImageBrush brush = new ImageBrush();
-            brush.ImageSource = this.SurfaceImage;
-            rect.Fill = brush;
-        }
-
-        protected override D2D.RenderTarget ConstructRender(D2D.Factory1 factory, D2D.RenderTargetProperties prop, double width, double height)
-        {
-            this.D2DDevice = new D2D.Device(factory,this.DXGIDevice);
-            this.D2DContext = new D2D.DeviceContext(this.D2DDevice, D2D.DeviceContextOptions.None);
-            return this.D2DContext;
-        }
-
-        protected override void ConstrctedResource()
-        {
-        }
-
-        protected override void DestructRender()
-        {
-            if (this.D2DDevice != null)
-                this.D2DDevice.Dispose();
-            if (this.D2DContext != null)
-                this.D2DContext.Dispose();
-        }
-
-        protected override void ReCreateTarget()
-        {
-        }
-    }
-}