public void SetCanvasCase(CanvasCase canvasCase)
 {
     this.canvasCase = canvasCase;
     canvasCase.PaintAgent.BrushSize = (float)sizeSlider.Value;
     sizeSlider.SetBinding(Slider.ValueProperty, new Binding()
     {
         Path = new PropertyPath("BrushSize"), Source = canvasCase.PaintAgent, Mode = BindingMode.TwoWay
     });
     canvasCase.PaintAgent.Color  = DCUtil.ToVector4(colorPicker1.Color);
     canvasCase.PaintAgent.Color2 = DCUtil.ToVector4(colorPicker2.Color);
     canvasCase.PaintAgent.Color3 = DCUtil.ToVector4(colorPicker3.Color);
     canvasCase.PaintAgent.Color4 = DCUtil.ToVector4(colorPicker4.Color);
     colorPicker1.SetBinding(ColorPicker.ColorProperty, new Binding()
     {
         Path = new PropertyPath("Color"), Source = canvasCase.PaintAgent, Mode = BindingMode.TwoWay, Converter = new Vector4ToColor()
     });
     colorPicker2.SetBinding(ColorPicker.ColorProperty, new Binding()
     {
         Path = new PropertyPath("Color2"), Source = canvasCase.PaintAgent, Mode = BindingMode.TwoWay, Converter = new Vector4ToColor()
     });
     colorPicker3.SetBinding(ColorPicker.ColorProperty, new Binding()
     {
         Path = new PropertyPath("Color3"), Source = canvasCase.PaintAgent, Mode = BindingMode.TwoWay, Converter = new Vector4ToColor()
     });
     colorPicker4.SetBinding(ColorPicker.ColorProperty, new Binding()
     {
         Path = new PropertyPath("Color4"), Source = canvasCase.PaintAgent, Mode = BindingMode.TwoWay, Converter = new Vector4ToColor()
     });
     ParameterListView.ItemsSource = canvasCase.PaintAgent._parameters;
 }
Beispiel #2
0
        public async Task CreateAsync(int width, int height, int renderBufferCount, bool extraResources)
        {
            blendModesFolder = await CaseFolder.CreateFolderAsync("BlendModes", CreationCollisionOption.OpenIfExists);

            brushesFolder = await CaseFolder.CreateFolderAsync("Brushes", CreationCollisionOption.OpenIfExists);

            layoutsFolder = await CaseFolder.CreateFolderAsync("Layouts", CreationCollisionOption.OpenIfExists);

            animationsFolder = await CaseFolder.CreateFolderAsync("Animations", CreationCollisionOption.OpenIfExists);

            canvasCase           = new CanvasCase(DeviceResources, width, height, renderBufferCount);
            defaultBlendModeGuid = Guid.Parse("9c9f90ac-752c-4db5-bcb5-0880c35c50bf");
            await UpdateDCResource();

            if (extraResources)
            {
                await UpdateDCResourcePlugin();
            }
            await LoadBlendmodes();
            await LoadBrushes();

            canvasCase.PaintAgent.CurrentLayout = canvasCase.NewStandardLayout(0, 0);
            await SaveAsync();

            canvasCase.watched = true;
        }
Beispiel #3
0
        public static IAsyncOperation <StandardLayout> LoadFromFileAsync(CanvasCase canvasCase, StorageFile file)
        {
            var task1 = Task <StandardLayout> .Run(async() =>
            {
                var stream        = await file.OpenReadAsync();
                DataReader reader = new DataReader(stream);
                await reader.LoadAsync((uint)stream.Size);

                reader.ReadInt32();   //header
                Guid readedGuid = reader.ReadGuid();
                int count       = reader.ReadInt32();
                byte[] oData    = new byte[count * 8];
                byte[] bData    = new byte[count * 1024];
                reader.ReadBytes(oData);
                reader.ReadBytes(bData);

                TiledTexture tTex                = new TiledTexture(canvasCase.DeviceResources, bData, oData);
                StandardLayout loadedLayout      = new StandardLayout(tTex);
                loadedLayout.PaintingTexture     = canvasCase.PaintingTexture;
                loadedLayout.PaintingTextureTemp = canvasCase.PaintingTextureTemp;
                loadedLayout.saved               = true;
                loadedLayout.guid                = readedGuid;

                return(loadedLayout);
            });

            return(task1.AsAsyncOperation());
        }
Beispiel #4
0
 public void SetCanvasCase(CanvasCase canvasCase)
 {
     CanvasCase = canvasCase;
     CanvasRect = new CSRect(CanvasCase.DeviceResources, CanvasCase.Width, CanvasCase.Height);
     CanvasRect.SetVertexShader(AppController.CurrentController.default2DVertexShader);
     CanvasRect.SetPixelShader(AppController.CurrentController.PS2DTex1);
     CanvasRect.Position = new Vector2(
         ((float)swapChainPanel.ActualWidth * logicScale - CanvasCase.Width) * 0.5f,
         ((float)swapChainPanel.ActualHeight * logicScale - CanvasCase.Height) * 0.5f);
     paintAgent = CanvasCase.PaintAgent;
     canvasCase.ViewRenderer.RenderAll();
     PresentContent();
 }
Beispiel #5
0
        private async Task LoadDocInfo()
        {
            StorageFile layoutSettingsFile = await CaseFolder.GetFileAsync("Document.xml");

            Stream    settingsStream = (await layoutSettingsFile.OpenAsync(FileAccessMode.ReadWrite)).AsStream();
            XmlReader xmlReader      = XmlReader.Create(settingsStream);

            while (xmlReader.Read())
            {
                if (xmlReader.NodeType == XmlNodeType.Element)
                {
                    switch (xmlReader.Name)
                    {
                    case "DCDocument":
                        int width             = int.Parse(xmlReader.GetAttribute("Width"));
                        int height            = int.Parse(xmlReader.GetAttribute("Height"));
                        int renderBufferCount = int.Parse(xmlReader.GetAttribute("RenderBufferCount"));
                        canvasCase = new CanvasCase(DeviceResources, width, height, renderBufferCount);
                        while (xmlReader.Read())
                        {
                            if (xmlReader.NodeType == XmlNodeType.Element)
                            {
                                switch (xmlReader.Name)
                                {
                                case "Name":
                                    canvasCase.Name = xmlReader.ReadElementContentAsString();
                                    continue;

                                case "Description":
                                    canvasCase.Description = xmlReader.ReadElementContentAsString();
                                    continue;

                                case "DefaultBlendModeGuid":
                                    if (Guid.TryParse(xmlReader.GetAttribute("Value"), out Guid guid))
                                    {
                                        defaultBlendModeGuid = guid;
                                    }
                                    break;
                                }
                                xmlReader.Skip();
                            }
                            else if (xmlReader.NodeType == XmlNodeType.EndElement && xmlReader.Name == "DCDocument")
                            {
                                break;
                            }
                        }
                        break;
                    }
                }
            }
        }
        public void SetCanvasCase(CanvasCase canvasCase)
        {
            this.canvasCase = canvasCase;

            title1.SetBinding(TextBlock.VisibilityProperty, new Binding()
            {
                Path = new PropertyPath("CurrentPictureLayout"), Source = this, Mode = BindingMode.OneWay, Converter = new IsPureLayout()
            });
            colorPicker1.SetBinding(ColorPicker.VisibilityProperty, new Binding()
            {
                Path = new PropertyPath("CurrentPictureLayout"), Source = this, Mode = BindingMode.OneWay, Converter = new IsPureLayout()
            });
            colorPicker1.SetBinding(ColorPicker.ColorProperty, new Binding()
            {
                Path = new PropertyPath("CurrentPictureLayout.Color"), Source = this, Mode = BindingMode.TwoWay, Converter = new Vector4ToColor()
            });
            dispatcherTimer.Interval = new TimeSpan(0, 0, 0, 0, 5);
            dispatcherTimer.Tick    += DispatcherTimer_Tick;
            dispatcherTimer.Start();
        }
Beispiel #7
0
 public CMD_MoveLayout(CanvasCase canvasCase, int indexBefore, int indexAfter)
 {
     this.canvasCase  = canvasCase;
     this.indexBefore = indexBefore;
     this.indexAfter  = indexAfter;
 }
Beispiel #8
0
 public CMD_RecoverLayout(PictureLayout layout, CanvasCase canvasCase, int insertIndex)
 {
     this.layout      = layout;
     this.insertIndex = insertIndex;
     this.canvasCase  = canvasCase;
 }
Beispiel #9
0
 public void SetCanvasCase(CanvasCase canvasCase)
 {
     this.canvasCase = canvasCase;
     BlendModeListView.ItemsSource = canvasCase.blendModes;
 }
 public void SetCanvasCase(CanvasCase canvasCase)
 {
     this.canvasCase           = canvasCase;
     BrushGridView.ItemsSource = canvasCase.PaintAgent.brushes;
 }
Beispiel #11
0
 public CMD_TileReplace(StandardLayout host, TiledTexture undoData, CanvasCase canvasCase)
 {
     Host            = host;
     Data            = undoData;
     this.canvasCase = canvasCase;
 }
 public CMD_DeleteLayout(PictureLayout layout, CanvasCase case1, int atIndex)
 {
     this.layout  = layout;
     canvasCase   = case1;
     this.atIndex = atIndex;
 }
 public void SetCanvasCase(CanvasCase canvasCase)
 {
     this.canvasCase             = canvasCase;
     LayoutsListView.ItemsSource = canvasCase.Layouts;
 }