GithubHelp home page GithubHelp logo

paint's Introduction

paint

An attempt to replicate the functionality of paint using Win2D in C#.

paintdemo-opt

paint's People

Contributors

robmikh avatar

Stargazers

Mahdi Ghanbari avatar Iman Nemati avatar  avatar sutm avatar  avatar Ratish Philip avatar Tamás Deme avatar

Watchers

James Cloos avatar  avatar  avatar

Forkers

asdlei99

paint's Issues

Create Canvas abstraction

Currently the MainPage keeps track of the canvas (aka _canvasBuffer). This should be abstracted away into a new object that will hand out the canvas when needed.

Can't draw with touch

Touch triggers the ScrollViewer that surrounds the canvas, which prevents the events from getting through. Ideally scrolling should only be possible with a two finger scroll or something.

Allow canvas resizing

Currently the canvas is permanently set to 400 by 400. Resizing should be supported.

Alpha for copy/paste behaves strangely

Copying something with transparent content and pasting it again from within the app works fine. Pasting that into Paint or GIMP results in black where there should be transparent pixels. Conversely, copying something with transparent content in something like GIMP and pasting it into the app also shows black where there should be transparent pixels.

Add "ghost" cursor for tools

Allow a preview for what the tool will do, but only draw it on the swapchain and not on the real render target. This helps alleviate the problem seen in #12.

Selection tool only works when p1 > p2

The positioning of the selection visual is a little too basic and results in negative sizes. Instead the Vishal's offset should be changed to garuntee positive sizes for the visual.

Add simple color picker

Unbind the color from the mouse wheel, it is just getting annoying now that zoom is enabled.

Canvas doesn't resize after pasting content

Somehow the image is resized after pasting content that is larger than the original image... but then none of the tools are able to draw outside the bounds of the original image. I'm guessing the resizing mechanism of the canvas isn't behaving correctly.

Introduce "tool" concept

Currently the code only understands what could be called the basic "pencil" tool and the "paint bucket" tool though a hack. Separate out the functionality of these tools into tool objects, and provide the ability to switch between tools.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.