Commit Graph

331 Commits (e961a18a839b2c447f8a4b2ea0cf4ae8e19c3598)

Author SHA1 Message Date
cosmonaut efb9893aef Theora video support + audio improvements (#20)
- `SoundInstance.Play` no longer takes a loop parameter
- `SoundInstance.Stop` is split into `Stop` and `StopImmediate` instead of taking an immediate parameter
- Added `StreamingSoundSeekable` to better support streaming audio that does not support seek
- `StreamingSound` no longer has a Loop property, but `StreamingSoundSeekable` does
- abstract `StreamingSound.AddBuffer` renamed to `FillBuffer`
- `FillBuffer` is now provided with a native buffer to avoid an extra data copy
- `StreamingSound` buffer implementation optimized to avoid repeated alloc/frees

- added `Video` class which can load and play Theora (.ogv) streaming video/audio

Reviewed-on: #20
2022-08-02 21:04:12 +00:00
cosmonaut 5a5fbc0c77 handle OS window size changes 2022-07-28 16:06:50 -07:00
cosmonaut 40a2b31e90 add StartMaximized flag to WindowCreateInfo 2022-07-28 16:06:37 -07:00
cosmonaut 424f410688 add SystemResizable flag to WindowCreateInfo 2022-07-26 19:08:21 -07:00
cosmonaut f6fc80804e improve gamepad init and support hotplugging 2022-07-13 11:53:09 -07:00
cosmonaut 646e5e9283 empty virtual button 2022-07-12 17:57:37 -07:00
cosmonaut ab619192a6 combine button states 2022-07-12 17:57:27 -07:00
cosmonaut d07a722fb1 VirtualButton system 2022-07-12 16:09:23 -07:00
cosmonaut 3543f074f4 fix erroneous Normalize 2022-07-12 16:06:13 -07:00
cosmonaut d3e124cea1 reset AnyPressedButton at start of Update 2022-07-08 16:52:37 -07:00
cosmonaut 1cf3a13541 Inputs.AnyPressed implementation 2022-07-08 16:47:12 -07:00
cosmonaut db5ca97726 Packer.TextBounds 2022-06-30 16:24:28 -07:00
cosmonaut d190df55b2 update wellspring 2022-06-30 13:25:52 -07:00
cosmonaut 1aa522ffa1 avoid TextBatch.Draw smashing the stack with big strings 2022-06-30 13:24:51 -07:00
cosmonaut a9b3b53ce9 add optional Destroy method to Game 2022-06-23 23:59:23 -07:00
cosmonaut d32bbcd537 radian and degree conversions on Fix64 2022-06-21 11:20:32 -07:00
cosmonaut b23792acd0 remove empty struct constructors for language compatibility 2022-06-20 13:04:44 -07:00
cosmonaut 2f5d25b458 Fix64 random fix 2022-06-16 00:51:02 -07:00
cosmonaut ba662d7c3e add Fix64 random range 2022-06-14 18:25:37 -07:00
cosmonaut c1085db9c5 add store ops to depth stencil attach info struct 2022-06-08 17:15:14 -07:00
cosmonaut bb0b6daa91 Fix64.Fractional 2022-06-07 17:01:44 -07:00
cosmonaut 13519c3150 fix stencil clear 2022-06-06 18:44:03 -07:00
cosmonaut 6ab7a2f722 read ShaderModules from stream 2022-06-06 10:42:05 -07:00
cosmonaut 436affe5de remove some unnecessary qualifiers 2022-06-05 12:29:35 -07:00
darkerbit ff544140e0 add file drop API 2022-06-05 12:27:46 -07:00
cosmonaut 26e7e5c809 move mouse wheel reset to sensible location 2022-06-04 15:51:19 -07:00
cosmonaut d2a51ce524 decouple fixed timestep from draw, add frame cap 2022-06-04 15:48:55 -07:00
cosmonaut 5a9709c843 revert Game and GameState change 2022-06-01 18:31:22 -07:00
cosmonaut 0e8188682e game state now changes on next update 2022-05-23 19:12:27 -07:00
cosmonaut 9862bfd0a0 TextureSamplerBinding now stores IntPtrs 2022-05-23 19:12:17 -07:00
cosmonaut 4756fe2b14 add SetMasteringVolume method to AudioDevice 2022-05-23 19:11:48 -07:00
cosmonaut e5c72c6f46 add lerp to Fix64 2022-05-18 18:28:53 -07:00
cosmonaut 318ca22021 add default case for clarity 2022-05-15 12:16:41 -07:00
cosmonaut 547f7a388e add Fix64 random methods 2022-05-15 12:16:41 -07:00
cosmonaut dd3fb75905 fix DDS mip level loader 2022-05-14 10:31:56 -07:00
cosmonaut 2bd88e1dc1 add a few useful functions 2022-05-13 16:26:26 -07:00
cosmonaut 66d363459b improve DDS format support 2022-05-12 11:21:07 -07:00
cosmonaut b22d3bed30 add DDS and BC7 support 2022-05-11 21:22:20 -07:00
cosmonaut 0d93207ae9 Fixed Point Math (#19)
Reviewed-on: #19
2022-05-11 17:34:09 +00:00
cosmonaut a0082bcec6 change Marshal.SizeOf to sizeof 2022-04-27 14:14:15 -07:00
cosmonaut 810f270a41 blittable button identifiers 2022-04-27 11:37:35 -07:00
cosmonaut 27e0404ec0 expose Line properties + no-ID retrieve 2022-04-21 16:04:40 -07:00
cosmonaut be4b5cf2c7 fix audio not being disposed in correct order 2022-04-20 14:57:24 -07:00
cosmonaut 83eb268a4a add audio Seek functionality 2022-04-20 14:29:46 -07:00
cosmonaut 985e096a7b add Update and Remove to SpatialHash2D 2022-04-20 10:57:16 -07:00
cosmonaut dccd81e029 change collision API to support multi shapes 2022-04-18 11:33:40 -07:00
cosmonaut 65568ea234 Font rendering update 2022-04-13 15:10:23 -07:00
cosmonaut 61a6d0bdc0 Font Rendering (#18)
Adds a font rendering system based on Wellspring.

Reviewed-on: #18
2022-04-13 03:06:14 +00:00
cosmonaut 72c9dd4bda close vorbis stream before freeing data 2022-04-08 00:17:58 -07:00
cosmonaut 412f0ca179 game state system 2022-04-08 00:03:42 -07:00
cosmonaut b252d0eb92 forgot that C# arrays are not just memory 2022-04-07 15:11:14 -07:00
cosmonaut ba66ed4225 stream ogg from memory instead of disk 2022-04-07 14:19:43 -07:00
cosmonaut 5e2b8de2d3 Spatial Hash Retrieve returns collision groups 2022-04-06 20:25:46 -07:00
cosmonaut 35ded250ed some more collision fast paths 2022-04-05 17:31:27 -07:00
cosmonaut f8146b799a store rectangle properties as ints 2022-04-05 16:35:55 -07:00
cosmonaut 4b4abaab01 fix AABB2D transform method 2022-04-05 16:06:34 -07:00
cosmonaut 6a1fa004d6 set loop on play instead of construct 2022-04-05 16:05:42 -07:00
cosmonaut b1b6b84809 WAV static sounds + static sound instance pool 2022-04-04 23:33:36 -07:00
cosmonaut 08a3c01f66 add Vector2.Angle 2022-03-31 15:31:53 -07:00
cosmonaut ec5160c060 add int variant to MathHelper.Approach 2022-03-31 14:51:18 -07:00
cosmonaut c96c7a0d90 MathHelper.Approach should not return delta 2022-03-29 00:11:50 -07:00
cosmonaut f0d3dfccf9 add collision mask system to spatial hash 2022-03-25 15:11:38 -07:00
cosmonaut 9f4b69e6aa keyboard uses Button instead of ButtonState 2022-03-24 16:41:00 -07:00
cosmonaut 80c34c6b16 Collision API (#17) 2022-03-24 06:07:34 +00:00
cosmonaut cc876b2132 GetGamepad no longer throws if slot is empty 2022-03-18 12:11:00 -07:00
cosmonaut 71d9f8f4fe remove unnecessary setters and add doc comments 2022-03-18 11:58:10 -07:00
cosmonaut 5050a9369d Input API rework 2022-03-18 11:46:44 -07:00
cosmonaut 3623e6b07c add debug exception for binding a null texture 2022-03-17 14:42:43 -07:00
cosmonaut 1b5221f2c7 vertex format ABI break 2022-03-17 14:42:30 -07:00
cosmonaut 0fb7e98cb5 add Vector2.Transform Matrix3x2 overload 2022-03-15 23:02:38 -07:00
cosmonaut 5424d05d63 RasterizerState ABI break 2022-03-14 10:48:31 -07:00
cosmonaut 2a9286f31e Clear and AcquireSwapchainTexture ABI break 2022-03-10 10:25:41 -08:00
cosmonaut 8f9aaf6d61 ButtonState is now a struct 2022-03-07 10:54:52 -08:00
cosmonaut cf2d8473a1 renderArea NULL inputs 2022-03-06 22:33:12 -08:00
cosmonaut b5b0f35b50 SetViewport and SetScissor doc comments 2022-03-04 14:14:22 -08:00
cosmonaut 527f47436a Refresh 1.2.0 2022-03-04 13:21:52 -08:00
cosmonaut 40d9cdd33a add element-wise SetBufferData overload 2022-03-04 10:00:29 -08:00
cosmonaut a413863cf9 add Size property to Buffer 2022-03-03 17:18:38 -08:00
cosmonaut 17333cfb67 destroy update 2022-03-03 17:16:39 -08:00
cosmonaut 111df04c0f fix some Window stuff 2022-03-02 14:46:55 -08:00
cosmonaut 9c83423c79 add buffer creation convenience method 2022-03-02 14:29:43 -08:00
cosmonaut 7d3a7901b2 convenience constructors for graphics state 2022-03-02 13:57:30 -08:00
cosmonaut 278db7d55b fix a few missing renames 2022-03-02 11:45:37 -08:00
cosmonaut 774028a013 D3D compatibility ABI break 2022-03-02 11:42:26 -08:00
cosmonaut f6369b6bce add some notes to AcquireSwapchainTexture 2022-03-02 10:13:52 -08:00
cosmonaut c34f74a99d do not destroy untracked resource 2022-03-02 09:58:32 -08:00
cosmonaut d6606d90f6 AcquireSwapchainTexture nullable 2022-03-02 09:39:23 -08:00
cosmonaut ef10be4e9d add some shortcut defaults to structs 2022-03-01 23:32:44 -08:00
cosmonaut 1fa73f0275 more presentation API improvements 2022-03-01 23:21:42 -08:00
cosmonaut 81c882bd48 presentation ABI break 2022-03-01 22:57:10 -08:00
cosmonaut 7328cbc13d add some constructors to reduce boilerplate 2022-02-25 18:01:22 -08:00
cosmonaut 32b269526f Blend state ABI break 2022-02-25 17:50:08 -08:00
cosmonaut 9028a8b1a0 remove Window namespace 2022-02-25 13:23:31 -08:00
cosmonaut edd21ec573 remove count from managed GraphicsPipelineAttachmentInfo 2022-02-25 11:10:35 -08:00
Caleb Cornett 2469cf530a Capitalized attachment info struct member names 2022-02-25 11:17:37 -05:00
cosmonaut e5213da686 fix clear color conversion 2022-02-24 22:06:29 -08:00
cosmonaut 1064bae828 Render Pass Streamlining (#14)
Changes as per a531fb8593

Reviewed-on: #14
Co-authored-by: cosmonaut <evan@moonside.games>
Co-committed-by: cosmonaut <evan@moonside.games>
2022-02-25 05:34:36 +00:00
cosmonaut 8a3d93d2dc intellisense improvement + API tweak 2022-02-22 22:16:06 -08:00
cosmonaut 8973b3e658 Formatting pass 2022-02-22 21:14:32 -08:00
cosmonaut a0c57c7a59 Cleanup fixes 2022-02-22 16:44:39 -08:00
cosmonaut 5679dba978 Actually dispose graphics resources 2022-02-22 14:29:50 -08:00
cosmonaut cb25e6feff resource destroy now requires a CB 2022-02-18 21:02:16 -08:00
cosmonaut 4acc2588e1 QueuePresent ABI break 2022-02-08 17:17:51 -08:00
cosmonaut 8022cd1011 add DispatchCompute to command buffer 2022-01-17 20:39:03 -08:00
cosmonaut d2fca3654b never mind on SetDataOptions, bad idea 2022-01-13 14:48:32 -08:00
cosmonaut a5c8ebfc3a update buffer upload ABI 2022-01-13 14:29:08 -08:00
cosmonaut 7d7437721c uniforms are now pushed via command buffer 2022-01-12 13:01:32 -08:00
cosmonaut 0c588b96f4 add more info to Texture 2022-01-10 12:20:01 -08:00
cosmonaut 1fe256a479 get rid of badly conceived command buffer queue 2022-01-10 12:11:24 -08:00
cosmonaut 9df9aaeb3a update texture SetData API 2021-11-14 21:08:02 -08:00
cosmonaut 9f588d389b tighten game loop timing 2021-07-23 15:47:02 -07:00
cosmonaut a337b94dfa .NET 5 2021-07-23 14:33:16 -07:00
cosmonaut 681e620477 add mouse wheel support 2021-03-26 12:20:05 -07:00
cosmonaut 3b83eb41da add LookAt method to Quaternion 2021-03-26 12:07:46 -07:00
cosmonaut 984e30cc4c add system for text input 2021-03-25 15:57:26 -07:00
cosmonaut ccefe570db add meta keys to keycodes 2021-03-23 17:38:53 -07:00
cosmonaut 7ecb27c98a add vibration support + fix controller axes 2021-03-09 21:48:31 -08:00
cosmonaut 5eb5027bf1 initial 3D audio implementation 2021-02-26 16:17:26 -08:00
cosmonaut 8e627c9b18 add window resize function 2021-02-24 13:03:39 -08:00
cosmonaut b928257d3c document lots of graphics stuff 2021-02-24 12:43:35 -08:00
cosmonaut 72c676a1e0 add doc comments to CommandBuffer 2021-02-23 23:41:14 -08:00
cosmonaut 09c03fece9 add Matrix3x2 and rename Matrix to Matrix4x4 2021-02-16 18:07:50 -08:00
cosmonaut e6fa95b823 rework sampler binding API call 2021-02-11 12:25:12 -08:00
cosmonaut 44cd77eecb fix orthographic projection for vulkan NDC space 2021-02-10 18:13:24 -08:00
cosmonaut dc59b851d4 fix begin render pass 2021-02-10 17:15:46 -08:00
cosmonaut d1e691a02b change clear color type 2021-02-09 22:51:30 -08:00
cosmonaut aab0917603 fix clear options input 2021-02-08 19:22:27 -08:00
cosmonaut 4eb2cb6b09 some state tweaks 2021-02-08 18:10:02 -08:00
cosmonaut 29a86c2040 move uniform pushes to pipeline 2021-02-05 19:51:10 -08:00
cosmonaut 0daf548fd3 update uniform API 2021-02-02 16:34:40 -08:00
cosmonaut 68bb51439f change type buffer setdata to use element offset and length 2021-02-01 22:53:24 -08:00
cosmonaut ada9a1bb05 rename params to uniforms 2021-01-31 21:18:43 -08:00
cosmonaut c62edbdf91 rename ShaderParams to ShaderUniforms 2021-01-31 19:39:41 -08:00
cosmonaut 9e4007f9f0 buffer setData tweak and pin depthstenciltargetdescription 2021-01-28 21:49:33 -08:00
cosmonaut 55d8e5a1df remove FileInfo references 2021-01-28 18:07:48 -08:00
cosmonaut eda1efedbe properly destroy audio 2021-01-28 18:01:42 -08:00
cosmonaut c65485a31c use in for graphicspipelinecreateinfo 2021-01-28 17:44:12 -08:00
cosmonaut addea0f810 reverting to CreateInfo pattern for consistency 2021-01-28 13:50:20 -08:00
cosmonaut 9b06225d7d capitalize struct fields 2021-01-27 14:02:57 -08:00
cosmonaut 5524e501f3 add explicit resource dependencies to graphics resource objects 2021-01-27 14:02:46 -08:00
cosmonaut 186b025b4d add depth buffer create shortcuts 2021-01-26 21:18:55 -08:00
cosmonaut d10f018f14 fix graphics resources disposing out of order 2021-01-26 21:06:15 -08:00
cosmonaut 7f6236cb49 update render target and texture format API 2021-01-26 19:10:09 -08:00
cosmonaut 6ce1ce21b8 remove more of refresh from the API 2021-01-26 17:39:20 -08:00
cosmonaut b93945c51b draw every loop 2021-01-26 14:09:10 -08:00
cosmonaut a55cd83123 update sampler definition 2021-01-25 20:57:26 -08:00
cosmonaut 66e0fe9924 remove Bit from flags enum 2021-01-25 20:47:39 -08:00
cosmonaut ce27a4bc4c adding some GetDatas and SetDatas 2021-01-25 18:18:25 -08:00
cosmonaut 0dcb103994 rename Window to OSWindow for namespacing + add alpha timing to draw 2021-01-25 13:02:35 -08:00
cosmonaut 2978528f3b set a more sensible max delta time 2021-01-22 23:43:48 -08:00
cosmonaut a3307c0066 input refactor 2021-01-22 14:41:34 -08:00
cosmonaut 12c5f37ae9 update Clear 2021-01-22 14:16:38 -08:00
cosmonaut f84c4dad26 make BindVertexSamplers like BindFragmentSamplers 2021-01-22 13:57:49 -08:00
cosmonaut c02c23bc16 change BindIndexBuffer 2021-01-22 13:56:24 -08:00
cosmonaut 94a260ebd1 add convenience overload to BindVertexBuffers 2021-01-22 13:54:49 -08:00
cosmonaut e4f68ae1df fix mouse button input 2021-01-22 12:48:56 -08:00
cosmonaut 45861e122d math struct layouts + change Matrix projections to use right handed NDC space 2021-01-22 00:46:22 -08:00
cosmonaut f2487cd71b add mouse input + move inputs to Input namespace 2021-01-22 00:20:07 -08:00
cosmonaut 1e77ad2cb4 remove another RefreshCS thing from the API 2021-01-21 19:55:09 -08:00
cosmonaut db44c3e37a change refs + a SetData convenience method 2021-01-21 17:27:25 -08:00
cosmonaut a6ea645e91 some API tweaks 2021-01-21 14:05:10 -08:00
cosmonaut 0cdc398e43 rearrange Color struct 2021-01-20 16:09:29 -08:00
cosmonaut a025e9ad76 Color and PackedVector 2021-01-20 15:16:37 -08:00
cosmonaut e251d30aa9 Math 2021-01-20 14:44:59 -08:00
cosmonaut d22a70c116 removing explicit RefreshCS references in API 2021-01-20 13:32:48 -08:00
cosmonaut 52b60b66f4 whoops that shouldn't be in there 2021-01-20 12:42:36 -08:00
cosmonaut 58427b8c90 refactor sound API to support generic decoding 2021-01-20 12:39:31 -08:00
cosmonaut ab8a7846dd allow static sound to be trimmed 2021-01-20 11:13:55 -08:00
cosmonaut 481c17945a fix static sound length 2021-01-20 11:03:26 -08:00
cosmonaut ffc51cca18 fix dynamic looping 2021-01-20 10:55:15 -08:00
cosmonaut ec09a5952b attach reverb 2021-01-19 22:06:23 -08:00
cosmonaut ec28d17a75 fix static sound loading + window title 2021-01-19 21:33:25 -08:00
cosmonaut adf047955e handle quit 2021-01-19 20:23:09 -08:00
cosmonaut 408e438efc fix invalid cast 2021-01-19 20:08:00 -08:00
cosmonaut bc69931042 small style change 2021-01-19 19:34:26 -08:00
cosmonaut 2cabaa6186 replace Campari with MoonWorks.Graphics 2021-01-19 19:33:27 -08:00
cosmonaut 2b58edb257 more audio implementation 2021-01-19 19:26:30 -08:00
cosmonaut 768bf38e3f starting audio implementation 2021-01-19 18:06:10 -08:00
cosmonaut 55cd87ab28 more window init stuff 2021-01-19 11:24:23 -08:00
cosmonaut adc06fb4fc gamepad constructor should be internal 2021-01-18 23:47:34 -08:00
cosmonaut 7d3932da9b initial input handling 2021-01-18 23:29:07 -08:00