63 lines
No EOL
2.3 KiB
Text
63 lines
No EOL
2.3 KiB
Text
|
|
- Audio
|
|
- Avoid playing identical audio at the same time
|
|
- Allow audio programming
|
|
- Inject mixer proc per player
|
|
- Inject a mixer proc before and after filling output buffer
|
|
- Better spacialization
|
|
- Fix vorbis >FILE< streaming (#StbVorbisFileStream)
|
|
- Handle audio sources which had their format defaulted to update when default device changes
|
|
For streamed audio sources this should be easy enough, because the conversion happens from raw format to source format as we stream it.
|
|
For loaded sources though, we would need to convert the source->pcm_frames.
|
|
- Optimize
|
|
- Spam simd
|
|
- Concurrent jobs for players?
|
|
- Pool of intermediate buffers (2^)
|
|
- Bugs:
|
|
- Small fadeout on pause is slightly noisy
|
|
- Setting time stamp/progression causes noise (need fade transition like on pause/play)
|
|
- End of clip also causes noise if audio clip does not end smoothly
|
|
- Setting audio source to a format which differs from audio output format in both channels and bit_width at the same time will produce pure loud noise.
|
|
- 24-Bit audio conversion doesn't really work
|
|
|
|
- General bugs & issues
|
|
- Window width&height is zero when minimized (and we make a 0x0 swap chain)
|
|
- Window positioning & sizing is fucky wucky
|
|
- Memory error messages are misleading when no VERY_DEBUG
|
|
|
|
- Renderer
|
|
- API to pass constant values to shader (codegen #define's)
|
|
- Draw_Frame instances
|
|
- Or draw to a custom Quad_Buffer, then draw quad buffers ?
|
|
- draw_deferred ?
|
|
- Draw_Frame Render_Image
|
|
|
|
- Fonts
|
|
- Atlases are way too big, render atlases with size depending on font_height (say, 128 codepoints per atlas)
|
|
|
|
- OS
|
|
- Window::bool is_minimized
|
|
- don't set window.width & window.height to 0
|
|
- Sockets recv, send
|
|
- Mouse pointer
|
|
- Hide mouse pointer
|
|
|
|
- Memory
|
|
- In heap allocator, mark pages that fit entirely into free nodes as NOACCESS
|
|
- Arenas
|
|
|
|
- Examples/Guides:
|
|
- Scaling text for pixel perfect rendering
|
|
- Z sorting
|
|
- Scissor boxing
|
|
- Concurrency
|
|
|
|
- Rework profiler
|
|
- Store records and convert to google trace format on exit
|
|
- Measure both time and cycles, output a google_trace_cycles.json & google_trace_time.json
|
|
|
|
- Needs testing:
|
|
- Audio format channel conversions
|
|
- sample rate downsampling
|
|
- non stereo or mono audio
|
|
- Audio spacialization on anything that's not stereo |