Hajime Hoshi
011e5061df
internal/cbackend: simplify the audio API
2021-12-23 22:20:04 +09:00
Hajime Hoshi
e6131894a7
internal/cbackend: add AudioBufferSizeInSeconds
2021-12-23 02:55:54 +09:00
Hajime Hoshi
1799ed0b28
add a build tag 'ebitencbackend' and internal/cbackend
...
This enables to create a C archive with Ebiten without an actual driver
implementation. This enables Ebiten work on a platform Go doesn't support.
See also Hitsumabushi project: github.com/hajimehoshi/hitsumabushi.
The backend C API is not stable and might change later. Then, the build
tag 'ebitencbackend' is not documented on purpose.
Closes #1900
2021-12-22 21:12:48 +09:00
Hajime Hoshi
b0b52c6297
internal/driver: typo
2021-12-22 18:47:52 +09:00
Hajime Hoshi
39ef252c2e
ebiten: Add VibrationOptions to specify intensity ( #1891 )
...
Updates #1452
2021-12-04 22:14:02 +09:00
Hajime Hoshi
bdf78dab27
internal/uidriver/glfw: Clean up build tags
2021-11-27 18:52:33 +09:00
Hajime Hoshi
ef5f8a9018
internal/uidriver/glfw: Adjusting the view size is not needed on macOS 12
...
Updates #1745
2021-11-27 18:47:05 +09:00
Hajime Hoshi
e6f2764d08
internal/uidriver/glfw: Refactoring: Remove toChangeSize
...
Updates #1884
2021-11-27 18:00:39 +09:00
Hajime Hoshi
22e64c7df0
internal/uidriver/glfw: Bug fix: Rendering should be updated after restoring from fullscreen
...
u.toChangeSize affects the result of u.updateSize. When the callback
for WindowSetSize is invoked, toChangeSize should be true.
In order to simplify the logic, we have to remove toChangeSize later.
Closes #1884
2021-11-27 17:53:40 +09:00
Hajime Hoshi
1dd13ae06e
internal/graphicsdriver/metal: Bug fix: Vsync didn't work on macOS
...
This fix works only for Metal. There is not a good solution for
OpenGL so far unfortunately.
Closes #1885
2021-11-27 02:52:48 +09:00
Hajime Hoshi
73bf7a0939
internal/uidriver/glfw: Bug fix: Return a tentative scale when glfw.GetPrmaryMonitor returns 1
...
Updates #1878
2021-11-24 22:35:10 +09:00
Hajime Hoshi
b4f87f9651
internal/uidriver/mobile: Implement Vibrate for Android
...
This change also adds AndroidManifest.xml for the example. This is
used for `gomobile install` command.
Updates #1452
2021-11-19 01:49:22 +09:00
Hajime Hoshi
8ae6793d4d
internal/shader: Check the number of arguments
2021-11-14 17:34:06 +09:00
Hajime Hoshi
9be4ce928b
internal/shader: Add more tests for const
...
Updates #1847
2021-11-14 17:06:54 +09:00
Hajime Hoshi
36ce3b836e
internal/shader: Bug fix: Treat a non-typed consntat argument as a float
...
Closes #1874
2021-11-14 15:47:59 +09:00
Hajime Hoshi
ee414ed849
Revert "internal/uidriver/glfw: Refactoring"
...
This reverts commit c4df397d87
.
Reason: Compile error
2021-11-12 22:29:03 +09:00
Hajime Hoshi
c4df397d87
internal/uidriver/glfw: Refactoring
2021-11-12 22:19:32 +09:00
Hajime Hoshi
b6cf95f5bb
internal/uidriver/js: Optimization: Reduce the call of js.Value.Get
2021-11-12 02:48:58 +09:00
Hajime Hoshi
1f7e7e2816
internal/uidriver/mobile: Remove the warnings
...
Closes #1872
2021-11-11 02:28:05 +09:00
Hajime Hoshi
5d5ce370f1
internal/uidriver/mobile: Implement Vibrate on iOS
...
Updates #1452
2021-11-11 00:50:02 +09:00
Hajime Hoshi
00e2b15e2a
shaderir: Bug fix: A wrong argument for fmt.Sprintf
...
This change also improves the result of espcae analysis.
Closes #1863
2021-11-02 00:05:07 +09:00
Hajime Hoshi
7661147e31
internal/graphicsdriver/opengl: Avoid allocations by escaping to heap
2021-10-31 22:34:14 +09:00
Hajime Hoshi
113796efae
internal/uidriver/glfw: Bug fix: Crashed a transparent button with the green button
...
Updates #1822
Closes #1857
2021-10-31 18:21:19 +09:00
Hajime Hoshi
0238549cfb
internal/atlas, initernal/graphics: Better buffer size calculation
2021-10-31 17:20:39 +09:00
Hajime Hoshi
d236d73a1f
internal/atlas, initernal/graphics: Bug fix: Needed to reset 'notFullyUsedTime'
2021-10-31 17:18:07 +09:00
Hajime Hoshi
15f62bfeb5
internal/graphicsdriver/opengl: Optimization: Cache texture variable names
2021-10-31 05:40:44 +09:00
Hajime Hoshi
9d51356eef
internal/graphicsdriver/opengl: Optimization
2021-10-31 05:17:23 +09:00
Hajime Hoshi
b74a4a0275
internal/graphicsdriver/opengl: Optimization: Avoid heap allocations
2021-10-31 02:10:44 +09:00
Hajime Hoshi
7b7791156c
internal/graphicsdriver/opengl: Remove unreached return
2021-10-31 01:38:01 +09:00
Hajime Hoshi
98083ccd0a
internal/graphicsdriver/opengl: Avoid heap allocation of a local variable
...
If a variable is passed to an argument interface{}, the variable might be
allocated on the heap unexpectedly.
2021-10-31 01:11:12 +09:00
Hajime Hoshi
a082db04fd
internal/jsutil: Optimization: Avoid using empty interface{} conversions
2021-10-30 18:53:21 +09:00
Hajime Hoshi
a826ecb29b
internal/jsutil: Move a function to internal/graphicsdriver/opengl
2021-10-30 18:33:43 +09:00
Hajime Hoshi
06f4142ca0
internal/driver: Optimization: Replace interface{} with driver.Uniform
...
Converting a value from/to interface{} can create a value in heap
and this is not efficient.
2021-10-30 02:58:28 +09:00
Hajime Hoshi
1f82bb297c
internal/graphicsdriver/opengl: Optimization: Avoid the empty interface
2021-10-30 02:28:57 +09:00
Hajime Hoshi
60f2c7ace6
internal/graphicsdriver/opengl: Optimization: Avoid creating slices for every frame (uniform variables)
2021-10-30 00:22:31 +09:00
Hajime Hoshi
b4f45edff8
internal/graphicsdriver/opengl: Optimization: Avoid creating slices for every frame
2021-10-30 00:13:57 +09:00
Hajime Hoshi
76324254c1
internal/graphicsdriver/opengl: Avoid creating objects for debugging
2021-10-30 00:04:03 +09:00
Hajime Hoshi
b1a442f86a
internal/graphicscommand: Optimization: Pool drawTrianglesCommand objects
2021-10-29 23:41:47 +09:00
Hajime Hoshi
d3ac199aa9
internal/graphicsdriver/opengl: Optimization: Avoid fmt.Sprintf
2021-10-29 21:43:40 +09:00
Hajime Hoshi
3c1f8da7f8
internal/graphicsdriver/opengl: Optimization: Avoid interface conversion
2021-10-29 21:35:40 +09:00
Hajime Hoshi
5b7724f575
internal/uidriver/mobile: Bug fix: Compile error
2021-10-25 03:01:33 +09:00
Hajime Hoshi
2aa232878d
ebiten: Add VibrateGamepad and implement this on browsers
...
Updates #1452
2021-10-25 02:30:42 +09:00
Hajime Hoshi
dde53df6ae
internal/uidriver/glfw: Bug fix: Compile error
2021-10-24 15:23:25 +09:00
Hajime Hoshi
99bfdef416
internal/graphicsdriver/opengl/gl: Support OpenBSD
2021-10-24 15:09:16 +09:00
Hajime Hoshi
ef62f407d1
Clean up build tags
2021-10-24 15:05:36 +09:00
Hajime Hoshi
878831b842
internal/graphicsdriver/opengl: Bug fix: compile error
2021-10-24 14:55:50 +09:00
Hajime Hoshi
a5198275fa
internal/graphicsdriver/opengl/gl: Remove an unused file
2021-10-24 14:46:38 +09:00
Hajime Hoshi
7c6f2fd799
ebiten: Vibrate takes time durations instead of the options
...
Android and browsers can specify only a time duration for vibration.
VibrateOptions is renamed to GamepadVibrateOptions for gamepads.
Updates #1452
2021-10-24 05:02:49 +09:00
Hajime Hoshi
f96d0a97a8
internal/uidriver/mobile: Bug fix: Compile error
2021-10-24 01:22:02 +09:00
Hajime Hoshi
b8a5ea7bd6
ebiten: Add Vibrate and VibrateOptions, and implement this on browsers
...
Updates #1452
2021-10-24 01:05:33 +09:00
Hajime Hoshi
96dc80fd08
internal/restorable: Remove needsDisposingWhenRestoring
...
Now restoring from context lost doesn't work on browsers. Then,
the constant needsDisposingWhenRestoring is actually always true.
2021-10-23 23:46:29 +09:00
Hajime Hoshi
dddfe73604
internal/uidriver/mobile: Bug fix: iOS with ebitengl build tag didn't work correctly
2021-10-23 23:32:57 +09:00
Hajime Hoshi
b11f17b281
internal/uidriver/mobile: Support gamepads on iOS
...
Closes #1105
2021-10-19 19:04:12 +09:00
Hajime Hoshi
a70be6e2f8
internal/uidriver/mobile: Refactoring
...
Updates #1105
2021-10-16 23:46:14 +09:00
Hajime Hoshi
2d9349824f
internal/uidriver/mobile: Separate UpdateInput into UpdateInput and UpdateGamepads
2021-10-16 20:37:01 +09:00
Hajime Hoshi
ce86a9940c
internal/uidriver/mobile: Fix the package name in a panic message
2021-10-16 20:13:36 +09:00
Hajime Hoshi
c3b4b92fa2
internal/uidriver/mobile: Reduce calling make
2021-10-16 20:09:36 +09:00
Hajime Hoshi
efdb31a524
internal/uidriver/mobile: Refactoring
2021-10-16 19:59:30 +09:00
Hajime Hoshi
ad3115b347
mobile/ebitenmobileview: Avoid creating slices every frame
2021-10-16 18:39:47 +09:00
Hajime Hoshi
8b775cf0dd
internal/glfw: Add a new build tag ebitenexternaldll
to requrie external DLLs
...
Embedding a DLL file and extrating it on the fly can be problematic.
The application might be unexpectedly recognized as a virus by some
virus checkers.
To mitigate this issue, Ebiten adds a new build mode `ebitenexternaldll`
which prevents Ebiten from embedding DLL files. Instead, the application
will require DLL files for GLFW.
Closes #1832
2021-10-14 02:44:25 +09:00
Hajime Hoshi
bce2e83565
internal/glfw: Update Dockerfile
2021-10-14 00:03:43 +09:00
Hajime Hoshi
6f79185b2c
internal/glfw/glfw: Update documents
2021-10-13 23:48:53 +09:00
Hajime Hoshi
6f29e57378
internal/uidriver/glfw: Wait for a FramebufferSize callback for the initial temporary window
...
Updates #1847
2021-10-13 00:16:18 +09:00
Hajime Hoshi
2f2ccbbe55
internal/uidriver/glfw: Bug fix: Wait for FramebufferSize callback after a window creation
...
Closes #1847
2021-10-13 00:04:14 +09:00
Hajime Hoshi
fa9a08b3d0
internal/uidriver/glfw: Remove unnecessary comments
2021-10-10 16:02:41 +09:00
Hajime Hoshi
0eb6c846c7
internal/uidriver/glfw: Refactoring: Remove unused functions
2021-10-10 16:02:01 +09:00
Hajime Hoshi
4604a00e39
internal/uidriver/glfw: Refactoring: Rename functions
2021-10-10 15:50:12 +09:00
Hajime Hoshi
4580f9fa16
internal/uidriver/glfw: Refactring: Rename InDP -> InDIP
...
This change also renames some functions and variables.
2021-10-10 15:47:15 +09:00
Hajime Hoshi
da6b75bc6d
internal/uidriver/glfw: Bug fix: Adjust the window size along with the device scale
...
After this change, UserInterface's windowWidth and windowHeight are
now windowWidthInDP and windowHeightInDP in device-independent pixels.
Closes #1844
2021-10-10 14:29:34 +09:00
Hajime Hoshi
d4b5d17e75
internal/uidriver/glfw: Remove an unused function
...
Updates #1844
2021-10-09 21:11:44 +09:00
Hajime Hoshi
fcd8a6c653
internal/uidriver/glfw: Bug fix: Get the correct initial monitor and its scale
...
Before this fix, Win32API is used to get the current monitor. This
might not work and return an unexpected monitor on some machines after
the runloop starts.
Instead, use the current window to get the current monitor correctly
instead of the Win32APIs. To get the initial monitor, the API
ForegroundWindow is still used.
Updates #1584
Updates #1844
2021-10-09 18:18:22 +09:00
Hajime Hoshi
3f5d1762bb
internal/graphicsdriver/opengl: Return an error when initializing OpenGL fails
...
Updates #1838
2021-10-06 00:38:47 +09:00
r3vit
57c45a13e4
Remove dot imports from tests - Remove dot imports ( #1837 )
...
Closes #1824
2021-10-02 19:58:48 +09:00
Hajime Hoshi
78cdb94552
internal/uidriver/glfw: Bug fix: Do not hide the window after its creation
...
Closes #1829
2021-09-29 01:00:17 +09:00
Hajime Hoshi
56c5bec908
internal/gamepaddb: Do not fetch the database file on go:generate
...
This is too aggressive and sometimes risky to update the database
file always when go-generate is executed.
2021-09-25 04:03:19 +09:00
Hajime Hoshi
9ab6758b7a
internal/gamepaddb: Remove some hacks for wrong formats
2021-09-25 03:56:06 +09:00
Hajime Hoshi
52d917eff0
go generate
2021-09-25 03:45:17 +09:00
Hajime Hoshi
77664ff057
internal/uidriver/glfw: Use the correct initial monitor on Linux/UNIX
...
Closes #1827
2021-09-25 02:48:13 +09:00
Hajime Hoshi
23566a7d2e
internal/uidriver/glfw: Refactoring
2021-09-25 02:14:14 +09:00
Hajime Hoshi
a0be4a302c
internal/gamepaddb: Bug fix: A mapping for an axis/button might be missing
...
Closes #1825
2021-09-25 00:58:06 +09:00
Hajime Hoshi
a7b5db6f65
internal/uidriver/glfw: Use GLFW's fullscreen when the window is transparent on macOS
...
Closes #1822
2021-09-24 03:22:09 +09:00
Hajime Hoshi
f64a946052
internal/gamepaddb: Use XInput's trigger threshold
2021-09-23 15:25:27 +09:00
Hajime Hoshi
226378da88
internal/gamepaddb: Bug fix: ButtonValue must return [0, 1]
2021-09-23 15:18:16 +09:00
Hajime Hoshi
263276c5ab
internal/uidriver/glfw: Refactoring
2021-09-23 02:48:22 +09:00
Hajime Hoshi
422387c7cd
internal/uidriver/glfw: Refactoring
2021-09-23 02:03:37 +09:00
Hajime Hoshi
4b64eadfe5
internal/mipmap, internal/atlas: Integrate for-loops for color scaling
2021-09-23 00:28:20 +09:00
Hajime Hoshi
8063f2050c
internal/graphicscommand: Optimize flush
2021-09-23 00:03:41 +09:00
Hajime Hoshi
7675e2735b
internal/graphicscommand: Refactoring: Do not you 'int' as a variable name
2021-09-22 23:39:56 +09:00
Hajime Hoshi
f79acf9569
internal/mipmap: Bug fix: nil should be meaningful for a mipmap map
2021-09-21 00:46:11 +09:00
Hajime Hoshi
81fd7ab8f6
internal/mipmap: Create a mipmap map lazily
2021-09-20 23:27:14 +09:00
Hajime Hoshi
9dbff2cddd
internal/uidriver/glfw: Make SetFullscreen more responsive on macOS
2021-09-20 21:01:17 +09:00
Hajime Hoshi
0ac4c7323f
internal/uidriver/glfw: Bug fix: Potential crash when xgb.NewConn fails
2021-09-19 18:23:51 +09:00
Hajime Hoshi
8ed55ef42d
internal/uidriver/glfw: Use the window size on a native fullscreen
...
Updates #1745
2021-09-19 00:35:18 +09:00
Hajime Hoshi
f0395dd329
internal/uidriver/glfw: Skip adjusting the view size with OpenGL
2021-09-18 23:59:37 +09:00
Hajime Hoshi
188e80d2f7
internal/uidriver/glfw: Bug fix: FPS is dropped when pressing the green button
...
Updates #1745
2021-09-18 22:16:21 +09:00
Hajime Hoshi
1a7cf7b3b8
internal/glfw/glfw: Modify GLFW for Windows to make the window non-floating
...
Closes #1506
2021-09-18 20:47:26 +09:00
Hajime Hoshi
7be00d79e8
internal/uidriver/glfw: Fix unstable FPS on fullscreen on macOS
...
FPS was unstable on fullscreen mode i.e., when the view size is the
same as the monitor size.
By using a little different size view, FPS becomes stable.
Updates #1745
2021-09-18 19:22:09 +09:00
Hajime Hoshi
11b9a4b161
internal/graphicsdriver/metal: Refactoring
2021-09-18 17:24:03 +09:00
Hajime Hoshi
e98e371bb4
internal/uidriver: Bug fix: Compile error on Linux/UNIX
2021-09-18 16:58:30 +09:00
Hajime Hoshi
428c079e52
internal/uidriver/glfw: Make a 'native' fullscreen on macOS
...
This is a breaking change. On macOS, `SetFullscreen` creates a new
independent space and maximize the size of the window there.
Updates #1506
Closes #1579
2021-09-18 16:31:22 +09:00