I am trying to make a drawing app using swift and wanted to add a feature to stabilize the curves that the user draws. Sometimes the curves come out jittery, so I was wondering if there was any kind of algorithm that would look at the point before drawing it to the screen and force it to be closer to the previous point, thereby smoothing it out.
Post
Replies
Boosts
Views
Activity
How can I create a dashed line using a Metal shader? I'm thinking something similar to the CoreGraphics "lineDash" property.
Is there a way to determine when the user is about to quit the application while using Mac Catalyst? I'd like to alert the user when they have unsaved changes before they quit, but cannot seem to find how to do that using Mac Catalyst.
Is there a way to create a BGRA8Unorm texture that doesn't take up a lot of memory on the device (iOS and MacOS)? In my app the user can create a texture of any size, however the memory usage becomes too high even with relatively average sized textures (ex. 2048 by 2048). Is there a way to create large textures that don't take up a lot of memory?
I'm developing a drawing application using Metal and was wondering what the best way to draw smooth lines is? I current use the touchesMoved function to track where the user draws, and then attempt to create triangulated lines from that. The problem I am facing is that the line segments start to fold at the edges while drawing. How can I implement round line caps to avoid this? As you can see from the circled parts of the image, the ends of the brush stroke are very jagged. I'd like to avoid these and instead make them round.
I have two render passes, one that is nested within another, and I'd like for the inner pass to have access to the color attachments of the outer pass. Is it possible for render pass 2 to have knowledge of render pass 1's color at any given moment? Here is the logic:
1.) Start render pass 1 with texture 1
2.) Draw objects
3.) Start render pass 2 with texture 2
4.) Draw objects using color from render pass 1
5.) End render pass 2
6.) Draw output of render pass 2 into render pass 1
7.) End render pass 1
While developing my Metal application I noticed that making a draw call is a lot slower than using a tile shader. In particular, when operating on a 4k resolution texture it takes about 3ms to complete a draw call while the tile shader takes about 150ns. I was wondering, is a tile shader the preferred approach for drawing with Metal now? Or is there any particular reason why a typical draw call should be used.
I created a custom file type for my app as a package. However when I run the app and try to open a file it does not recognize it as the custom file type, but instead as a regular folder. I haven't changed my settings since I first setup the custom type, and only some of these files in Finder are showing properly. Do I need to do something in Xcode to change the rest of the files in Finder?
I'm using Xcode 13 after recently updating to MacOS Monterey, and only after updating am I getting this error: [MTLDebugCommandBuffer lockPurgeableObjects]:2103: failed assertion `MTLResource 0x14a8a8cc0 (label: null), referenced in cmd buffer 0x149091400 (label: null) is in volatile or empty purgeable state at commit'
I haven't changed my code at all between updating to the latest OS, and it worked perfectly before. How can I fix this? I don't think there should be any reason that I can't use a command buffer on a texture resource with a volatile/empty purgeable state.
If I want to use SF Symbols 3 in my swift project, do I have to export the symbols from the SF Symbols app and add them to my app's Asset Catalog, or is there a way for Xcode to automatically use those symbols without me having to add them to the Asset Catalog?
I have a string encoded as ascii characters that contains letters and numbers. When I print out the string it looks like the numbers are not showing up properly. The string is being read from a data object where I convert everything to an Int8 type and construct a Character from that:
for i in 0..<dataLength {
let byte: Int8 = readByte()
let char = Character(unicodeScalarLiteral: .init(.init(byte)))
print("Character: ", char, char.asciiValue)
}
Example.) "40" appears as "@D". I was able to print out the ascii codes of these and found it to be [64, 68], but I'm not sure how to now convert it to the number 40.
Is it possible to render an MTKView in different color spaces? For example, if I want to render it in CMYK, is there a way to adjust the colors on every frame to that colorspace before presenting it on the screen, or is that something that needs to be handled in a shader?
I have a UITextView and a UITextField. I would like to select a range of text in the text view and then edit the text in the text field, which will perform some action on the selected text from the text view. Is there a way to edit the text field without losing the selected text in the text view?
I have a UIMenu that is being triggered as a primary action for a UIButton. Each menu item has a UIAction associated with it that gets called when I click on the item. What I'm wondering is if there is a way to add a hover action to these menu items so that they can run a different action only when being hovered?
I have a quad made up of two triangles rendered using indexed primitives. How can I create a transform where only one corner of the quad is stretched, like the perspective tool in most drawing apps?
For example: