{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":382912430,"defaultBranch":"main","name":"mach","ownerLogin":"hexops","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2021-07-04T17:37:47.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/19482899?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1715451397.0","currentOid":""},"activityList":{"items":[{"before":"205a1f33db0efe40a218e793937e7b686ac117dc","after":"b261a8177f45e01f9daf81794dfdf7d3a6378285","ref":"refs/heads/main","pushedAt":"2024-05-23T01:16:13.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"slimsag","name":"Stephen Gutekanst","path":"/slimsag","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3173176?s=80&v=4"},"commit":{"message":"gfx: Sprite: sort/draw sprites back-to-front always\n\nPrior to this change sprite draw order was not something we could specify,\nnow we can by changing the Z value of sprites (sprites further away / with\ngreater Z values are drawn first), which is obviously desirable for layering\nand alpha blending purposes.\n\nThe implementation here is rather naive: we sort all sprites each frame based\non their Z value; but its performance is quite good with ~half a million sprites\nand so is good enough for now.\n\nSigned-off-by: Stephen Gutekanst ","shortMessageHtmlLink":"gfx: Sprite: sort/draw sprites back-to-front always"}},{"before":"182c6a9180eba47c20cdb08887de1c1d510122c4","after":"205a1f33db0efe40a218e793937e7b686ac117dc","ref":"refs/heads/main","pushedAt":"2024-05-13T22:13:12.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"slimsag","name":"Stephen Gutekanst","path":"/slimsag","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3173176?s=80&v=4"},"commit":{"message":"Core: support configuring window before it opens\n\nSigned-off-by: Stephen Gutekanst ","shortMessageHtmlLink":"Core: support configuring window before it opens"}},{"before":"6e5c68c1c7464de0b4bcf885076f59e56fb23479","after":"182c6a9180eba47c20cdb08887de1c1d510122c4","ref":"refs/heads/main","pushedAt":"2024-05-13T22:07:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"slimsag","name":"Stephen Gutekanst","path":"/slimsag","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3173176?s=80&v=4"},"commit":{"message":"math: collision module","shortMessageHtmlLink":"math: collision module"}},{"before":"9a059d6f8c09316385834b4855a4b46e250f424a","after":"6e5c68c1c7464de0b4bcf885076f59e56fb23479","ref":"refs/heads/main","pushedAt":"2024-05-13T12:54:51.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"slimsag","name":"Stephen Gutekanst","path":"/slimsag","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3173176?s=80&v=4"},"commit":{"message":"Audio: don't deinit the player","shortMessageHtmlLink":"Audio: don't deinit the player"}},{"before":"194fe8a451303e379f66632aa3f06cf610f2a208","after":"9a059d6f8c09316385834b4855a4b46e250f424a","ref":"refs/heads/main","pushedAt":"2024-05-13T05:57:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"slimsag","name":"Stephen Gutekanst","path":"/slimsag","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3173176?s=80&v=4"},"commit":{"message":"Audio: fix unlock\n\nSigned-off-by: Stephen Gutekanst ","shortMessageHtmlLink":"Audio: fix unlock"}},{"before":"36f21d5c4d98bd762d58963ae037541f7b5a1112","after":"194fe8a451303e379f66632aa3f06cf610f2a208","ref":"refs/heads/main","pushedAt":"2024-05-13T05:54:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"slimsag","name":"Stephen Gutekanst","path":"/slimsag","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3173176?s=80&v=4"},"commit":{"message":"Audio: fix potential exit deadlock\n\nSigned-off-by: Stephen Gutekanst ","shortMessageHtmlLink":"Audio: fix potential exit deadlock"}},{"before":"cadaa3e85bddabf9f6c4f5ebf87274dccb597e74","after":"36f21d5c4d98bd762d58963ae037541f7b5a1112","ref":"refs/heads/main","pushedAt":"2024-05-13T02:20:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"slimsag","name":"Stephen Gutekanst","path":"/slimsag","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3173176?s=80&v=4"},"commit":{"message":"Audio: correct deinit race across threads\n\nSigned-off-by: Stephen Gutekanst ","shortMessageHtmlLink":"Audio: correct deinit race across threads"}},{"before":"73a1ea4650b2fdfcf08a317af813292a55cab49d","after":"cadaa3e85bddabf9f6c4f5ebf87274dccb597e74","ref":"refs/heads/main","pushedAt":"2024-05-12T14:34:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"slimsag","name":"Stephen Gutekanst","path":"/slimsag","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3173176?s=80&v=4"},"commit":{"message":"sysaudio: revive i24 samples","shortMessageHtmlLink":"sysaudio: revive i24 samples"}},{"before":"92086d8d666d07c89d12ddcf49273caa38ada6c0","after":"73a1ea4650b2fdfcf08a317af813292a55cab49d","ref":"refs/heads/main","pushedAt":"2024-05-12T14:29:13.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"slimsag","name":"Stephen Gutekanst","path":"/slimsag","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3173176?s=80&v=4"},"commit":{"message":"sysaudio: fix crash on windows without a mic/capture device","shortMessageHtmlLink":"sysaudio: fix crash on windows without a mic/capture device"}},{"before":"10f35a49efb0bf85e8f77bb8c42e20decd2f78c1","after":"92086d8d666d07c89d12ddcf49273caa38ada6c0","ref":"refs/heads/main","pushedAt":"2024-05-12T14:27:58.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"slimsag","name":"Stephen Gutekanst","path":"/slimsag","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3173176?s=80&v=4"},"commit":{"message":"examples: add hardware-check\n\nSigned-off-by: Stephen Gutekanst ","shortMessageHtmlLink":"examples: add hardware-check"}},{"before":null,"after":"d9aad319c2bbe75738274c5f9c5dfa60e4df320f","ref":"refs/heads/sg/windows-attempt","pushedAt":"2024-05-11T18:16:37.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"slimsag","name":"Stephen Gutekanst","path":"/slimsag","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3173176?s=80&v=4"},"commit":{"message":"windows attempt\n\nSigned-off-by: Stephen Gutekanst ","shortMessageHtmlLink":"windows attempt"}},{"before":"22ac26b57e5ad65cfffd2313e0a87402e43871d9","after":"10f35a49efb0bf85e8f77bb8c42e20decd2f78c1","ref":"refs/heads/main","pushedAt":"2024-05-10T00:51:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"slimsag","name":"Stephen Gutekanst","path":"/slimsag","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3173176?s=80&v=4"},"commit":{"message":"module: fix swap removal bug, improve code clarity\n\nSigned-off-by: Stephen Gutekanst ","shortMessageHtmlLink":"module: fix swap removal bug, improve code clarity"}},{"before":"db0335256bdf2b4deb476410732dfc2e3294bfc4","after":null,"ref":"refs/heads/sg/next3","pushedAt":"2024-05-08T20:39:11.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"slimsag","name":"Stephen Gutekanst","path":"/slimsag","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3173176?s=80&v=4"}},{"before":"8d669537dc1c92f93a93243c407eedfe851c20e9","after":"22ac26b57e5ad65cfffd2313e0a87402e43871d9","ref":"refs/heads/main","pushedAt":"2024-05-08T20:39:07.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"slimsag","name":"Stephen Gutekanst","path":"/slimsag","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3173176?s=80&v=4"},"commit":{"message":"module: rename events -> systems, remove 'event arguments'\n\nSigned-off-by: Stephen Gutekanst ","shortMessageHtmlLink":"module: rename events -> systems, remove 'event arguments'"}},{"before":"7f7a91d096f54395f5a71154f960b083c9f3a98c","after":"db0335256bdf2b4deb476410732dfc2e3294bfc4","ref":"refs/heads/sg/next3","pushedAt":"2024-05-08T20:20:42.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"slimsag","name":"Stephen Gutekanst","path":"/slimsag","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3173176?s=80&v=4"},"commit":{"message":"module: rename events -> systems, remove 'event arguments'\n\nSigned-off-by: Stephen Gutekanst ","shortMessageHtmlLink":"module: rename events -> systems, remove 'event arguments'"}},{"before":null,"after":"7f7a91d096f54395f5a71154f960b083c9f3a98c","ref":"refs/heads/sg/next3","pushedAt":"2024-05-08T20:19:59.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"slimsag","name":"Stephen Gutekanst","path":"/slimsag","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3173176?s=80&v=4"},"commit":{"message":"module: rm global_events, rename events -> systems, rm 'event arguments'\n\nSigned-off-by: Stephen Gutekanst ","shortMessageHtmlLink":"module: rm global_events, rename events -> systems, rm 'event arguments'"}},{"before":"f5c52a346170803b45d9aa72ae8664a7c8a31f75","after":null,"ref":"refs/heads/sg/next2","pushedAt":"2024-05-08T06:41:04.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"slimsag","name":"Stephen Gutekanst","path":"/slimsag","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3173176?s=80&v=4"}},{"before":"26b2351d4b04122d51c140b2d35325c02ccb0a5a","after":"8d669537dc1c92f93a93243c407eedfe851c20e9","ref":"refs/heads/main","pushedAt":"2024-05-08T06:40:56.000Z","pushType":"pr_merge","commitsCount":22,"pusher":{"login":"slimsag","name":"Stephen Gutekanst","path":"/slimsag","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3173176?s=80&v=4"},"commit":{"message":"module: make adding/removing components/entities legal during query iteration\n\nThis makes adding/removing components and entities legal during the execution\nof a query iterator. Previously, this could invalidate the iterator slices at\nworst leading to UB. This fixes the issue by deferring all such actions until\nafter no queries are pending (i.e. all iterators have finished running)\n\nSigned-off-by: Stephen Gutekanst ","shortMessageHtmlLink":"module: make adding/removing components/entities legal during query i…"}},{"before":"6817445f4140ec04fc85ff2bbba4d5465a468df3","after":"f5c52a346170803b45d9aa72ae8664a7c8a31f75","ref":"refs/heads/sg/next2","pushedAt":"2024-05-08T06:33:38.000Z","pushType":"push","commitsCount":8,"pusher":{"login":"slimsag","name":"Stephen Gutekanst","path":"/slimsag","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3173176?s=80&v=4"},"commit":{"message":"module: make adding/removing components/entities legal during query iteration\n\nThis makes adding/removing components and entities legal during the execution\nof a query iterator. Previously, this could invalidate the iterator slices at\nworst leading to UB. This fixes the issue by deferring all such actions until\nafter no queries are pending (i.e. all iterators have finished running)\n\nSigned-off-by: Stephen Gutekanst ","shortMessageHtmlLink":"module: make adding/removing components/entities legal during query i…"}},{"before":null,"after":"6817445f4140ec04fc85ff2bbba4d5465a468df3","ref":"refs/heads/sg/next2","pushedAt":"2024-05-08T01:05:39.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"slimsag","name":"Stephen Gutekanst","path":"/slimsag","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3173176?s=80&v=4"},"commit":{"message":"module: remove deprecated query API\n\nSigned-off-by: Stephen Gutekanst ","shortMessageHtmlLink":"module: remove deprecated query API"}},{"before":"7ccfcefa9696d5d0b77ba643b1f681465b0b92a5","after":"26b2351d4b04122d51c140b2d35325c02ccb0a5a","ref":"refs/heads/main","pushedAt":"2024-05-06T21:05:16.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"slimsag","name":"Stephen Gutekanst","path":"/slimsag","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3173176?s=80&v=4"},"commit":{"message":"module: fix zero-size component bug\n\nSigned-off-by: Stephen Gutekanst ","shortMessageHtmlLink":"module: fix zero-size component bug"}},{"before":"e711f69faddaabf3c338c5e44e845533db44debd","after":"7ccfcefa9696d5d0b77ba643b1f681465b0b92a5","ref":"refs/heads/main","pushedAt":"2024-05-06T21:03:37.000Z","pushType":"push","commitsCount":8,"pusher":{"login":"slimsag","name":"Stephen Gutekanst","path":"/slimsag","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3173176?s=80&v=4"},"commit":{"message":"examples: update play-opus to latest Audio API\n\nSigned-off-by: Stephen Gutekanst ","shortMessageHtmlLink":"examples: update play-opus to latest Audio API"}},{"before":"9d95fcf0c243db8e878e06de95d3a8d0f7d556b4","after":"e711f69faddaabf3c338c5e44e845533db44debd","ref":"refs/heads/main","pushedAt":"2024-05-06T21:00:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"slimsag","name":"Stephen Gutekanst","path":"/slimsag","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3173176?s=80&v=4"},"commit":{"message":"Audio: duplicate mono sounds to all channels","shortMessageHtmlLink":"Audio: duplicate mono sounds to all channels"}},{"before":null,"after":"a3339aab3bbc924c0f0b0255a179bf6ba825c511","ref":"refs/heads/sg/next","pushedAt":"2024-05-06T20:58:44.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"slimsag","name":"Stephen Gutekanst","path":"/slimsag","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3173176?s=80&v=4"},"commit":{"message":"Audio: duplicate mono sounds to all channels","shortMessageHtmlLink":"Audio: duplicate mono sounds to all channels"}},{"before":"cbf066ade52e1c53db9934d1d63889b112e5006e","after":"9d95fcf0c243db8e878e06de95d3a8d0f7d556b4","ref":"refs/heads/main","pushedAt":"2024-05-05T20:26:11.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"slimsag","name":"Stephen Gutekanst","path":"/slimsag","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3173176?s=80&v=4"},"commit":{"message":"Audio: always target 48000hz f32 audio\n\nResampling, which requires fairly involved (and certainly not free) filters,\nis needed if the audio we are mixing does not match the sample rate of the\noutput device. Most OS audio APIs support resampling on their own, but have\npreferred hardware formats. Most console hardware since Xbox/PS2/GC supposedly\nprefers 48khz natively, but otherwise there seems to be no big preference\nbetween 48khz or 44.1khz.\n\nThe important aspect is that we pick one, and encourage people to keep their\naudio in one, so that runtime resampling is not required (both in mach itself,\nand potentially without-our-knowledge in the OS audio system if we chose a\nsample rate which the native hardware does not prefer.)\n\nGeneral guidance will be:\n\n* `mach.Audio` module will always aim to select 48khz, f32 audio output from the\n OS APIs. Let the OS APIs do resampling, or if they do not then we can do so.\n* We will prefer 48khz, f32 audio samples everywhere internally in our basic audio\n mixing etc. APIs.\n* Tooling will aim to convert audio to Opus (or flac for lossless) format, with 48khz\n and number of channels depending on audio type (e.g. 1ch for most sfx, any number of\n channels for bgm, and maybe some exception for multi-channel sfx in the future.)\n\nSigned-off-by: Stephen Gutekanst ","shortMessageHtmlLink":"Audio: always target 48000hz f32 audio"}},{"before":"bffc66800584123e2844c4bc4b577940806f9088","after":"cbf066ade52e1c53db9934d1d63889b112e5006e","ref":"refs/heads/main","pushedAt":"2024-04-30T03:17:26.000Z","pushType":"pr_merge","commitsCount":19,"pusher":{"login":"slimsag","name":"Stephen Gutekanst","path":"/slimsag","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3173176?s=80&v=4"},"commit":{"message":"{gfx,examples}: improve sysgpu compatibility with higher-level examples\n\nSigned-off-by: Stephen Gutekanst ","shortMessageHtmlLink":"{gfx,examples}: improve sysgpu compatibility with higher-level examples"}},{"before":"36444b5f9511968cffa68d5b54106e06d7a65017","after":"61b3e51ce9c69cc83431f43c24be848c4e14bd79","ref":"refs/heads/core-api","pushedAt":"2024-04-30T01:29:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"slimsag","name":"Stephen Gutekanst","path":"/slimsag","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3173176?s=80&v=4"},"commit":{"message":"{gfx,examples}: improve sysgpu compatibility with higher-level examples\n\nSigned-off-by: Stephen Gutekanst ","shortMessageHtmlLink":"{gfx,examples}: improve sysgpu compatibility with higher-level examples"}},{"before":"9e030a2d7131add30cdbf6fbd4bc4d69db19b9dc","after":"36444b5f9511968cffa68d5b54106e06d7a65017","ref":"refs/heads/core-api","pushedAt":"2024-04-30T01:29:09.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"slimsag","name":"Stephen Gutekanst","path":"/slimsag","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3173176?s=80&v=4"},"commit":{"message":"Core: use an explicit .start event sent by app to begin .tick events\n\nSigned-off-by: Stephen Gutekanst ","shortMessageHtmlLink":"Core: use an explicit .start event sent by app to begin .tick events"}},{"before":"ce96b1d37fff2f8a3c2116607c606bae7a7e17cb","after":"9e030a2d7131add30cdbf6fbd4bc4d69db19b9dc","ref":"refs/heads/core-api","pushedAt":"2024-04-28T19:23:12.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"slimsag","name":"Stephen Gutekanst","path":"/slimsag","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3173176?s=80&v=4"},"commit":{"message":"Core: fix potential printTitle leak\n\nSigned-off-by: Stephen Gutekanst ","shortMessageHtmlLink":"Core: fix potential printTitle leak"}},{"before":null,"after":"ce96b1d37fff2f8a3c2116607c606bae7a7e17cb","ref":"refs/heads/core-api","pushedAt":"2024-04-28T18:46:07.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"slimsag","name":"Stephen Gutekanst","path":"/slimsag","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3173176?s=80&v=4"},"commit":{"message":"Core: use .app local init/deinit/tick events (avoid global events)\n\nSigned-off-by: Stephen Gutekanst ","shortMessageHtmlLink":"Core: use .app local init/deinit/tick events (avoid global events)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEUYECbwA","startCursor":null,"endCursor":null}},"title":"Activity · hexops/mach"}