Lioncash
4d91a1b3c3
BooObject: Make atomic ordering constraints less strict
...
Increasing a reference count is able to always be relaxed. New
references to an object can only be formed from an existing reference.
The passing of an existing reference from one thread to another will
already necessitate the use of synchronization primitives, so this is a
safe change to make. Regardless, nothing other than the object itself
directly relies on the reference count, so this will always be a
suitably atomic operation, even in the face of no synchronization
primitives.
In the case of decrementing the reference count, it's sufficient to
treat it with release semantics and follow it up with an atomic thread
fence. This ensures that all accesses to the object in one thread will
occur before the delete occurs in another thread (if the situation ever
occurs).
This should make for a slightly more efficient increment and decrement.
2019-08-17 13:08:10 -04:00
Phillip Stephens
c33604b8cb
Merge pull request #19 from lioncash/move
...
DeviceToken: Amend move constructor
2019-08-16 18:34:22 -07:00
Lioncash
88355ada5f
General: Convert typedefs into using aliases
2019-08-16 18:27:23 -07:00
Lioncash
78ce16aa9f
General: Make use of nullptr where applicable
2019-08-16 18:27:23 -07:00
Lioncash
80c1103b44
General: Make member functions const where applicable
...
These functions don't modify instance state, so they can be marked
const.
2019-08-16 18:27:23 -07:00
Lioncash
3c9866d697
DeviceToken: Amend move constructor
...
The default move constructor isn't const qualified. The copy assignment
operator wasn't deleted either which is somewhat dangerous. We can also
opt for simply defaulting the move constructor and assignment operators
instead of defining the move constructor like a copy constructor.
2019-08-16 04:49:48 -04:00
Lioncash
d4cd2b4dce
General: Make use of override where applicable
...
Continues the override modernizations, but now targeting boo.
2019-08-12 22:44:45 -04:00
Jack Andersen
ae5d7e5131
Add support for debug groups in OpenGL and Vulkan
2019-07-20 22:41:07 -10:00
Jack Andersen
deefc8e995
Massive fmtlib refactor
2019-07-19 18:22:36 -10:00
Phillip Stephens
35732d33f5
Fix macOS and Windows builds
2019-06-30 20:13:12 -07:00
Jack Andersen
c5f8a11850
Merge branch 'master' of ssh://git.axiodl.com:6431/AxioDL/boo
2019-06-20 20:01:43 -10:00
Jack Andersen
8a181b96ce
Add areShadersReady poll function
2019-06-20 20:01:27 -10:00
Phillip Stephens
87138bbe0e
Compile fixes
2019-06-20 15:43:27 -07:00
Jack Andersen
7eda81e55e
Initial support for asyncronous shader pipeline compilation
2019-06-15 20:24:28 -10:00
Jack Andersen
99519d3882
Cubemap support for metal
2019-06-02 21:51:03 -10:00
Jack Andersen
18bb6e7439
Cubemap support for D3D11
2019-05-31 23:27:11 -10:00
Jack Andersen
18faf55750
Add support for cubemap textures in GL and Vulkan
2019-05-31 17:39:55 -10:00
Jack Andersen
3ad748f28b
Increase max texture count to 12
2019-05-07 17:46:31 -10:00
Jack Andersen
c1d3d040bf
Add True and False tests for bitwise enums
2019-04-02 18:28:39 -10:00
Jack Andersen
af50240143
Add DXT3 texture format
2019-03-02 20:16:12 -10:00
Jack Andersen
66cf60ea55
No overwrite alpha by default
2019-02-26 18:35:21 -10:00
Jack Andersen
45db327fb3
Remove vsync thread from X11 backend
2019-02-11 21:18:35 -10:00
Jack Andersen
9658d1372d
Additional methods for SScrollDelta
2019-01-21 18:23:22 -10:00
Jack Andersen
8333536a7c
VertexFormatInfo constructor tweak
2019-01-02 17:46:48 -10:00
Jack Andersen
3a8defb5eb
Minor bitwise enum macro change
2018-12-15 20:30:13 -10:00
Jack Andersen
058ea23a00
New code style refactor
2018-12-07 19:17:51 -10:00
Jack Andersen
54676aff91
early return case for setClampMode
2018-11-07 14:52:25 -10:00
Jack Andersen
b6d40fde97
Add startInst argument to drawInstanced
2018-11-04 21:24:38 -10:00
Jack Andersen
9adf481c8e
Remove FLIPFROMGL macro from GLSL header
2018-10-15 21:26:02 -10:00
Jack Andersen
65c99ad769
macOS API sync
2018-10-15 17:13:57 -10:00
Jack Andersen
592ffa1372
Windows sync for API changes
2018-10-14 09:59:19 -10:00
Jack Andersen
0b52f3dbab
Convert to pragma once
2018-10-06 17:36:44 -10:00
Jack Andersen
c29d837ab5
Huge shader infrastructure refactor
2018-10-06 16:49:22 -10:00
Jack Andersen
08d632a8bd
Multichannel WAVOut
2018-09-03 14:14:59 -10:00
Jack Andersen
8ee04c8f1a
Sync macOS with API changes
2018-08-27 17:46:33 -10:00
Jack Andersen
168fb3f516
ALSA MIDI fixes
2018-08-18 14:28:00 -10:00
Jack Andersen
5e58e989a8
Remove ALSA audio backend
2018-08-18 12:08:58 -10:00
Jack Andersen
fe7f671c0b
Add Qt Application type
2018-07-16 12:39:40 -10:00
Jack Andersen
abbd3167b2
Implement Metal tessellation shaders
2018-06-11 15:13:34 -10:00
Jack Andersen
2a45cf90d8
Implement tessellation shaders for D3D11
2018-06-07 14:42:43 -10:00
Jack Andersen
4a19ac1e83
OpenGL and Vulkan support for tessellation shaders
2018-06-06 18:36:17 -10:00
Jack Andersen
3028e34b51
Silent audio mixing fix; Xlib Vulkan destruction order fix
2018-05-28 09:28:36 -10:00
Jack Andersen
d5ec7bcc1e
Slab allocation of VkDescriptorPools
2018-05-27 11:35:21 -10:00
Jack Andersen
19014e0ba7
synchronize macOS with latest changes
2018-05-26 11:29:19 -10:00
Jack Andersen
84df8af28c
Windows build fixes and cleanups
2018-05-24 20:30:42 -10:00
Jack Andersen
721d10919b
Huge Vulkan refactor
2018-05-21 21:48:13 -10:00
Jack Andersen
eaff1ba744
Vulkan backend fixes
2018-05-20 12:37:26 -10:00
Jack Andersen
578432eb2f
OpenGL and Vulkan resource tracing
2018-05-19 20:11:49 -10:00
Jack Andersen
edf2c1e34d
Add PulseAudio backend. Various Xlib fixes
2018-05-06 12:44:31 -10:00
Jack Andersen
edd26fc65b
Add shader mode for constant alpha overwrite
2018-02-04 20:52:54 -10:00
Jack Andersen
25dfeb64aa
Fix swapped L/R button bits
2018-02-02 14:33:49 -10:00
Jack Andersen
72c9809655
Add ClampToEdgeNearest texture mode
2018-02-01 13:12:42 -10:00
Jack Andersen
5b62fcd826
Metal API validation fixes
2018-01-24 20:55:42 -10:00
Jack Andersen
25dc238c44
Xlib deep color support
2018-01-21 21:33:47 -10:00
Jack Andersen
93c787dcd4
Gamma correction for Vulkan, D3D, OpenGL
2018-01-21 12:01:52 -10:00
Jack Andersen
2df85e8f8b
More fixes
2018-01-19 19:50:01 -10:00
Jack Andersen
337c276ccb
WTF
2018-01-19 17:02:29 -10:00
Jack Andersen
3d987b6dc9
Add deep color arg to ApplicationRun
2018-01-15 20:29:43 -10:00
Jack Andersen
4257fc0b10
MSAA and Anisotropic filtering variables
2018-01-09 20:15:18 -10:00
Jack Andersen
1dc69c3468
Work on MSAA support
2018-01-06 19:17:14 -10:00
Jack Andersen
db82ba674b
Add clearDepth parameter to resolveBindTexture()
2018-01-05 20:49:54 -10:00
Jack Andersen
142c0c7dcd
Use locally available glew.h
2017-12-30 18:56:25 -08:00
Jack Andersen
2ada7130d3
Make WIN32 vulkan macro target-wide
2017-12-29 15:06:44 -10:00
Jack Andersen
fa8989bed3
Huge compile performance refactor
2017-12-28 21:54:26 -10:00
Jack Andersen
02dc5a2a97
GameCube controller calibration fix
2017-12-19 20:04:11 -10:00
Phillip Stephens
beb7f00b18
Merge commit '50ee248'
2017-12-15 18:10:28 -08:00
Phillip Stephens
50ee248391
Expose VID/PID APIs
2017-12-15 18:09:56 -08:00
Jack Andersen
e0aa15610b
macOS IOKit interface fixes; callback-change mutex for controllers
2017-12-15 13:35:54 -10:00
Jack Andersen
62c2b1ffac
UWP fixes
2017-12-06 18:08:44 -10:00
Jack Andersen
f228f23661
UWP support
2017-12-05 17:20:59 -10:00
Jack Andersen
489e7e671b
Allocate submixes and voices using boo::ObjToken
2017-12-03 16:50:33 -10:00
Jack Andersen
03de8811b1
Object tracker list refactor; add object tracker to audio system
2017-12-02 20:05:16 -10:00
Jack Andersen
b23da43f05
Windows and Vulkan fixes
2017-11-24 16:49:20 -10:00
Phillip Stephens
4aa662cd67
Add support for wired switch controllers from PowerA
2017-11-23 23:17:28 -08:00
Jack Andersen
49d76b84be
Ensure boo IObj instances are heap-allocated
2017-11-19 13:44:46 -10:00
Jack Andersen
a99bddc905
ClampToEdge mode for textures; cocoa termination exception fix
2017-11-16 22:55:51 -10:00
Jack Andersen
6950d96b46
Linux build fixes
2017-11-12 21:19:49 -10:00
Jack Andersen
cb5d22eed6
string_view refactor
2017-11-12 20:13:32 -10:00
Jack Andersen
165314b817
Windows and Vulkan fixes for AMD GPU
2017-11-08 22:10:43 -10:00
Jack Andersen
1a2fc1d2a3
IObj destructor race condition fix
2017-11-07 21:33:10 -10:00
Jack Andersen
6c3a35f15d
Finish object tracker for remaining platforms
2017-11-05 20:53:54 -10:00
Jack Andersen
3a7987bb21
Object tracker bug fixes; optional metal binary shader compilation
2017-11-04 20:12:49 -10:00
Jack Andersen
021143fd89
New object management architecture for OpenGL subsystem (more platforms to come)
2017-11-02 23:39:26 -10:00
Jack Andersen
d1b980b529
Windows fixes; experimental UWP framework (not working)
2017-10-23 17:09:50 -10:00
Jack Andersen
2a49a8d447
Add texture clamp mode
2017-09-30 18:23:28 -10:00
Jack Andersen
0b35c584f6
Experimental support for LtRt surround matrixing
2017-09-27 17:11:40 -10:00
Jack Andersen
175893f055
HID parser for udev; Vulkan fixes
2017-09-15 15:55:41 -10:00
Jack Andersen
1f14cc09a1
HID Parser for Win32
2017-09-15 12:26:39 -10:00
Jack Andersen
0f2a838bfb
Add Cross-platform HID parser
2017-09-15 07:20:52 -10:00
Jack Andersen
dd6e53119a
Add subtractive blending mode to backends
2017-09-04 16:59:41 -10:00
Jack Andersen
18cbfd2865
Add GEqual Z-test option for pipeline backends
2017-09-02 19:52:53 -10:00
Jack Andersen
b97c82469a
shared_ptr for IWindow; better Cocoa app lifecycle
2017-07-16 16:45:49 -10:00
Jack Andersen
6e1c71aefd
Working Dualshock output reports on macOS; fix runaway loop
2017-05-11 09:12:44 -10:00
Jack Andersen
ff89a9cccf
Win32 input device refinements and XInput support
2017-05-08 09:09:10 -10:00
Jack Andersen
aa272fe7b9
Smart pointer cleanup
2017-05-07 11:31:56 -10:00
Jack Andersen
62443b59e7
IOKit input refactor
2017-05-07 11:24:00 -10:00
Jack Andersen
5f903c09ee
Windows sync
2017-03-17 13:31:51 -10:00
Jack Andersen
05c26a535b
OpenGL and metal rendering interface upgrades
2017-03-13 21:02:53 -10:00
Jack Andersen
ca20aea834
Add front-face culling support
2017-03-10 10:38:00 -10:00
Jack Andersen
a547eb9dbb
Runtime shader cache fixes
2017-03-05 12:59:58 -10:00