Hajime Hoshi
9fe4191a6a
mobile: Game object without Draw didn't draw anything
...
Fixes #1123
2020-03-30 03:35:07 +09:00
Hajime Hoshi
237498e51f
ui: Add an optional function Draw function to Game interface ( #1107 )
...
This change adds an optional function Draw to the Game interface.
With Draw function, the game logic and rendering are separate.
There are some benefits:
* The API is clearer and easier to understand.
* When TPS < FPS, smoother rendering can be performed without
changing the game logic depending on TPS.
* Porting to XNA, which has separate functions Update and Draw,
would be a little easier.
Draw is optional due to backward compatibility. Game interface was
already used before v1.11.x in mobile packages, and adding a
function would break existing code unfortunately. Then, we adopted
switching the behavior based on whether Draw is implemented or not
by type assertions.
IsDrawingSkipped will always return false when Draw is implemented.
Fixes #1104
2020-03-24 12:01:37 +09:00
Hajime Hoshi
4eedeb6ab7
example: Add mascot
...
This change also revert ScreenSizeInFullscree from the deprecated
state.
Fixes #1108
2020-03-22 16:30:48 +09:00
Hajime Hoshi
978ee26898
ui: Add function aliases *OnUnfocused for *InBackground
...
Now a window can be floating with SetWindowFloating, the functions
that have suffix 'IsBackground' seems misleading. However, we
cannot rename them due to backward compatibility. Then, let's add
aliases and revisit them when updating the major version of Ebiten.
Fixes #1102
2020-03-21 00:42:00 +09:00
Hajime Hoshi
56358fd0c4
ui: Rename IsForeground -> IsFocused
...
Updates #1102
2020-03-21 00:12:47 +09:00
Hajime Hoshi
d59aea1db1
driver: Remove the return value from RunWithoutMainLoop
2020-02-11 23:56:53 +09:00
Hajime Hoshi
c927d33457
mobile/ebitenmobileview: Use the common uiContext for layouting
...
This means that the whole offscreen is cleared correctly.
This change is a little breaking change: SetScreenSize or other
functions no longer works on ebitenmobile. Use Layout instead.
Fixes #1019
2020-02-11 19:40:47 +09:00
Hajime Hoshi
024fc48647
Refactoring: Add init.go
2020-02-11 11:14:19 +09:00
Hajime Hoshi
099ce1b3b4
Revert "ui: Add SetInitFocused"
...
This reverts commit bb04fc8a29
.
Reason: glfw.Focused / glfw.FocusOnShow did not work
Updates #769
2020-02-10 01:10:40 +09:00
Hajime Hoshi
bb04fc8a29
ui: Add SetInitFocused
...
Updates #769
2020-02-09 23:45:59 +09:00
Hajime Hoshi
90dba581e2
ui: Fix comments
2020-02-09 21:56:48 +09:00
Hajime Hoshi
74cb080c6f
ui: Bug fix: Images were not dumped with RunGame
...
Fixes #1071
2020-02-06 03:32:05 +09:00
Hajime Hoshi
145f9f9588
ui: Update the comments
2020-01-24 11:32:56 +09:00
Zachary Burkett
6686044452
ui: Add IsForeground API to glfw driver ( #1058 )
...
Updates #1037
2020-01-16 10:47:23 +09:00
Hajime Hoshi
982b7d6ddc
driver: Let UI have Graphics
...
Now UIs own the implementation of Graphics.
Updates #1026
2020-01-03 18:32:27 +09:00
Hajime Hoshi
9ed8279fc8
driver: Add interface Window
2019-12-25 00:24:21 +09:00
Hajime Hoshi
1d9c00688c
ui: Panic if Layout returns non-positive numbers
2019-12-23 04:43:04 +09:00
Hajime Hoshi
049aa552d4
ui: Add SetWindowResizable
...
This change also fixes example/windowsize.
Fixes #320
2019-12-22 19:26:04 +09:00
Hajime Hoshi
812a29bf07
ui: Refactoring: theUIContext is always non-nil
2019-12-22 18:53:23 +09:00
Hajime Hoshi
4c6006343e
ui: Refactoring
2019-12-22 17:22:54 +09:00
Hajime Hoshi
1566bb1cd3
ui: Update comments of RunGame
2019-12-22 13:21:15 +09:00
Hajime Hoshi
c9863284cf
uidriver/glfw: Set a default window size
...
Now RunGame can be called without SetWindowSize.
2019-12-22 12:51:36 +09:00
Hajime Hoshi
0e63241bcb
Update comments
2019-12-22 03:50:30 +09:00
Hajime Hoshi
7d56e4335e
ui: Add RunGame, WindowSize and SetWindowSize
...
This change introduces the new APIs RunGame, WindowSize and
SetWindowSize. These new APIs hides the notion of 'scale', and is
more flexible with the outside size change. This means that we can
introduce a resizable window.
This change also adds -legacy flag to examples/windowsize. If the
flag is off, the new APIs are used.
This change deprecates these functions since the notion of 'scale'
is deprecated:
* ScreenScale
* ScreenSizeInFullscreen
* SetScreenScale
* SetScreenSize
Fixes #943 , #571
Updates #320
2019-12-22 03:35:31 +09:00
Hajime Hoshi
57d527bea2
driver: Remove 'title' argument from UI.Run
2019-12-22 01:41:51 +09:00
Hajime Hoshi
8b995b086b
driver: Remove some arguments from UI.Run
2019-12-21 22:52:23 +09:00
Hajime Hoshi
dabaf66b81
uidriver: Remove width/height/scale arguments from run
...
The initial window position is determined on ebiten package side.
Updates #943
2019-12-21 20:10:58 +09:00
Hajime Hoshi
6a8013ed37
ui: Reduce arguments from newUIContext
2019-12-16 11:12:38 +09:00
Hajime Hoshi
46a7ae6175
ui: Define and use defaultGame
...
This is a pareparation for Game interface and RunGame.
Updates #943
2019-12-16 01:21:16 +09:00
Hajime Hoshi
12a13892cd
ui: Protect uiContext.scaleForWindow by mutex
2019-12-15 20:15:13 +09:00
Hajime Hoshi
bda11b0e17
driver: Add UI.SetWindowSize and UIContext.Layout
...
This is a preparation to introduce RunGame function.
Updates # 943 (Fix this line before committing)
2019-12-15 02:29:43 +09:00
Zachary Burkett
ed19d6fae9
Add cursor capture functionality ( #1016 )
...
Fixes #1016
2019-12-14 12:30:03 +09:00
Hajime Hoshi
7f88732cc5
ui: Fix comments
2019-12-12 12:00:45 +09:00
Hajime Hoshi
0ec447e0d0
ui: Add SetScreenTransparent / IsScreenTransparent
...
Fixes #1001
2019-12-01 03:31:32 +09:00
Hajime Hoshi
5ecd010f5a
ui: Add window.go
2019-11-27 00:29:30 +09:00
Hajime Hoshi
e0d780b029
uidriver/glfw: Enable to call SetWindowDecorated after Run
...
Fixes #556
2019-11-26 11:46:18 +09:00
Hajime Hoshi
b5d8be96a6
mobile: Move Game definition to package ebiten
...
Updates #943
2019-11-25 00:49:13 +09:00
Hajime Hoshi
3c51ee0991
ui: Remove theUIContext, which is not used anywhere
2019-11-17 22:24:17 +09:00
Hajime Hoshi
49a5a2bf4e
uidriver/js: Bug fix: Needed to initialize pseudoScale with the given scale
...
Updates #960 , #973
2019-10-27 17:16:49 +09:00
Hajime Hoshi
2f7ccf17f5
docs: Fix comments
2019-10-22 04:15:15 +09:00
Hajime Hoshi
e391d7241d
docs: Add backward compatibility notes
2019-10-22 04:07:14 +09:00
Hajime Hoshi
75721e6fc1
ui: Auto scaling on browsers
...
This change forces Ebiten apps on browsers 'fullscreen' mode.
After this change, 'scale' value is no longer used on browsers.
Note that this breaks backward compatibility, but as long as the
game works in an iframe, this should not be problematic.
Fixes #960
2019-10-15 00:02:02 +09:00
Hajime Hoshi
52900fac79
Move back driver getters to ebiten package
2019-09-03 01:46:11 +09:00
Hajime Hoshi
3646e7930d
graphics: Bug fix: the flag and the enqueueing operation must be protected by a same mutex
...
It was theoretically possible that an item was enqueued even
though the flag said it should not.
2019-08-25 21:22:54 +09:00
Hajime Hoshi
ef56d0a535
Refactoring: isRunning -> isImageAvailable
2019-08-25 00:14:37 +09:00
Hajime Hoshi
df8fdc855a
Bug fix: Compile error on GOOS=linux CGO_ENABLED=0
2019-08-01 08:17:58 +09:00
Hajime Hoshi
de915a1736
Move driver getters to graphicsdriver/uidriver packages
...
This enables to add internal functions to these packages so that
the driver selector logics can be modified.
2019-08-01 00:40:59 +09:00
Hajime Hoshi
833e467fde
Make Ebiten buildable on the playground environment
...
Bug: #871
2019-05-22 12:25:38 +09:00
Hajime Hoshi
f984f5ada9
Force to use Go 1.12 or later
...
As syscall/js has incompatible change between Go 1.11 and Go 1.12,
it is safe to force to use Go 1.12.
2019-05-01 17:43:38 +09:00
Hajime Hoshi
db689f4e50
driver: Remove UI.Loop and add UI.RunWithoutMainLoop
2019-04-09 21:55:59 -04:00
Hajime Hoshi
f6367308fc
driver: Rename GraphicsContext -> UIContext
2019-04-08 23:28:08 -04:00
Hajime Hoshi
26c32d36b5
uidriver: Move input implementation to uidrivers
2019-04-07 19:16:00 +09:00
Hajime Hoshi
7e5085f15b
Add uidriver package and move UI implementation to this packaage
2019-04-07 18:21:16 +09:00
Hajime Hoshi
6b8516c7a5
driver: Move ui.RegularTermination to driver
2019-04-07 10:54:05 +09:00
Hajime Hoshi
a980de8326
ui: Take the Input driver
2019-04-06 23:29:13 +09:00
Hajime Hoshi
747d1be54e
driver: Move getting actual drivers to ebiten package
2019-03-30 22:19:21 +09:00
Hajime Hoshi
f2e42c3ea1
ui: Remove dependencies on driver package
2019-03-30 21:59:11 +09:00
Hajime Hoshi
f56c3bd096
ui: Unexport SetWindowResizable ( #320 )
2019-02-25 02:19:47 +09:00
Hajime Hoshi
55e9a861d0
ui: Bug fix: isRunning should never be 'false' even after Run on GopherJS
2019-01-19 03:29:07 +09:00
Hajime Hoshi
58cc5cb105
graphics: Better error message for At and Set ( #790 )
2019-01-19 02:59:22 +09:00
Hajime Hoshi
248f51cc02
ui: Fix comments
2019-01-17 23:40:33 +09:00
Hajime Hoshi
ddecc1c602
ui: Fix comments
2019-01-13 23:25:32 +09:00
Hajime Hoshi
607186859d
ui: Run returns immediately on GopherJS
...
Fixes #778
2019-01-13 22:16:33 +09:00
Hajime Hoshi
866f64a625
Add a better error message for Go version
...
Fixes #777
2019-01-10 23:44:35 +09:00
Hajime Hoshi
ae84e79d16
ui: Add IsWindowResizable and SetWindowResizable (again)
...
Fixes #320
2019-01-09 00:24:16 +09:00
Hajime Hoshi
0d4e903b7a
Revert "ui: Add IsWindowResizable and SetWindowResizable"
...
This reverts commit f403e0716f
.
Reason: Compilation error on browsers
2019-01-09 00:12:57 +09:00
Hajime Hoshi
f403e0716f
ui: Add IsWindowResizable and SetWindowResizable
...
Fixes #320
2019-01-08 23:52:53 +09:00
Hajime Hoshi
99e4c874fe
Reduce init functions
...
This mitigates the init-order issue on jsgo.io.
2018-12-26 02:13:47 +09:00
Hajime Hoshi
155ee828b8
Fix misspelling
2018-12-03 18:23:25 +01:00
Hajime Hoshi
3abbe26f7f
Remove dependency on internal/png on mobiles and browsers
...
Fixes #735
2018-11-14 00:37:51 +09:00
Hajime Hoshi
4090258904
opengl: Remove Init (except for mobile)
2018-11-05 00:21:39 +09:00
Hajime Hoshi
7f291b7bb1
Fix screenshot/internal-images file names
2018-10-13 03:24:02 +09:00
Hajime Hoshi
6a9184dd63
ui: Add MonitorSize again
...
Fixes #711
2018-10-11 10:30:02 +09:00
Hajime Hoshi
e6d385133a
Change the screenshot location
2018-10-11 01:39:33 +09:00
Hajime Hoshi
3600c8aa6c
ui: Add documents about concurrent-safety
...
Fixes #709 .
2018-10-10 23:23:30 +09:00
Hajime Hoshi
c758a1f8c6
ui: Rename MonitorSize -> ScreenSizeInFullscreen ( #708 )
2018-10-09 23:42:03 +09:00
Hajime Hoshi
4a5548a4a0
ui: MonitorSize should return the 'current' monitor size instead of the primary monitor size
2018-10-08 01:15:57 +09:00
Hajime Hoshi
f3b7148564
ui: Bug fix: DeviceScaleFactor should return the current monitor's scale
2018-10-08 01:11:13 +09:00
Hajime Hoshi
cae9e39453
ui: Use the best suitable monitor for fullscreen
...
This change also changes the definition of MonitorSize.
2018-10-06 02:59:38 +09:00
Hajime Hoshi
1807a3f530
devicescale: Rename function
2018-10-04 01:28:53 +09:00
Hajime Hoshi
25a5f1dd83
ui: Sleep when vsync doesn't work ( #692 )
2018-09-30 14:44:54 +09:00
Hajime Hoshi
464c575de6
Fix comments
2018-07-18 02:17:06 +09:00
Hajime Hoshi
0593b77eb8
ui: Implement CurrentTPS
2018-07-18 02:11:00 +09:00
Hajime Hoshi
e99f2f9f69
ui: Rename TPS -> MaxTPS
2018-07-17 22:41:27 +09:00
Hajime Hoshi
a7a1f6b4c6
ui: Rename SetTPS -> SetMaxTPS, Introduce UncappedTPS
2018-07-17 22:33:53 +09:00
Hajime Hoshi
82c44a2995
Comment fix
2018-07-17 03:23:45 +09:00
Hajime Hoshi
16c6ab4d07
ui: Introduce DefaultTPS and deprecate FPS
2018-07-17 02:07:03 +09:00
Hajime Hoshi
3a8ca5ad73
ui: Implement TPS/SetTPS
...
Fixes #605
Fixes #321
2018-07-17 01:58:00 +09:00
Hajime Hoshi
1626e40822
Refactoring: Avoid using const FPS
2018-07-17 00:53:00 +09:00
Hajime Hoshi
71dfe17dcc
Fix comments
2018-07-16 04:57:15 +09:00
Hajime Hoshi
9be02c905b
Misspelling
2018-07-16 04:39:05 +09:00
Hajime Hoshi
88e6768a30
Use the term 'TPS' ticks per second
2018-07-16 04:36:47 +09:00
Hajime Hoshi
18ec1d8265
internal/clock: Update takes FPS
2018-07-16 01:03:23 +09:00
Hajime Hoshi
d752408da3
Fix comments not to use the term 'this function'
2018-07-15 01:04:46 +09:00
Hajime Hoshi
e25c237a01
Add IsVsyncEnabled / SetVsyncEnabled
...
This enables the game to work more efficiently (but consume much
more CPU).
Fixes #405 .
2018-07-14 21:43:55 +09:00
Hajime Hoshi
6c8b7f8e9c
graphics: Refactoring: Reduce error propagations
2018-07-12 03:08:50 +09:00
Hajime Hoshi
aa06c5ffa5
Update comments
2018-07-11 11:06:18 +09:00
Hajime Hoshi
3cd9dfd800
Rename IsRunningSlowly to IsDrawingSkipped
...
Fixes #643
2018-07-10 22:31:26 +09:00
Hajime Hoshi
b1e4c3c8f0
Add 'ebitendebug' build tag
...
EBITEN_INTERNAL_IMAGES_KEY is now disabled by default, and enabled
only when a build tag 'ebitendebug' is specified. It is because
game developers might want to disable EBITEN_INTERNAL_IMAGES_KEY
when they release their games, or anyone can dump the internal
images.
Fixes #632 .
2018-06-25 23:59:32 +09:00
Hajime Hoshi
167d21ec46
devicescale: Panic on Android when called from init funcs
2018-05-05 03:16:29 +09:00
Hajime Hoshi
d8dba69b47
ui: Add MonitorSize
...
Fixes #470
2018-05-05 02:42:45 +09:00
Hajime Hoshi
9a06b31556
ui: Don't panic at DeviceScaleFactor in init
...
Fixes #597
2018-05-05 01:28:29 +09:00
Hajime Hoshi
9efccea31c
ui: Add SetWindowTitle
...
Fixes #595
2018-05-02 19:21:17 +09:00
Hajime Hoshi
452a9b14a4
graphics: Rename EBITEN_DUMP_IMAGES_KEY to EBITEN_INTERNAL_IMAGES_KEY
2018-04-28 22:24:03 +09:00
Hajime Hoshi
a36bb5dffd
graphics: Changed screenshot image location for consistency
2018-04-28 22:19:24 +09:00
Hajime Hoshi
613f384cb5
graphics: Add EBITEN_DUMP_IMAGES_KEY
...
Fixes #589
2018-04-28 22:08:20 +09:00
Hajime Hoshi
245dde9bc1
graphics: Refactoring: screenshot dump: remove global variables
2018-04-28 05:01:12 +09:00
Hajime Hoshi
888d650872
Add 'screenshot' feature
...
If you run your game with environment variable EBITEN_SCREENSHOT_KEY=<keyname>,
you can take a game screenshot by pressing the specified key.
Fixes #553
2018-04-11 01:00:22 +09:00
Hajime Hoshi
2d3c6ab5b8
ui: Remove build tag 'gomobilebuild'
...
Fixes #573
2018-04-07 02:14:54 +09:00
Hajime Hoshi
2110191794
mobile: Accept gomobile build ( #249 )
2018-03-24 02:52:42 +09:00
Hajime Hoshi
526fbd3619
ui: Implement SetWindowDecorated and IsWindowDecorated
...
Fixes #430 .
2018-03-17 18:30:55 +09:00
Hajime Hoshi
e3023889ac
ui: Change RegularTermination to a value
2018-02-04 00:22:38 +09:00
Hajime Hoshi
b9c115eb92
docs: Add comment to IsRunningSlowly (again)
2018-02-03 00:57:10 +09:00
Hajime Hoshi
35bbee9307
docs: Add comment to IsRunningSlowly
2018-02-03 00:55:38 +09:00
Hajime Hoshi
38c72faf95
ui: Deprecate SetCursorVisibility and add SetCursorVisible ( #407 )
2018-01-09 02:01:33 +09:00
Hajime Hoshi
61646e5d03
Refactoring: Remove updater
2018-01-06 23:30:11 +09:00
Hajime Hoshi
4bcb2e5682
devicescale: Rename XFCE -> Xfce
2018-01-04 17:16:02 +09:00
Hajime Hoshi
dc75e69d1e
ui: Rename DeviceScale -> DeviceScaleFactor
2018-01-03 19:23:29 +09:00
Hajime Hoshi
5dfb361aca
doc: Fix DeviceScale comment
2018-01-03 16:56:23 +09:00
Hajime Hoshi
7ba811e5ba
Add comments to DeviceScale
2018-01-03 16:52:41 +09:00
Hajime Hoshi
d18fc36040
Add DeviceScale() experimentally
2018-01-03 05:25:22 +09:00
Hajime Hoshi
0379e3c591
audio: Deprecate Update
2017-12-01 00:26:28 +09:00
Hajime Hoshi
cea9bd5a19
input: Bug fix: runeBuffer should be reset on each frame
2017-11-10 01:21:15 +09:00
Hajime Hoshi
626b772b25
doc: Improve comments
2017-10-01 17:24:30 +09:00
Hajime Hoshi
a7fc463d91
doc: Improve comments
2017-10-01 03:15:50 +09:00
Hajime Hoshi
23123eb3c0
doc: Fix comment
2017-09-30 13:36:56 +09:00
Hajime Hoshi
835d199f02
ui: Rename SetIcon to SetWindowIcon ( #386 )
2017-09-23 17:40:09 +09:00
Hajime Hoshi
dacda0d176
ui: Add SetIcon ( #386 )
2017-09-23 04:28:57 +09:00
Hajime Hoshi
b186bc1e94
ui: Add IsCursorVisible ( #377 )
2017-08-12 15:45:16 +09:00
Hajime Hoshi
2c7cfba863
ui: Fix comments
2017-08-12 13:38:59 +09:00
Hajime Hoshi
14737df60f
loop: Remove package loop
2017-08-06 02:17:26 +09:00
Hajime Hoshi
0913adc1e2
loop: Remove Update
2017-08-06 02:15:27 +09:00
Hajime Hoshi
94843fbe73
loop: Move clock.FPS to loop.FPS to reduce dependencies
2017-08-05 22:08:58 +09:00
Hajime Hoshi
b85f5edee0
loop: Simplify logic
2017-08-05 21:24:04 +09:00
Hajime Hoshi
4ee0c9b482
loop: Refactoring: Create updater struct
2017-08-05 21:06:25 +09:00
Hajime Hoshi
eef8289854
loop: Remove dependency on ui
2017-08-05 20:43:49 +09:00
Hajime Hoshi
f0d47312c4
ui: Add IsRunnableInBackground / SetRunnableInBackground ( #272 )
2017-08-03 03:21:51 +09:00
Hajime Hoshi
8a1da77b67
ui: Fix comments
2017-07-22 02:15:09 +09:00
Hajime Hoshi
59110ba5ec
clock: Refactoring: Use clock.FPS everywhere
2017-07-14 03:19:50 +09:00
Hajime Hoshi
06d6494ca7
ui: Add comments
2017-07-01 13:07:44 +09:00
Hajime Hoshi
b569eb9c5a
ui: Add SetFullscreen / IsFullscreen ( #267 )
2017-06-30 01:28:00 +09:00
Hajime Hoshi
6b70adf23b
graphics: Clarify when ebiten.Run returns error ( #331 )
2017-03-04 02:27:46 +09:00
Hajime Hoshi
e11bc62059
ui: SetScreenSize/Scale no longer returns error
2017-03-03 10:58:29 +09:00
Hajime Hoshi
bc29a6a355
doc: Add explanation of errors from Run ( #327 )
2017-02-22 23:25:46 +09:00
Hajime Hoshi
071b65f173
loop: Remove IsRunning
2016-09-03 21:14:06 +09:00
Hajime Hoshi
cd885ce7c5
ui: Add SetCursorVisibility ( #258 )
2016-09-03 18:54:21 +09:00
Hajime Hoshi
d08beef412
ui: Bug fix: ScreenScale should not cause deadlock ( #264 )
2016-09-03 18:04:22 +09:00
Hajime Hoshi
750c2e08df
ui: Bug fix: SetScreenSize/Scale must be called after Run
2016-09-03 17:54:04 +09:00
Hajime Hoshi
f204c14f90
ui: Rename Run -> RunMainThreadLoop
2016-09-03 00:00:44 +09:00
Hajime Hoshi
6164ecb9fc
ui: Reduce functions in UserInterface
2016-09-02 23:45:54 +09:00