Hajime Hoshi
82bceba847
internal/cglfw: let functions return errors in native_darwin.go and glfw_unix.go
...
Updates #2703
2023-10-07 18:37:06 +09:00
Hajime Hoshi
e7ad5c52fe
internal/glfw: merge internal/goglfw into internal/glfw
...
This also changes APIs in internal/glfw to return errors.
Updates #2703
2023-10-05 03:09:51 +09:00
Hajime Hoshi
95b4eeafce
all: remove unnecessary build tag restrictions
2023-10-01 23:27:57 +09:00
Hajime Hoshi
aab22f4c1e
internal/ui: bug fix: use correct regions at (*monitors).monitorFromPosition
...
Updates #2781
2023-09-30 00:30:06 +09:00
Hajime Hoshi
03d6811a65
internal/ui: bug fix: initialMonitorByOS could return nil on macOS
...
initialMonitorByOS could return nil when a cursor was at an extreme
position like the bottom of the display. Apparently, a cursor position
could take an inclusive range of the monitor size.
This change fixes this issue by fixing the comparison.
Even if initialMonitorByOS returns nil, a fallback primary monitor
should be used, so this is not a critical issue.
Updates #2794
2023-09-29 16:54:47 +09:00
Hajime Hoshi
91abfe2c10
internal/ui: bug fix: compilie error on Windows
...
Updates #2794
2023-09-29 12:54:41 +09:00
Hajime Hoshi
7cb64ccffe
internal/ui: refactoring
2023-09-28 01:01:58 +09:00
Hajime Hoshi
58d3655597
internal/ui: remove unnecessary receivers from methods
2023-09-24 19:45:55 +09:00
Hajime Hoshi
b32575b7b2
internal/ui: refactoring: add (*Monitor).deviceScaleFactor
2023-09-24 19:41:37 +09:00
Hajime Hoshi
c7d1d28582
internal/ui: move impls for device scale to internal/ui for desktops
...
This enables to remove restrictions for some functions to be called
from the main thread.
Updates #2423
2023-09-24 15:44:41 +09:00
Hajime Hoshi
5d5e3c7c0b
internal/ui: refactoring: replace *glfw.Monitor with *Monitor
2023-09-24 02:39:53 +09:00
Hajime Hoshi
619436a47b
internal/ui: refactoring: add monitor_glfw.go
2023-09-16 00:16:00 +09:00
Hajime Hoshi
dd2768d5f3
internal/ui: bug fix: introduce locks for monitors
...
Updates #1853
2023-09-15 03:59:13 +09:00
Hajime Hoshi
91e1c0ea29
ebiten: add more cursor shapes
...
This change adds these new cursor shapes:
* CursorShapeNESWResize
* CursorShapeNWSEResize
* CursorShapeMove
* CursorShapeNotAllowed
Closes #2476
2023-07-23 00:49:45 +09:00
Hajime Hoshi
14b34a7b0a
internal/ui: typo
2023-03-31 03:21:48 +09:00
Hajime Hoshi
1999f8a024
internal/ui: use DirectX as a fallback for old Windows
...
Initializing OpenGL can fail [1], though this is pretty rare. For such
this case, try DirectX as a fallback.
[1] https://answers.microsoft.com/en-us/windows/forum/all/my-drivers-dont-support-opengl/a1ee0267-4dc8-4385-a185-6ed322d78329
Updates #2613
2023-03-31 03:15:52 +09:00
Hajime Hoshi
370b7599bc
internal/graphicsdriver/directx: use OpenGL as the default on old Windows
...
On old machines, CreateSwapChain might fail without a specific reasons.
Probably this is due to an issue in drivers, and if so, there is nothing
we can do. When choosing a graphics library, prefer OpenGL on such old
machines.
Updates #2613
2023-03-31 02:21:11 +09:00
Pierre Curto
4de807cc44
all: fix typos ( #2558 )
...
Signed-off-by: Pierre Curto <pierre.curto@gmail.com>
2023-01-28 19:06:38 +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
0bec1e65fa
ebiten: add RunGameOptions.SkipTaskbar
...
Closes #1518
2022-12-13 02:00:44 +09:00
Hajime Hoshi
8c49c88b08
internal/graphicsdriver/opengl: refactoring
2022-11-13 15:27:37 +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
Artem Yadelskyi
5b53cef59e
all: remove old // +build
comments ( #2431 )
...
Closes #2325
2022-11-03 12:55:14 +09:00
Hajime Hoshi
70ebd34d99
internal/ui: refactoring: separate setWindowSizeInDIPImpl to setWindowSizeInDIP and setFullscreen
2022-09-25 22:55:56 +09:00
Hajime Hoshi
1d487be57b
internal/ui: refactoring: remove unused members from EbitengineWindowDelegate
...
Closes #2297
2022-09-03 23:48:40 +09:00
Hajime Hoshi
e7c0a121c4
all: remove the build tag 'ebitencbackend'
...
This also automatically enables 'egl' when 'nintendosdk' is specified.
Updates #2242
2022-08-12 13:15:39 +09:00
Hajime Hoshi
dac6548c0c
all: rename ebitenginecbackend to nintendosdk
...
Updates #2242
2022-08-12 02:05:29 +09:00
Hajime Hoshi
7a936f7052
internal/ui: enable SetWindowSize even with fullscreen on macOS
...
Closes #1590
2022-08-10 15:57:59 +09:00
Hajime Hoshi
57fc4d438b
internal/ui: refactoring: separate the Windows API part to another file
2022-08-10 11:51:35 +09:00
Hajime Hoshi
a57560105f
internal/ui: refactoring: add userInterfaceImplNative for each OS
2022-08-10 11:44:03 +09:00
Vseslav Kochenov
3ac37e250f
ebiten: add ReadDebugInfo
for getting debug info (only graphics libray so far) ( #2222 )
...
Closes #2177
2022-07-31 02:56:16 +09:00
Hajime Hoshi
428b1263d9
add ebitenginecbackend build tag besides ebitencbackend
...
Updates #2111
Updates #2190
2022-07-09 15:23:52 +09:00
Hajime Hoshi
08ebab0558
internal/ui: better fix for initialMonitorByOS
...
Updates #2179
2022-07-04 14:42:21 +09:00
Hajime Hoshi
47c65a92ae
internal/graphicsdriver/directx: bug fix: ignore DXGI_STATUS_OCCLUDED
...
When a screen is locked, an Ebitengine application crashed as the
swap chain's Present returned DXGI_STATUS_OCCLUDED.
Let's ignore the error and continue to run the applications. In the
ideal world, an application should stop running during the screen lock,
so let's revisit this later.
This fix also fixes the issue that a Win32API GetCursorPos returned
an error ERROR_ACCESS_DENIED when the screen was locked.
Closes #2179
2022-07-04 12:55:36 +09:00
Hajime Hoshi
9962fc5ee5
internal/graphicsdriver/direct: replace Get -> NewGraphics
...
Updates #2142
2022-06-17 11:48:40 +09:00
Hajime Hoshi
7484df0c5e
internal/graphicsdriver/metal: replace Get with NewGraphics
...
This is a prepartion to return an error when a graphics driver, especially
DirectX, fails to initialize.
Updates #2142
2022-06-17 02:40:35 +09:00
Hajime Hoshi
a6d415ebf2
internal/graphicsdriver/opengl: replace Get with NewGraphics ( #2146 )
...
This is a prepartion to return an error when a graphics driver, especially
DirectX, fails to initialize.
Updates #2142
2022-06-17 02:02:29 +09:00
Hajime Hoshi
ff868ba39f
internal/ui: skip some functions for Xbox
...
Updates #2084
2022-06-01 00:58:36 +09:00
Hajime Hoshi
dcb5bb47c6
internal/glfw: unify the naming convension for Win32API
2022-06-01 00:48:22 +09:00
Hajime Hoshi
ad5ebae3cc
internal/ui: refactoring
2022-05-22 21:53:42 +09:00
Hajime Hoshi
3d00bb1fa2
internal/gamepad, internal/ui: type-cast returning values from Win32APIs just in case
2022-05-11 00:48:44 +09:00
Hajime Hoshi
90070c09fe
internal/ui: rename origPos -> origWindowPos
2022-04-08 15:59:16 +09:00
Hajime Hoshi
b5a9ff007c
internal/ui: bug fix: WindowPosition
/SetWindowPosition
didn't work on macOS fullscreen
...
Updates #1590
Closes #2043
2022-03-30 12:10:48 +09:00
Hajime Hoshi
79e93d3b12
internal/graphicsdriver: introduce the DirectX driver
...
Closes #1007
2022-03-26 20:09:34 +09:00
Hajime Hoshi
9bfbbb6e9e
internal/ui: add graphicsDriverGetter.getDirectX()
...
Updates #1007
2022-03-25 19:43:38 +09:00
Hajime Hoshi
eeb5687b73
internal/graphicsdriver/metal, internal/graphicsdriver/opengl: change the return type to pointers
...
On second thought, returning pointers is more natural. Handling
nil is a caller's responsibility.
2022-03-24 13:20:36 +09:00
Hajime Hoshi
3074dca670
internal/ui: add the EBITEN_GRAPHICS_LIBRARY environment variable
...
The `ebitengl` build tag is gone instead.
Closes #2007
2022-03-24 02:23:37 +09:00
Hajime Hoshi
be1836339b
internal/ui: define the common struct UserInterface for all the environments
...
The existing UserInterface structs became userInterfaceImpl structs.
2022-03-21 23:10:27 +09:00
Hajime Hoshi
2c2c4bc428
ebiten: add WindowResizingModeType and its constants and functions
...
This allows a new state to disallow resizing the window but allow
making the window fullscreen on macOS by a user.
This change adds the new type WindowResizingModeType. There are
these constants of this type:
* WindowResizingModeDisabled
* WindowResizingModeOnlyFullscreenEnabled
* WindowResizingModeEnabled
Closes #1819
2022-02-11 04:59:04 +09:00
Hajime Hoshi
180eb483bb
internal/ui: make currentMonitor return initMonitor when the window is not initialized yet
2022-02-09 00:26:49 +09:00