Live data from Hacker News

PaintCode - Vector Based Obj-C Graphics Code Generator

paintcodeapp.com

21–26 of 26 posts

Re: PaintCode - Vector Based Obj-C Graphics Code Generator

#21
post #15

Earlier quoted context omitted.

Core Graphics drawing is actually quite slow. On the Retina iPad, drawing is 4 times as slow and uses 4 times as much memory as the 1st gen iPad, and all the CPU cores in the world are not going to help you. Having recently ripped out most of my -drawRect: methods, replacing them with custom rendered UIImages, I can attest to the significant performance gains that UIImage gives you. On the Retina iPad, I think it's p…

Its not that Core Graphics is slow, just that CG doesn't guarantee that drawing will take place on the GPU. It turns out that CG typically prefers the CPU for its its drawing. In comparison, when you load images into a UIImageView, you know that the drawing will be done on the GPU, instead. Quick question: How does UIImage's -drawInRect: and -drawAtPoint: differ?[1] With that in mind, I think most people are better o…

drawAtPoint: and drawInRect: both call through to drawInRect:blendMode:alpha: which calls through to CGContextDrawImage. CGContextDrawImage has some optimizations to handle unscaled blends and further optimizations for unscaled blits, but it doesn't use the GPU on iOS. Even if it did, it would be using the GPU to draw into a temporary buffer that would have to be drawn again when the QuartzCore scene is rendered.

Re: PaintCode - Vector Based Obj-C Graphics Code Generator

#22
post #4
post #2

Hardcoding... graphics? Why?

If you boil down a UI element's description to a set of lines, colours and gradients, you can easily apply that to other elements at all scale factors, without having to ship piles of images (possibly in four different sizes, if you have iPad-specific assets) and deal with the horrible "stretchable images" system. That aside, the ease of prototyping makes development that much faster.

Stretchable images are quite elegant: they are relatively easy to use, use less memory and memory bandwidth, perform all drawing on the GPU when paired with UIImageView, animate size changes effortlessly and automatically share their buffer between all image views that use a single resource. You can certainly add all of this to elements that are drawn "in code", but it's considerably more work.

Re: PaintCode - Vector Based Obj-C Graphics Code Generator

#23
I'm interested in pretty much the exact opposite of this product.

I've worked on a few apps where I need to pre-render some high-quality images and include them in the app bundle. In some cases they are relatively difficult to hand-draw in an image editor (at least the sort of image editors I can afford) and I've had to write a Mac app to draw the image. Basically the sort of thing that a CAD program would be good at.

So I'd love to have something that I can script in a relatively high-level language that renders really sharp antialiased graphics at 2x resolution with control over things like end caps.

Re: PaintCode - Vector Based Obj-C Graphics Code Generator

#24
post #5

Earlier quoted context omitted.

People are currently using PNGs So you're hardcoding either way. Additionally, paintcode has the flexibility of making say, a button that shrinks/grows based on the shape of another view, say, as is caused when you rotate an ipad, etc. I've been very happy with the product so far.

This product just outputs Obj-C, which must be baked into your source code, right? That's what I think of as hardcoding. I wouldn't call loaded PNG's from outside of the binary "hardcoded". I can certainly see where having easy programmatic access to the primitives that make up a vector drawing would be useful though.

It outputs code that you can customize dynamically though...unlike pngs

Re: PaintCode - Vector Based Obj-C Graphics Code Generator

#25
post #17

Earlier quoted context omitted.

I don't think that's part of the developer license agreement any more. Considering how successful Unity, Corona and other non-obj-c development tools have been I'd be surprised if it was.

Don’t know. The last I heard of it was mid-2010, and there doesn’t seem to be new information saying it’s changed. Apple seems bent on killing Flash, and that wording was a perfect way to deal with CS5. Unity, on the other hand, has a good relationship with Apple, so there’s no reason for Apple to invoke Dread Section 3.3.1 against them.

That is not part of the license anymore.

Re: PaintCode - Vector Based Obj-C Graphics Code Generator

#26
post #25

Earlier quoted context omitted.

Don’t know. The last I heard of it was mid-2010, and there doesn’t seem to be new information saying it’s changed. Apple seems bent on killing Flash, and that wording was a perfect way to deal with CS5. Unity, on the other hand, has a good relationship with Apple, so there’s no reason for Apple to invoke Dread Section 3.3.1 against them.

That is not part of the license anymore.

Thanks for clearing that up. I just didn’t know and couldn’t readily find it.
Post reply on HN