Commit graph

2666 commits

Author SHA1 Message Date
Corwin 8aee2753f9
add changelog 2023-05-11 19:59:13 +01:00
Gwilym Inzani 70e2927d1e GBA hated this bit_mix function 2023-05-10 19:21:07 +01:00
Gwilym Inzani a4a2856cb7 Stop searching if we've already overshot where it could be 2023-05-10 19:20:49 +01:00
Gwilym Inzani bb5bd04b5f Make clear faster 2023-05-10 18:13:32 +01:00
Gwilym Inzani 943fd1154f Use const fn to make resizes a bit faster 2023-05-10 18:08:39 +01:00
Gwilym Inzani 65dd1341e5 Change hash mixing and add distance_histogram method 2023-05-10 17:49:48 +01:00
Gwilym Inzani 1fa4d8e970 Rename the tests to make them easier to compare 2023-05-10 16:20:58 +01:00
Gwilym Inzani 626e4da8e4 Massively improve high bit benchmarks with some bit mixing 2023-05-10 16:14:04 +01:00
Gwilym Inzani 82855ac66b Remove unsafe from clone 2023-05-10 16:02:21 +01:00
Gwilym Inzani 925baced46 Use backing_vec_size rather than nodes.len() 2023-05-10 16:01:24 +01:00
Gwilym Inzani c5341cb5fa Add benchmarks 2023-05-10 16:01:16 +01:00
Gwilym Inzani 7873f9ed5c More unsafe where needed 2023-05-09 22:43:06 +01:00
Gwilym Inzani f530276638 Use a concrete type for hash 2023-05-09 22:38:04 +01:00
Gwilym Inzani 7b8ad58906 Extend clippy lints 2023-05-09 22:10:53 +01:00
Gwilym Inzani 05f387e41f Don't do unsafe things with entries 2023-05-09 22:00:13 +01:00
Gwilym Inzani 722deafc2f Add safety comments 2023-05-09 21:55:14 +01:00
Gwilym Inzani 35061ffb6a deny(unreachable_pub) 2023-05-09 21:46:57 +01:00
Gwilym Inzani 68e68386a1 Improve implementation of next 2023-05-09 21:44:14 +01:00
Gwilym Inzani b3e56e88f2 Use ? rather than if let 2023-05-09 21:39:35 +01:00
Gwilym Inzani 9205ba1d0d Simplify get_mut implementation 2023-05-09 21:37:52 +01:00
Gwilym Inzani 917163f88b Key value ref unchecked 2023-05-09 21:37:20 +01:00
Gwilym Inzani dc8589479e We know the location is correct here 2023-05-09 21:34:16 +01:00
Gwilym Inzani 4d4ca80004 Add a bit of unsafe in the entry API 2023-05-09 21:33:20 +01:00
Gwilym Inzani 6f1f7811e2 Copy standard library tests 2023-05-09 21:12:28 +01:00
Gwilym Inzani f34f42ab4c Implement debug 2023-05-09 21:12:22 +01:00
Gwilym Inzani e9f6120b4c Implement Eq and PartialEq 2023-05-09 21:09:44 +01:00
Gwilym Inzani 5decb42cf0 Implement clone for hashmap 2023-05-09 21:05:00 +01:00
Gwilym Inzani 1cdf23683a Extract node_storage as well 2023-05-09 20:57:33 +01:00
Gwilym Inzani 5e04e8c03f Extract node module 2023-05-09 20:43:23 +01:00
Corwin 1cbc371d3e
go through colours in order rather than randomly 2023-05-07 23:41:17 +01:00
Corwin 64308a993c
use mag squared 2023-05-07 00:47:38 +01:00
Corwin 83c511a186
neaten the letter M 2023-05-06 23:59:47 +01:00
Corwin 7ae3afab6c
add example for no_game 2023-05-06 22:54:22 +01:00
Corwin cb8b42d416
don't use the loader 2023-05-06 22:53:09 +01:00
Corwin d4314213da
use palette in no game to save on not useful aseprite file 2023-05-06 22:45:30 +01:00
Corwin f95d68187b
make dynamic sprite better 2023-05-06 22:45:05 +01:00
Corwin e8479c093b
add macro to import a palette from a sprite 2023-05-06 22:44:43 +01:00
Corwin 13f0eaf5b0
add more colours 2023-05-06 20:31:52 +01:00
Corwin 26090499e7
fix image converter bug 2023-05-06 20:31:43 +01:00
Corwin 54340358bc
remove unused import 2023-05-06 19:44:08 +01:00
Corwin 1d7cc04cbf
more colours 2023-05-06 19:11:39 +01:00
Corwin 0271da6d43
add a no game 2023-05-06 18:50:35 +01:00
Corwin a0ead37eb5
Add amplitude to build (#424)
- [x] no changelog update needed
2023-04-26 01:45:19 +01:00
Corwin 5f745d9409
Combo: Launch the correct game (#423)
- [x] no changelog update needed
2023-04-26 01:41:14 +01:00
Corwin ea0149e6c3
add amplitude to build 2023-04-26 01:37:37 +01:00
Corwin d08500d9c3
launch the correct game 2023-04-26 01:34:25 +01:00
Corwin 400abe5b31
Release v0.15.0 2023-04-25 21:51:29 +01:00
Corwin b5d8201eb0
Add toolchain file for hashmap (#422)
- [x] no changelog update needed
2023-04-25 21:49:52 +01:00
Corwin febee09e3a
add toolchain file 2023-04-25 21:43:17 +01:00
Corwin 68e981f3c8
Objects, again, again (#402)
* A redesign of objects giving the option of a more managed and an
unmanaged system.
* Managed system features
    * Z ordering (should be efficient, based on a doubly linked list).
* More than 128 objects if some are disabled (not currently efficient).
* Unmanaged
    * Same sprite system as before.
    * You control how objects get put in to OAM with the unmanaged OAM.
    
TODO before this is mergable:
* [x] Docs pass, aim for everything to have docs as before.
* [x] Tests, some of these needs some run time testing.
* [x] Affine matrices, I'm not leaving this to die this time.
* [x] Some API redo, so the names make sense / are similar to before.

Future work:
* The Sprite loader should keep most recently used sprites around and
upon allocation of a new sprite try unloading the least recently used
sprite. (Performance wise this would be a disaster as it would be doing
dealloc and alloc in vblank, so really we want to "learn" how much
buffer we should maintain and try to get that during GC).

- [x] Changelog updated
2023-04-25 21:14:49 +01:00