Commit Graph

757 Commits

Author SHA1 Message Date
Hajime Hoshi
38f802cb40 internal/ui: simplify the logic of skipping rendering 2022-12-20 11:34:47 +09:00
Hajime Hoshi
59295cc85f internal/ui: bug fix: input state should be reset for each tick, not frame
Before this change, input states were reset for each frame. When FPS
is bigger than TPS, the input state was reset more often than expected
and then some inputs were missing.

This change fixes the issue by resetting input states not for each frame
but for each tick.

This change also updates some comments of the input API.

Updates #2496
Closes #2501
2022-12-20 10:07:19 +09:00
Hajime Hoshi
3eb2b480be internal/ui: bug fix: adjust the max skip count for fullscreening
Closes #2500
2022-12-20 02:46:45 +09:00
Hajime Hoshi
d1b9a0a9a1 internal/ui: freeze the input state for each frame
After this change, the input APIs will return more consistent results
for one frame.

Closes #2496
2022-12-18 23:54:43 +09:00
Hajime Hoshi
3152d88477 internal/ui: remove old Edge browser support
Closes #1059
2022-12-16 22:56:36 +09:00
Hajime Hoshi
9ad7a55db2 internal/ui: remove unused functions 2022-12-16 15:17:59 +09:00
Hajime Hoshi
61a009e508 internal/ui: bug fix: FPS drop on fullscreen on macOS 13
Updates #1745
Closes #2495
2022-12-16 02:59:06 +09:00
Hajime Hoshi
72dc730b42 internal/ui: bug fix: care the case when CoInitializeEx returns S_FALSE 2022-12-13 13:01:32 +09:00
Hajime Hoshi
8ab220df7f internal/ui: bug fix: compile error 2022-12-13 02:38:45 +09:00
Hajime Hoshi
b022f6d86a internal/ui: bug fix: error check at syscall 2022-12-13 02:26:07 +09:00
Hajime Hoshi
0bec1e65fa ebiten: add RunGameOptions.SkipTaskbar
Closes #1518
2022-12-13 02:00:44 +09:00
Hajime Hoshi
3024e07ecc ebiten: add RunGameOptions.ScreenTransparent
Closes #2378
2022-12-09 22:50:57 +09:00
Hajime Hoshi
d31b0189a2 ebiten: add RunGameOptions.InitUnfocused
Updates #2378
2022-12-09 21:27:32 +09:00
Hajime Hoshi
bb68ebfcad ebiten: add RunGameWithOptions to specify graphics library
This also adds mobile.SetGameWithOptions.

Updates #2378
2022-12-09 21:27:31 +09:00
Hajime Hoshi
015ce2b262 internal/ui: refactoring: reduce APIs 2022-12-09 00:05:22 +09:00
Hajime Hoshi
14688348a8 internal/ui: bug fix: wrong calculation of wheel scrolling
Closes #2487
2022-12-08 02:10:01 +09:00
Hajime Hoshi
89c64f83e3 ebiten: performance improvement by reducing allocations of []float32 2022-12-03 21:53:56 +09:00
Hajime Hoshi
6a72b1e10d internal/ui: refactoring 2022-12-03 21:25:28 +09:00
Hajime Hoshi
0a6813c17f internal/graphics: use flatten []float32 slice instead of [][]float32
Closes #2479
2022-12-03 20:23:58 +09:00
Hajime Hoshi
9d74784723 internal/ui: refactoring: simplify ConvertUniforms 2022-12-03 18:26:30 +09:00
Hajime Hoshi
61f1d8b69f internal/graphics: remove the common vertices backend
It was actually impossible to use the common vertices backend in a
thread-safe manner, and actually this caused race conditions.

This changes fixes the issue by giving up a central backend, and
letting images have their own vertices buffer.

Closes #2473
2022-12-03 01:02:23 +09:00
Hajime Hoshi
3386908902 ebiten: swap the definition MouseButtonMiddle and MouseButtonRight
This follows the Web standard.

Closes #2468
2022-11-27 13:51:09 +09:00
Hajime Hoshi
e98661c1d3 internal/ui: forbid fullscreen on Xbox 2022-11-25 00:59:15 +09:00
Hajime Hoshi
9e9cec249a ebiten: make some MouseButton definitions explicit
This change redefines named mouse button consts like MouseButtonLeft
to use MouseButton0, so that users can know which enums are the same
and different.

Updates #2445
2022-11-23 04:41:11 +09:00
Kacper Drobny
6e12fd13e4
ebiten: add additional MouseButtons (#2467)
Closes #2445
2022-11-23 04:28:34 +09:00
Hajime Hoshi
bba196d1ec ebiten: allow array types for uniform variables
Closes #2448
2022-11-18 14:08:31 +09:00
Hajime Hoshi
7d146fb70b internal/ui: bug fix: IsGL / SetUIView can be called before initialization is done
The functions in the package `mobile/ebitenmobileview` could be invoked
from EbitenViewController even before the graphics driver initialization
is done in theory.

This change fixes this issue by waiting the initialization by
channels. Also, this change adds error handlings at these functions.

Closes #2455
2022-11-15 01:53:20 +09:00
Hajime Hoshi
1e86e7fa18 internal/ui: refactoring: reduce opengles build tags
Updates #292
2022-11-14 02:46:34 +09:00
Hajime Hoshi
d09fd90963 internal/ui: use EGL for OpenGL ES
Updates #292
2022-11-13 06:23:30 -08:00
Hajime Hoshi
8c49c88b08 internal/graphicsdriver/opengl: refactoring 2022-11-13 15:27:37 +09:00
Hajime Hoshi
42566c6c9a internal/graphicsdriver/opengl: refactoring: remove SetCanvas 2022-11-13 15:18:44 +09:00
Hajime Hoshi
a0a5f2b301 internal/graphicsdriver/opengl: remove SetGomobileGLContext
This change is needed to initialize the context at opengl.NewGraphics.

Updates #2451
2022-11-13 15:07:14 +09:00
Hajime Hoshi
1ecac8d834 all: allow integer uniform variables for Kage shaders
Closes #2305
Updates #2448
2022-11-13 01:49:24 +09:00
Hajime Hoshi
419bb4c1e9 all: use uint32 instead of float32 for uniform values
This is a preparation for other types of uniform values.

Updates #2305
2022-11-12 20:28:07 +09:00
Hajime Hoshi
0d6b42fedd internal/ui: refactoring: keep screen/offscreen sizes as float64
Updates #2285
2022-11-09 01:18:41 +09:00
TotallyGamerJet
8c5f525ac2
internal/ui: use RegisterClass API (#2442)
Updates #1162

This change uses purego's new RegisterClass API to clean up the
EbitengineWindowDelegate ObjC class. Doing so makes the code
easier to read and more efficient since it directly get the origResizable
and origDelegate fields.
2022-11-07 14:31:39 +09:00
Hajime Hoshi
58f95dd1e0 internal/ui: clean-up 2022-11-05 14:20:48 +09:00
Hajime Hoshi
cff99106b6 internal/ui: bug fix: fullscreening didn't work correctly on macOS 13
As of macOS 13, a retrieved collectionBehavior included
NSWindowCollectionBehaviorFullScreenNone and this prevented the window
from being fullscreen.

This change fixes this issue by removing the flag
NSWindowCollectionBehaviorFullScreenNone when necessary.

Closes #2437
2022-11-05 14:07:02 +09:00
Hajime Hoshi
50021ef3e4 internal/graphicscommand: use buffers for []float32 to reduce allocations 2022-11-04 21:55:44 +09:00
Hajime Hoshi
005e87a917 internal/ui: prepare extra capacities for uniform variables 2022-11-04 03:18:49 +09:00
Artem Yadelskyi
10415d417a
all: replace interface{} with any (#2430)
Closes #2429
2022-11-03 15:33:09 +09:00
Artem Yadelskyi
5b53cef59e
all: remove old // +build comments (#2431)
Closes #2325
2022-11-03 12:55:14 +09:00
Hajime Hoshi
ac08ebe080 internal/ui: set SwapInterval(0) when resizing the window
This mitigates flickering at least on macOS with OpenGL.

Updates #2144
2022-10-29 17:49:32 +09:00
Hajime Hoshi
066029539e internal/ui: clean-up code
A callback is preferred to a dirty flag.

Updates #2341
2022-10-28 19:07:37 +09:00
Hajime Hoshi
b019a3723a internal/ui: optimize GPU usages when the screen doesn't have to be updated
This change skips rendering when 1) the screen is not cleared every frame
(`SetScreenClearedEveryFrame(false)`) and 2) Draw doesn't draw anything
onto the screen. The GPU usages decreased on some machines (e.g. GPU usage
was 10% with an empty Ebitengine project and became 2-3 % on a Windows
machine).

Updates #2341
2022-10-28 18:51:06 +09:00
Hajime Hoshi
3b7bc2fc57 internal/ui: remove unnecessary comments 2022-10-23 00:39:37 +09:00
Hajime Hoshi
fc2f999ebf internal/ui: refactoring: separate globalState into a new file 2022-10-23 00:11:35 +09:00
Hajime Hoshi
422de70d59 internal/ui: bug fix: screenshot didn't include antialias renderings 2022-10-22 14:19:24 +09:00
Hajime Hoshi
c49db07e75 internal/ui: bug fix: wrong property name was used
Closes #2400
2022-10-21 21:37:27 +09:00
Hajime Hoshi
f04e391cb4 all: rename emptyImage -> whiteImage 2022-10-21 15:26:56 +09:00