{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":290578244,"defaultBranch":"main","name":"rive-ios","ownerLogin":"rive-app","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2020-08-26T18:46:52.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/58453772?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1727197594.0","currentOid":""},"activityList":{"items":[{"before":"6ef62c5899baf3ed3ec84cd40bdca447cc9738c1","after":"3b33643ff1b928657fd3da839abd2b7a12eb8810","ref":"refs/heads/main","pushedAt":"2024-09-25T03:32:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rive-engineering","name":"Rive Engineering","path":"/rive-engineering","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/60802183?s=80&v=4"},"commit":{"message":"add bindable layout properties\n\nAdded many of the layout properties as bindable!\nI included some properties that I think are currently not exposed to users, but it doesn't hurt to have them bindable already.\nThere are a couple more missing (like interpolation time) that I want to take a closer look. We should also decide whether we want them to be bindable at all.\nThe enum based properties are not bindable yet, we also need to discuss how that will work.\n\nI also had to run core generator again for the other files because there was a part missing, that's the reason for all the other core base file changes.\n\nDiffs=\nbe2c46a3e add bindable layout properties (#8212)","shortMessageHtmlLink":"add bindable layout properties"}},{"before":"efa642b67b7bdd16e824ad982485d8d04dc8ffdb","after":"6ef62c5899baf3ed3ec84cd40bdca447cc9738c1","ref":"refs/heads/main","pushedAt":"2024-09-24T23:16:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rive-engineering","name":"Rive Engineering","path":"/rive-engineering","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/60802183?s=80&v=4"},"commit":{"message":"add new properties to data bind\n\nadds several new properties to data bind\nadds support for the EditorSwitcher component to display its binded state\nswitches feature flag on for data binding in UAT!\n\nDiffs=\ncea19ecc6 add new properties to data bind (#8211)","shortMessageHtmlLink":"add new properties to data bind"}},{"before":"4a1795829a2291a722fdfb71f05424146413d759","after":"efa642b67b7bdd16e824ad982485d8d04dc8ffdb","ref":"refs/heads/main","pushedAt":"2024-09-24T20:46:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rive-engineering","name":"Rive Engineering","path":"/rive-engineering","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/60802183?s=80&v=4"},"commit":{"message":"Layout text size fix\n\nFix text sizing bug due to layouts found by @LauraRive https://2dimensions.slack.com/archives/C078KG6KAJY/p1726701560886439.\n\nThis also manifested whenever you changed a text style that adjusted the width of the text component. This PR fixes these scenarios.\n\nhttps://github.com/user-attachments/assets/07b565b8-0a4f-496d-b100-86d638fd7b67\n\nDiffs=\ne67109195 Layout text size fix (#8209)","shortMessageHtmlLink":"Layout text size fix"}},{"before":"219664c03d99dc774e6e49160c46ef0549213058","after":"4a1795829a2291a722fdfb71f05424146413d759","ref":"refs/heads/main","pushedAt":"2024-09-24T17:06:34.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"chore: release v6.1.3","shortMessageHtmlLink":"chore: release v6.1.3"}},{"before":"6bdf907f73c45edda2a99169325d4a2b21dd4b0a","after":"219664c03d99dc774e6e49160c46ef0549213058","ref":"refs/heads/main","pushedAt":"2024-09-23T20:19:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rive-engineering","name":"Rive Engineering","path":"/rive-engineering","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/60802183?s=80&v=4"},"commit":{"message":"Add linux build step for rive_native changes\n\nAdd linux build step for rive_native changes\n\nDiffs=\n77b9ee56d Add linux build step for rive_native changes (#8194)","shortMessageHtmlLink":"Add linux build step for rive_native changes"}},{"before":"868e7fc59a4ab60f022ac2838bec906b64328869","after":"6bdf907f73c45edda2a99169325d4a2b21dd4b0a","ref":"refs/heads/main","pushedAt":"2024-09-21T03:45:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rive-engineering","name":"Rive Engineering","path":"/rive-engineering","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/60802183?s=80&v=4"},"commit":{"message":"advance iterator until distance does not equal 0\n\nfixes #8164\nif the distance of the initial segments is 0, we need to seek forward until we find the first non zero segment to return as the valid segment\n\nDiffs=\n37663bd03 advance iterator until distance does not equal 0 (#8165)","shortMessageHtmlLink":"advance iterator until distance does not equal 0"}},{"before":"5a8475686b4ae53cad0b2586a23d9dc87bfa39f6","after":"868e7fc59a4ab60f022ac2838bec906b64328869","ref":"refs/heads/main","pushedAt":"2024-09-21T01:10:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rive-engineering","name":"Rive Engineering","path":"/rive-engineering","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/60802183?s=80&v=4"},"commit":{"message":"runtime dashing!\n\nit's here :)\n\nDiffs=\n1713983ab runtime dashing! (#8191)","shortMessageHtmlLink":"runtime dashing!"}},{"before":"43447b166ea3c1251bc361410021eafd96596b40","after":"5a8475686b4ae53cad0b2586a23d9dc87bfa39f6","ref":"refs/heads/main","pushedAt":"2024-09-20T20:24:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rive-engineering","name":"Rive Engineering","path":"/rive-engineering","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/60802183?s=80&v=4"},"commit":{"message":"fix dash glitch\n\nif we were right at the end of the contour we'd extract a 0 length segment with a moveto causing this:\n\n![image](https://github.com/user-attachments/assets/9be8be98-b4f3-4ddd-b8ba-adb217cf589a)\n\nDiffs=\nd0d1dbf33 fix dash glitch (#8188)","shortMessageHtmlLink":"fix dash glitch"}},{"before":"61314f715b32c755ab027e3ed0256f6adc505436","after":"43447b166ea3c1251bc361410021eafd96596b40","ref":"refs/heads/main","pushedAt":"2024-09-20T00:43:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rive-engineering","name":"Rive Engineering","path":"/rive-engineering","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/60802183?s=80&v=4"},"commit":{"message":"Dashing (through the snow)\n\nFor @alxgibsn to make awesome.\n\nDiffs=\n8a974784d Dashing (through the snow) (#8093)","shortMessageHtmlLink":"Dashing (through the snow)"}},{"before":"8e13787c3676a0c0b2d022fcdf83976b5aa9cd11","after":"61314f715b32c755ab027e3ed0256f6adc505436","ref":"refs/heads/main","pushedAt":"2024-09-20T00:30:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rive-engineering","name":"Rive Engineering","path":"/rive-engineering","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/60802183?s=80&v=4"},"commit":{"message":"Update player to run without the python server\n\nDiffs=\n9e4b81762 Update player to run without the python server (#8175)","shortMessageHtmlLink":"Update player to run without the python server"}},{"before":"8b165db9190162f9309c3290f8f9ab91c6f4e91a","after":"8e13787c3676a0c0b2d022fcdf83976b5aa9cd11","ref":"refs/heads/main","pushedAt":"2024-09-20T00:17:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rive-engineering","name":"Rive Engineering","path":"/rive-engineering","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/60802183?s=80&v=4"},"commit":{"message":"Rename gpuAtomicResolve -> atomicResolve, et. al.\n\nDiffs=\naa91ffe21 Rename gpuAtomicResolve -> atomicResolve, et. al. (#8168)","shortMessageHtmlLink":"Rename gpuAtomicResolve -> atomicResolve, et. al."}},{"before":"a3ae86e599e936649ac79e2d0f9cadde70f8feb0","after":"8b165db9190162f9309c3290f8f9ab91c6f4e91a","ref":"refs/heads/main","pushedAt":"2024-09-19T16:27:47.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"chore: release v6.1.2","shortMessageHtmlLink":"chore: release v6.1.2"}},{"before":"6a8244eb5ccdf06c92f384a0a1be6ba99adfadfa","after":"a3ae86e599e936649ac79e2d0f9cadde70f8feb0","ref":"refs/heads/main","pushedAt":"2024-09-19T15:46:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rive-engineering","name":"Rive Engineering","path":"/rive-engineering","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/60802183?s=80&v=4"},"commit":{"message":"Add support for decoding Apple native font via factory\n\nExpands on the current iOS factory method to decode raw font data (from file) to adding a second font decoding function that can use a native Apple font (`UIFont` / `NSFont`). This reuses some of the logic from fallback fonts. There's one main difference - while we are calculating weight and width, those get ignored in addition to size; the font data returned seems to be used as vector(?) data to draw characters in the weight / width as defined in a text run, rather than overridden by any supplied font. But, we need to provide a weight and width when obtaining a Rive font from cpp, so we re-use the logic.\n\nDiffs=\n414c142f2 Add support for decoding Apple native font via factory (#8180)\n\nCo-authored-by: David Skuza ","shortMessageHtmlLink":"Add support for decoding Apple native font via factory"}},{"before":"fee1c9356a6d7c75b5c808d5561d6fd49c0c094a","after":"6a8244eb5ccdf06c92f384a0a1be6ba99adfadfa","ref":"refs/heads/main","pushedAt":"2024-09-19T15:35:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rive-engineering","name":"Rive Engineering","path":"/rive-engineering","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/60802183?s=80&v=4"},"commit":{"message":"Add size property to RiveImageAsset on iOS\n\nSimilar to #8167:\n\n> Request from a customer.\n>\n> This unlocks the ability to resize images at runtime to fit the appropriate ImageAsset dimensions.\n\nRather than exposing an individual width and height, `CGSize` is used (similar to `UIImage`), accessible via a new `size` property on `RiveImageAsset`. A unit test was also added that tests a very simple referenced jpeg of size 320x240.\n\nDiffs=\n48212b2bb Add size property to RiveImageAsset on iOS (#8169)\n\nCo-authored-by: David Skuza ","shortMessageHtmlLink":"Add size property to RiveImageAsset on iOS"}},{"before":"31104f46a018170e0c71ce1a15129acf4bb5a431","after":"fee1c9356a6d7c75b5c808d5561d6fd49c0c094a","ref":"refs/heads/main","pushedAt":"2024-09-18T18:08:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rive-engineering","name":"Rive Engineering","path":"/rive-engineering","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/60802183?s=80&v=4"},"commit":{"message":"Overhaul Vulkan synchronization\n\nThis stabilizes Vulkan on Android.\n\nAlso adds a \"vkcore\" backend, which tests vulkan without bonus features enabled.\n\nDiffs=\nadc240554 Overhaul Vulkan synchronization (#8166)","shortMessageHtmlLink":"Overhaul Vulkan synchronization"}},{"before":"b120e68f7f115505b9819b05eba3469866f43653","after":"31104f46a018170e0c71ce1a15129acf4bb5a431","ref":"refs/heads/main","pushedAt":"2024-09-17T23:50:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rive-engineering","name":"Rive Engineering","path":"/rive-engineering","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/60802183?s=80&v=4"},"commit":{"message":"Remove Skia from ios_tests and quit building it on many runners\n\nDiffs=\n9dd20080c Remove Skia from ios_tests and quit building it on many runners (#8144)","shortMessageHtmlLink":"Remove Skia from ios_tests and quit building it on many runners"}},{"before":"b68c0d6e46a9fa1996a05eb76fffaca84d736d43","after":"b120e68f7f115505b9819b05eba3469866f43653","ref":"refs/heads/main","pushedAt":"2024-09-17T21:45:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rive-engineering","name":"Rive Engineering","path":"/rive-engineering","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/60802183?s=80&v=4"},"commit":{"message":"Nnnn data context fixes\n\nadds support for passing the data context of the parent if the child doesn't have its own data context.\nImplements the enum data bind in cpp.\nfixes an out of range index for missing enums.\n\nDiffs=\n5cdcc183f Nnnn data context fixes (#8148)","shortMessageHtmlLink":"Nnnn data context fixes"}},{"before":"bf7122d295cb31bdff4acd72e5be6c3bb2fc2a18","after":"b68c0d6e46a9fa1996a05eb76fffaca84d736d43","ref":"refs/heads/main","pushedAt":"2024-09-17T20:10:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rive-engineering","name":"Rive Engineering","path":"/rive-engineering","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/60802183?s=80&v=4"},"commit":{"message":"Colinear and bounds ffi\n\nFinal fix for https://github.com/rive-app/rive/issues/7946!!\n\n~~Letting tests run while I add WASM side.~~\n\nThis adds colinear checks and precise bounds to dart native so we can completely remove the flutter ui.Path usage in rive_core. This dries up a lot of the rendering code where we still kept the old path around and should provide some performance benefits particularly on web.\n\nHaha @alxgibsn we both caught the StageShape issue :)\n\nDiffs=\n7e8100fee Colinear and bounds ffi (#8158)","shortMessageHtmlLink":"Colinear and bounds ffi"}},{"before":"d23a45e0d293fa0677c3b9c4711a997e50c930e8","after":"bf7122d295cb31bdff4acd72e5be6c3bb2fc2a18","ref":"refs/heads/main","pushedAt":"2024-09-17T00:30:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rive-engineering","name":"Rive Engineering","path":"/rive-engineering","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/60802183?s=80&v=4"},"commit":{"message":"add support for elastic interpolation\n\nadded support for elastic interpolation on state transitions\n\nDiffs=\n15d3e9961 add support for elastic interpolation (#8154)","shortMessageHtmlLink":"add support for elastic interpolation"}},{"before":"9be2b0267bbf02104bf7cb6b1efc84525d414533","after":"d23a45e0d293fa0677c3b9c4711a997e50c930e8","ref":"refs/heads/main","pushedAt":"2024-09-16T23:09:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rive-engineering","name":"Rive Engineering","path":"/rive-engineering","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/60802183?s=80&v=4"},"commit":{"message":"editor: Stage UI for N-Slicing\n\nThis PR adds some stage UI for editing an NSlicer, including adding axis and changing tile modes. The inspect panel's UI still needs some work.\n\n### Structures added\n1. I added an NSlicer Editor that takes after vertexEditor. You can only edit axis when the NSlicer is solo'ed. One behavior that's different is that if an axis/tile is selected, escaping won't immediate escape the solo mode. Instead, it'd just deselect everything.\n2. The StageNSlicerAxis represents an Axis component. However, StageNSlicerAddAxis has no component.\n3. It's just an UI that kind of looks like a StageNSlicerAxis but when dragged, it immediately creates an StageNSlicerAxis.\n4. StageNSlicerTileMode isn't backed up by a component by default, but is manually initialized if there happens to be an NSlicerTileMode in core. So in a way, these three stage items all are slightly different.\n\n### A note on creating bounds\nThe trickiest part to this PR imo is making sure the bounds of the axes and the tiles are calculated correctly. StageNSlicerAxis and StageNSlicerTileMode both use the image's world transform and the artboard's world transform to calculate its space.\n\nWhen dragging an axis, the mouse diff in image space isn't necessarily how much to change the Axis.offset by. [Here's a thread](https://2dimensions.slack.com/archives/C07D9AE1ZRV/p1725582977896249) that explains the problem. When an axis is dragged, other stored axis will also move their screen position. This data is represented in a new editor-only field called `offsetInLocalSpace`, and is updated by NSlicer on dirt.\n\nThere's one hack with the AABB. You can find it be searching 'hack'. Details [in this slack thread](https://2dimensions.slack.com/archives/C07HQ4GS0BH/p1726089308629329).\n\n### Some edge cases\n1. I made sure to handle tiling for axes that are very close to each other (or even 0). Previously I think it'd run past 1m iterations. Now, I make it early exit and not bother tiling for really small patches. I wrote a test for this.\n2. I also handled a case where if all axes are paired up to be the same, then we still try to keep the fixed patches fixed, but stretch the zero patches so the bounds of the image stay the same (find 'emptyScalableSize' for this logic). This doesn't really serve a practical purpose. Another way to handle it could be to treat it as if there's nothing set so it'd just be the unscaled image, but I thought this implementation looks better.\n\nDemos for these edge cases, also demo'ing it works in Runtime.\n![handle-zeros](https://github.com/user-attachments/assets/4fe6dfef-caa3-4abd-b89d-7b59012903ff)\n\nTODO: https://www.notion.so/rive-app/N-Slicing-10622b943b2f4a8e90a78af7f1e0be07\nMore on N-slicing: https://www.notion.so/rive-app/N-Slice-Tech-Proposal-Image-only-50b25ea8e79c4efabb681110e288f064\n\n### Demos:\nAdding an axis\n![aaapr-stage-add-axis](https://github.com/user-attachments/assets/5a12def9-802b-4a83-90a6-0b4cf97e8668)\n\nDeleting via backspace\n![aaapr-stage-delete](https://github.com/user-attachments/assets/5e608321-12aa-424b-9152-4fd50cdddf55)\n\nDragging an axis\n![aaapr-stage-shadow-line](https://github.com/user-attachments/assets/375ee90a-a867-4f75-b8f6-4f1b068a43f8)\n\nToggling tile modes\n![aaapr-stage-toggle-tile-modes](https://github.com/user-attachments/assets/d593abb1-d206-43b1-a480-bd0de97c2ec1)\n\nDiffs=\n95e58ca40 editor: Stage UI for N-Slicing (#8136)","shortMessageHtmlLink":"editor: Stage UI for N-Slicing"}},{"before":"27a5c2d26327b936c940d653f74229e591d21da0","after":"9be2b0267bbf02104bf7cb6b1efc84525d414533","ref":"refs/heads/main","pushedAt":"2024-09-16T16:46:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rive-engineering","name":"Rive Engineering","path":"/rive-engineering","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/60802183?s=80&v=4"},"commit":{"message":"Add contour measure to Rive Native\n\nAddresses second item in https://github.com/rive-app/rive/issues/7946\n\n~~Draft as I need to add WASM side.~~\n\nDiffs=\n5719c5662 Add contour measure to Rive Native (#8145)","shortMessageHtmlLink":"Add contour measure to Rive Native"}},{"before":"e620ff4f001d5ba3688c5f28cc30627c7d5d684a","after":"27a5c2d26327b936c940d653f74229e591d21da0","ref":"refs/heads/main","pushedAt":"2024-09-15T19:30:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rive-engineering","name":"Rive Engineering","path":"/rive-engineering","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/60802183?s=80&v=4"},"commit":{"message":"adding length getter to dash path effect\n\nExposes length of the path used for dashing, note that it must be called after the effect path has been computed (which would usually be the case in editor).\n\nDiffs=\n8441098ec adding length getter to dash path effect (#8140)","shortMessageHtmlLink":"adding length getter to dash path effect"}},{"before":"3db122f7487b127993122abd2743041e7767eca9","after":"e620ff4f001d5ba3688c5f28cc30627c7d5d684a","ref":"refs/heads/main","pushedAt":"2024-09-14T16:47:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rive-engineering","name":"Rive Engineering","path":"/rive-engineering","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/60802183?s=80&v=4"},"commit":{"message":"Add NestedArtboardLayout hug\n\nAdd hug overrides for nested artboards.\n\nThere is one caveat. Since the Artboard is a special type of layout where children can exist in regular transform space OR inside a layout, in order for nested artboard hug to work, the nested artboard must be in AutoLayout mode (ie has at least 1 relative layout child) and when you set hug on the nested artboard (inside the parent artboard) it will hug to whatever the size of the layout children are. It will not currently hug to components in the Artboard that exist in regular transform space.\n\nhttps://github.com/user-attachments/assets/eee4568e-c5d3-4987-b852-a52cbd2af563\n\nDiffs=\n95cad5c60 Add NestedArtboardLayout hug (#8137)","shortMessageHtmlLink":"Add NestedArtboardLayout hug"}},{"before":"9c7b33224f48a1d4dce953cc55438713092c82be","after":"3db122f7487b127993122abd2743041e7767eca9","ref":"refs/heads/main","pushedAt":"2024-09-13T16:43:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rive-engineering","name":"Rive Engineering","path":"/rive-engineering","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/60802183?s=80&v=4"},"commit":{"message":"Initial refactor to simplfigy class structure\n\nDiffs=\nedc91a599 Initial refactor to simplfigy class structure (#8122)","shortMessageHtmlLink":"Initial refactor to simplfigy class structure"}},{"before":"fb9fafa65262c23d98ab514379c016556a06772c","after":"9c7b33224f48a1d4dce953cc55438713092c82be","ref":"refs/heads/main","pushedAt":"2024-09-13T15:41:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rive-engineering","name":"Rive Engineering","path":"/rive-engineering","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/60802183?s=80&v=4"},"commit":{"message":"d3d11 simplifications\n\n* Don't store 3 buffers in the rings. Just make 1 and let d3d11 handle the synchronization.\n\n* Instead of making a new SRV every time we bind a structured buffer, just make one that starts at zero and upload the subdata every flush (similar to how we already do uniforms).\n\n* Don't use raster order views for image meshes in atomic mode. This is an unnecessary slowdown when plenty of other backends don't use raster ordering for meshes either. (Overlaps will be undefined, but they're an edge case that we already accept in backends that don't support raster ordering at all.)\n\nDiffs=\ne9918f249 d3d11 simplifications (#8134)","shortMessageHtmlLink":"d3d11 simplifications"}},{"before":"053761c7d3740fb4c218490cce9e3a060372c960","after":"fb9fafa65262c23d98ab514379c016556a06772c","ref":"refs/heads/main","pushedAt":"2024-09-13T13:52:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rive-engineering","name":"Rive Engineering","path":"/rive-engineering","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/60802183?s=80&v=4"},"commit":{"message":"Optimize draw to avoid creating when clip is empty\n\nThis PR avoids creating Draw\n- when clip is empty\n- or when draw pixelBounds are outside current frame of context\n\nThe second case gives a lot of opportunity for performance when you have lots of paths outside the viewport as it does early culling to avoid doing CPU work of creating the Draw that gets discarded\n\nYou can notice the performance improvement when you start adding more elements to the scene and you can add a lot more before the fps drops below 120 fps\n\nDiffs=\n84f332761 Optimize draw to avoid creating when clip is empty (#8128)","shortMessageHtmlLink":"Optimize draw to avoid creating when clip is empty"}},{"before":"0f44c6f01fbe43e1f518973755217804dc9efd71","after":"053761c7d3740fb4c218490cce9e3a060372c960","ref":"refs/heads/main","pushedAt":"2024-09-12T23:13:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rive-engineering","name":"Rive Engineering","path":"/rive-engineering","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/60802183?s=80&v=4"},"commit":{"message":"Updates to layout hug\n\nSome modifications to hug behavior to support hugging when a layout has layout children. @alxgibsn suggested extending the **hug** option to include this scenario.\n\n- Hug is now available for both leaf layouts and layouts that have other layout children.\n- For leaf layouts, the behavior is unchanged (measure function computes size based on child components).\n- For layouts with layout children, the layout engine computes the size based on size of its child layouts\n- For layouts with a combination of layout and non-layout children, it will compute size based on child layouts, and the non layout children will be sized to that.\n\nhttps://github.com/user-attachments/assets/e8a97126-f50e-4f30-a73d-ea9558893de1\n\nDiffs=\nc67b67083 Updates to layout hug (#8132)","shortMessageHtmlLink":"Updates to layout hug"}},{"before":"ad2419c05bc03fbb2c7cc333240104f1755ddd29","after":"0f44c6f01fbe43e1f518973755217804dc9efd71","ref":"refs/heads/main","pushedAt":"2024-09-12T10:34:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rive-engineering","name":"Rive Engineering","path":"/rive-engineering","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/60802183?s=80&v=4"},"commit":{"message":"revisit sync between flutter and c++ runtime\n\nthis is a set of changes aimed at cleaning things up between restarts of the state machine in the editor, or when objects related to data binding change.\nAdded some comments on the most relevant parts\n\nDiffs=\n30f5778b1 revisit sync between flutter and c++ runtime (#8101)","shortMessageHtmlLink":"revisit sync between flutter and c++ runtime"}},{"before":"84a3028f6991633deb4bda59f68983c498e721f6","after":"ad2419c05bc03fbb2c7cc333240104f1755ddd29","ref":"refs/heads/main","pushedAt":"2024-09-12T09:53:54.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"chore: release v6.1.1","shortMessageHtmlLink":"chore: release v6.1.1"}},{"before":"e84ac8ec1b3703cb0c9d7a09cf67693c632885a1","after":"84a3028f6991633deb4bda59f68983c498e721f6","ref":"refs/heads/main","pushedAt":"2024-09-11T23:40:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rive-engineering","name":"Rive Engineering","path":"/rive-engineering","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/60802183?s=80&v=4"},"commit":{"message":"Fix intrinsically sizeable bug\n\nDiffs=\neb4c9d36b Fix intrinsically sizeable bug (#8131)","shortMessageHtmlLink":"Fix intrinsically sizeable bug"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yNVQwMzozMjoyNi4wMDAwMDBazwAAAAS_1glB","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xMVQyMzo0MDoyMC4wMDAwMDBazwAAAASzwtpx"}},"title":"Activity ยท rive-app/rive-ios"}