Hajime Hoshi
fd9e376ff6
restorable: Add ClearPixels
...
This hides the implementation details of allocating byte slice.
This change also adds comments about #897 .
2019-07-10 02:39:36 +09:00
Hajime Hoshi
5ec2f66524
shareable: Bug fix: Updated maxSize wrongly
...
Updates #892
2019-07-04 01:57:04 +09:00
Hajime Hoshi
3a0dbd3977
graphicsdriver/opengl: Use sync.Once for concurrent safety
2019-07-04 01:15:51 +09:00
Hajime Hoshi
6b7f21f0c8
driver: Add Graphics.MaxImageSize and use it
...
There are some devices that cannot accept 4096x4096 pixels
textures. Get the maximum size and use it.
Fixes #892
2019-07-04 01:10:11 +09:00
Hajime Hoshi
51951d6087
glfw: Take a byte pointer instead of a uintptr at the callback
...
Make 'go vet' happy on Windows.
2019-06-27 22:57:44 +09:00
Hajime Hoshi
9a0cefedce
glfw: Bug fix: Missed to initialize a member of VidMode on Windows
2019-06-27 03:38:14 +09:00
Hajime Hoshi
480c5527a3
ui/mobile: Move 'DoWork' logic to ui/mobile package
...
This simplifies driver.Graphics interface, and will make it easy
to use another graphics driver than OpenGL.
2019-06-27 00:32:37 +09:00
Hajime Hoshi
e499535728
graphics: Move functions to the package ebiten
2019-06-26 22:23:09 +09:00
Hajime Hoshi
ed09406655
graphicscommand: Bug fix: wrong adjustment of texels
...
Fixes #887
2019-06-26 11:45:09 +09:00
Hajime Hoshi
f40798b586
graphics: Move const definitions to driver package
...
Let's keep 'graphics' package as a package for utility functions
or testable functions as much as possible.
2019-06-26 01:05:13 +09:00
Hajime Hoshi
9963ae332e
graphics: Remove FilterDefault from internal/graphics
2019-06-26 00:33:30 +09:00
Hajime Hoshi
847a8b4d53
graphics: Refactoring
2019-06-26 00:18:40 +09:00
Hajime Hoshi
93c31654da
graphicscommand: Refactoring
2019-06-25 23:55:33 +09:00
Hajime Hoshi
09d473ea1b
restorable: Add comments
2019-06-25 23:42:18 +09:00
Hajime Hoshi
7e0dee0730
graphicscommand: Bug fix: Use graphics.InternalImageSize before specifying the size
...
Fixes #887
2019-06-25 22:47:37 +09:00
Hajime Hoshi
de4b439228
uidriver/glfw: Bug fix: Thread must be set before the loop starts
...
The graphics driver needs to have its thread before the loop
starts, or the driver crashes (nil reference) when it tries to use
the thread.
2019-06-24 02:03:14 +09:00
Hajime Hoshi
0cc49b6923
shareable: Refactoring
2019-06-23 11:33:17 +09:00
Hajime Hoshi
7a399c1b82
shareable: Update page sizes dynamically
...
Also, all the images cannot use the shareable backends before the
game starts, but it is expected that read-only images will use
shareable backends later.
Fixes #879
2019-06-22 23:05:28 +09:00
Hajime Hoshi
f48a72a43e
shareable: Refactoring: Remove PutQuadVertices
2019-06-22 21:13:44 +09:00
Hajime Hoshi
5d4f150094
shareable: Add comments about highp
...
Updates #879
2019-06-22 17:41:19 +09:00
Hajime Hoshi
9bff33472a
driver: Add (Graphics).HasHighPrecisionFlaot
...
This enables to determine whether vertices should be adjusted or
not.
Fixes #879
2019-06-22 14:57:53 +09:00
Hajime Hoshi
cddb93b9f6
graphicscommand: Move the texel adjustment logic to graphicscommand package
...
This is a preparation for #879 . The value of the texel adjustment
depends on the graphics driver (GLSL float precisions), and this
can be accessed only after the run loop runs. The place where
graphics commands are executed seems an appropriate place.
Updates #879
2019-06-22 03:52:51 +09:00
Hajime Hoshi
f3cdb0537b
graphics: Move the vertices backend to ebiten package
...
Now restorable/sharable packages cannot use the same vertices
backend, but I think this won't affect the performance
significantly.
2019-06-22 00:02:22 +09:00
Hajime Hoshi
69ebc481e8
graphics: Refactoring: Unify PutVertex and PutQuadVertices implementation
2019-06-21 23:49:05 +09:00
Hajime Hoshi
8dc2301e54
thread: Bug fix: Queue funcs instead of panic
...
Now the thread object is created at (*UserInterface).Run, we don't
have to care whether the (main) thread is started or not when
Call is called. Admit queueing the functions.
Fixes #884
2019-06-21 11:10:27 +09:00
Hajime Hoshi
3eee4754c5
graphics: Use the common vertices backend for PutVertex
2019-06-21 02:30:58 +09:00
Hajime Hoshi
008de78cec
graphics: Refactoring: Change QuadVertices -> PutQuadVertices for consistency
2019-06-21 02:20:31 +09:00
Hajime Hoshi
c7ab66e0e1
graphicsdriver/metal: Move MTLDevice and CAMetalLayer to the other struct
...
On iOS, they are given or included in a MTKView and we don't have
to (or should not) make them. Let's move them to a different
struct.
2019-06-19 02:17:45 +09:00
Hajime Hoshi
57d493a549
web: Optimization: Cache user agent value
2019-06-17 10:56:50 +09:00
Hajime Hoshi
4396978d4b
jsutil: Refactoring
2019-06-17 10:48:36 +09:00
Hajime Hoshi
34187d03a8
jsutil: Remove unused functions
2019-06-15 01:34:28 +09:00
Hajime Hoshi
c52e043006
Add jsutil package for new API of Go 1.13
...
Audio part still cannot be compiled due to Oto.
Fixes #878
2019-06-15 00:49:57 +09:00
Hajime Hoshi
a19bf4214b
Improve testability on Wasm
2019-06-14 23:59:38 +09:00
Hajime Hoshi
3af351a2aa
graphicsdriver/metal: Make this compilable on iOS
...
This change adds #ifs to enable to compile the driver on iOS.
This also removes BOOL, which can be a duplicated definition.
C's _Bool does not work well with Cgo. Use uint8_t instead for
boolean values.
2019-06-09 05:51:10 +09:00
Hajime Hoshi
67230ec499
graphicsdriver/metal/mtl: Remove CopyAllDevices
...
CopyAllDevices is not used at Ebiten, and not defined on iOS.
2019-06-09 04:32:48 +09:00
Hajime Hoshi
fa377ce9d1
mobile: Refactoring
2019-06-08 01:57:13 +09:00
Hajime Hoshi
449679665b
thread: Use standard context.Context
2019-06-08 01:46:06 +09:00
Hajime Hoshi
1e93d9c699
graphicsdriver/opengl: Use context.Context when possible
2019-06-08 01:30:15 +09:00
Hajime Hoshi
9c283d45b4
thread: started should be reset after Loop
2019-06-06 00:25:57 +09:00
Hajime Hoshi
85dcafe176
thread: Rename Run -> Call
2019-06-06 00:25:57 +09:00
Hajime Hoshi
15a5896efd
thread: Rename mainthread -> thread and add struct Thread
...
This enables thread available not only for the main thread but also
any threads.
This is a preparation for iOS Metal, that runs drawing functions on
a particular thread.
Updates #737
2019-06-06 00:25:53 +09:00
Hajime Hoshi
9b82ec41de
graphicsdriver/opengl: Refactoring: Remove unused variables
2019-06-04 02:11:14 +09:00
Hajime Hoshi
dbd5e25b89
uidriver/mobile: Bug fix: Error must be handled whenever possible
...
Updates #860
2019-06-01 03:12:04 +09:00
Hajime Hoshi
2dc6042858
uidriver/mobile: Remove time-out logic
...
This was introduced at 8121b2102f
.
I am not sure the reason.
As Render must sync with updating and never returns until updating
finishes, the time-out case should never be chosen.
2019-06-01 01:47:01 +09:00
Hajime Hoshi
13ce1c28b4
uidriver/mobile: Use timer.NewTimer instead of time.After
...
timer.NewTimer is much better than time.After in terms of memory
usage. See also https://golang.org/pkg/time/#After
2019-06-01 01:30:08 +09:00
Hajime Hoshi
ca907e2846
uidriver/mobile: Refactoring
2019-06-01 00:21:59 +09:00
Hajime Hoshi
ffb9871839
restorable: Bug fix: Skip the screen image to check invalidation
2019-05-28 11:29:34 +09:00
Hajime Hoshi
24822c0a10
restorable: Rename clear -> clearForInitialization
2019-05-26 23:13:54 +09:00
Hajime Hoshi
b41a333230
restorable: Reland: Refactoring
2019-05-26 22:16:25 +09:00
Hajime Hoshi
3ab56778e7
graphicscommand: Bug fix: restorable should be enabled if not sure
...
init function in restorable package might reach this condition,
and for fail-safe, restoring should be enabled.
2019-05-26 22:15:41 +09:00
Hajime Hoshi
83254d30d9
restorable: Bug fix: semantic inconsistency at forceRestoring
2019-05-26 21:40:10 +09:00
Hajime Hoshi
da4fabeaa5
Revert "restorable: Refactoring"
...
This reverts commit 3c0cd47b1f
.
Reason: Crash on macOS
2019-05-26 21:30:08 +09:00
Hajime Hoshi
3c0cd47b1f
restorable: Refactoring
2019-05-26 21:24:44 +09:00
Hajime Hoshi
fcb5554aa1
driver: Add Graphics.NeedsRestoring
2019-05-26 19:46:12 +09:00
Acid147
21abd85a63
Small cleanup ( #877 )
...
* Remove unused variables and constants
* Remove redundant return statement
* Change flock.NewFlock to flock.New
2019-05-26 18:06:43 +09:00
Hajime Hoshi
f9cec31bf6
clock: Assert that now() must be monotonic
...
This change adds panics to ensure that now() must be monotonic.
Bug: #875
2019-05-24 22:59:02 +09:00
Hajime Hoshi
22dfefab5b
clock: Fix coments
2019-05-24 03:18:47 +09:00
Hajime Hoshi
bbcee77b02
clock: Use time.Since for monotonic timer
...
Fixes #875
2019-05-24 03:16:43 +09:00
Hajime Hoshi
9c1b760016
clock: Bug fix: The timer should continue even when the clock is adjusted
...
If the clock is reversed:
* lastSystemTime should be reset with the current time
* FPS/TPS calculation state should be reset
2019-05-24 02:24:32 +09:00
Hajime Hoshi
0eb5ef0141
clock: Remove unused variables
2019-05-24 02:20:23 +09:00
Hajime Hoshi
c2bc6408a3
clock: Bug fix: Do not pacic even when the clock is reversed
...
It is theoreticaly possible to change the clock. Ebiten should not
panic whatever the clock time is.
2019-05-24 02:14:24 +09:00
Hajime Hoshi
da671a6d8c
glfw: Better way to get C files
2019-05-20 03:48:58 +09:00
Hajime Hoshi
289fb77d20
glfw: Sort C files in alphabetical order
2019-05-20 03:48:49 +09:00
Hajime Hoshi
f461ba2379
shareable: Misspelling
2019-05-12 17:53:18 +09:00
Hajime Hoshi
bc4e35a6c5
shareable: Make images shared when possible
...
Fixes #864
2019-05-12 00:36:15 +09:00
Hajime Hoshi
b03c02dd28
graphicsdriver/metal: Bug fix: Reading pixels from GPU causes blinking
...
Metal's Drawable should be obtained only when needed, or reading
pixels from GPU causes the blinking screen.
Fixes #865
2019-05-11 23:52:35 +09:00
Hajime Hoshi
0bed5a96d5
clock: Better URL to explain being monotonic
2019-05-09 02:45:43 +09:00
Hajime Hoshi
009fa9accd
clock: Ensure that now() is monotonic
2019-05-09 02:44:14 +09:00
Hajime Hoshi
c65d035cc9
clock: Bug fix: Use float64 not to overflow
...
Bug: #862
2019-05-09 01:14:48 +09:00
Hajime Hoshi
39395c4c76
graphicscommand: Rename draw-image -> draw-triangles
2019-05-08 11:58:17 +09:00
Hajime Hoshi
9a31bcd53d
devicescale: Remove the updating loop
...
Now the value is cached, the updating loop is no longer needed.
2019-05-08 01:14:22 +09:00
Hajime Hoshi
836e320b6b
devicescale: Refactoring
2019-05-05 18:09:49 +09:00
Hajime Hoshi
ea284d86fd
graphicsdriver/metal: Add setView for iOS and non-iOS
2019-05-03 03:08:46 +09:00
Hajime Hoshi
10fb5e33be
Replace GopherWasm with syscall/js
...
Fixes #857
2019-05-01 17:28:00 +09:00
Hajime Hoshi
cce41e8152
graphics: Rename DrawImage -> DrawTriangles for consistency
2019-04-22 23:12:36 +09:00
Hajime Hoshi
7d9bc8586e
graphcisdriver/metal: Better comment
2019-04-20 17:05:05 +09:00
Hajime Hoshi
b99f4c61b5
graphicsdriver/metal: Make (*Driver).Flush do nothing
2019-04-20 16:50:40 +09:00
Hajime Hoshi
72be1bde24
graphicsdriver/metal: Set and reset screenDrawable more correctly
2019-04-20 16:26:34 +09:00
Hajime Hoshi
a064955a13
graphicsdriver/metal: Use NSAutoreleasePool to release drawable correctly
...
Fixes #847
2019-04-20 15:20:38 +09:00
Hajime Hoshi
bfe1d2208e
Revert "graphicsdriver/metal: Bug fix: Release drawable correctly"
...
This reverts commit c44accbfb5
.
Reason: This change doesn't make sense
2019-04-20 00:28:09 +09:00
Hajime Hoshi
c44accbfb5
graphicsdriver/metal: Bug fix: Release drawable correctly
...
Fixes #847
2019-04-19 20:23:00 +09:00
Hajime Hoshi
865523048d
uidriver/js: Bug fix: Touches were not updated correctly
...
Fixes #846
2019-04-15 03:01:02 +09:00
Hajime Hoshi
e6c0c73b9e
graphicscommand: Add assertion (the screen cannot be a render source)
2019-04-13 00:22:11 +09:00
Hajime Hoshi
5afcc65387
shareable: Add comments
2019-04-11 18:15:56 -07:00
Hajime Hoshi
db689f4e50
driver: Remove UI.Loop and add UI.RunWithoutMainLoop
2019-04-09 21:55:59 -04:00
Hajime Hoshi
864c28e8d9
Revert "uidriver/glfw: Rename ui_unix.go -> ui_linbsd.go"
...
This reverts commit 794ccd6ade
.
2019-04-09 01:06:07 -04:00
Hajime Hoshi
794ccd6ade
uidriver/glfw: Rename ui_unix.go -> ui_linbsd.go
2019-04-09 00:39:20 -04:00
Hajime Hoshi
24fdcdd8e4
uidriver: Rename updateGraphics -> updateSize
2019-04-08 23:49:31 -04:00
Hajime Hoshi
f6367308fc
driver: Rename GraphicsContext -> UIContext
2019-04-08 23:28:08 -04:00
Hajime Hoshi
aecfd6b13d
uidriver: Remove dependency on hooks package
2019-04-08 23:13:44 -04:00
Hajime Hoshi
099c7bd5c9
driver: Remove Touch struct
2019-04-07 19:25:10 -04:00
Hajime Hoshi
08308a7edf
uidriver/mobile: Refactoring
2019-04-07 18:51:32 -04:00
Hajime Hoshi
0aa3135082
driver: Remove UI.AdjustPosition
2019-04-07 19:31:49 +09:00
Hajime Hoshi
26c32d36b5
uidriver: Move input implementation to uidrivers
2019-04-07 19:16:00 +09:00
Hajime Hoshi
a1697feeb1
driver: Add UI.Input()
2019-04-07 18:37:54 +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
a4a129e3af
ui: Rename currentUI -> theUI
2019-04-07 11:10:55 +09:00
Hajime Hoshi
6b8516c7a5
driver: Move ui.RegularTermination to driver
2019-04-07 10:54:05 +09:00
Hajime Hoshi
1b8d4abfdb
driver: Move ui.GraphicsContext to driver
2019-04-07 10:48:18 +09:00
Hajime Hoshi
b579bd7fd0
graphics: Remove GraphicsContext.Invalidated
2019-04-07 10:08:55 +09:00
Hajime Hoshi
6cdcd1ee62
input: Refactoring: Remove input dependencies from ui
2019-04-06 23:42:55 +09:00
Hajime Hoshi
a980de8326
ui: Take the Input driver
2019-04-06 23:29:13 +09:00
Hajime Hoshi
de9f54fd9d
driver: Add Input
2019-04-06 21:48:54 +09:00
Hajime Hoshi
bf165ae9d4
devicescale: Refactoring
2019-04-03 23:20:45 +09:00
Hajime Hoshi
0d0b347411
devicescale: Use more runtime.KeepAlive for Windows
2019-04-03 11:57:00 +09:00
Hajime Hoshi
8005682786
devicescale: Use runtime.KeepAlive for Windows
...
This might be related to the bug #832
2019-04-03 11:53:23 +09:00
Hajime Hoshi
d56668bfdb
input: Use sync.Once
2019-03-31 20:38:46 +09:00
Hajime Hoshi
f5c68d2a61
input: Refactoring
2019-03-31 20:20:52 +09:00
Hajime Hoshi
80dcec865d
ui: Refactoring: Remove pollEvents
2019-03-31 19:51:53 +09:00
Hajime Hoshi
c21fb4d390
input: Move Touch to driver package
2019-03-31 18:58:43 +09:00
Hajime Hoshi
e273618081
input: Rename Reset -> ResetForFrame
2019-03-31 18:49:00 +09:00
Hajime Hoshi
9e5261c156
input: Change touches type
2019-03-31 17:15:27 +09:00
Hajime Hoshi
64d3e26fb0
input: Rename UpdateTouches -> SetTouches
2019-03-31 16:30:03 +09:00
Hajime Hoshi
06219db2cc
input: Replace Touches with TouchIDs and TouchPosition
2019-03-31 02:59:48 +09:00
Hajime Hoshi
0536efd95f
ui: Remove AdjustedCursorPosition
2019-03-31 02:06:42 +09:00
Hajime Hoshi
dec6be1a11
ui: Remove AdjustedTouches
2019-03-31 02:03:59 +09:00
Hajime Hoshi
5d6f66935a
ui: Remove UpdateTouches
2019-03-31 01:54:38 +09:00
Hajime Hoshi
43ec1e7fb3
input: Refactoring: Make Touch a struct
2019-03-31 01:14:49 +09:00
Hajime Hoshi
853dbdf19d
input: Refactoring
2019-03-31 00:45:52 +09:00
Hajime Hoshi
486a6134e4
Bug fix: compilation error on browsers and mobiles
2019-03-30 23:59:17 +09:00
Hajime Hoshi
7dca1889a1
input: Move Key to driver package
2019-03-30 23:39:56 +09:00
Hajime Hoshi
e5b1aa8742
png: Update for Go 1.12
2019-03-30 23:27:09 +09:00
Hajime Hoshi
c5a8c88e2d
input: Move MouseButton and GamepadButton to driver package
2019-03-30 23:19:52 +09:00
Hajime Hoshi
7445144194
Move graphicsdriver.GrapahicsDriver to driver.Graphics
2019-03-30 22:38:02 +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
d6d57fdadf
ui: Refactoring
2019-03-28 03:36:31 +09:00
Hajime Hoshi
8ec7ae4c08
Rename drivers -> driver
2019-03-28 01:48:45 +09:00
Hajime Hoshi
5e38f81462
Create packages drivers having actual drivers
2019-03-25 00:29:56 +09:00
Hajime Hoshi
92193b2362
input: Remove unnecessary empty slices
2019-03-24 23:44:36 +09:00
Hajime Hoshi
dbc3461628
ui: Use flexbox for centering
2019-03-20 01:44:36 +09:00
Hajime Hoshi
1392129e41
devicescale: Cache scale values
2019-03-12 01:31:18 +09:00
Hajime Hoshi
a3882dbc37
ui: Bug fix: devicescale.GetAt must be called on the main thread
2019-03-12 00:28:37 +09:00
Hajime Hoshi
f56c3bd096
ui: Unexport SetWindowResizable ( #320 )
2019-02-25 02:19:47 +09:00
Hajime Hoshi
ea7c2f8da3
ui: Bug fix: Wrong assumption that the position was always >= 0
2019-02-24 23:34:36 +09:00
Hajime Hoshi
ba59cdbc5f
ui: Bug fix: The window must be shown on the current monitor ( #829 )
2019-02-24 23:26:07 +09:00
Hajime Hoshi
d4a522d9da
glfw: Bug fix: Do not pass Go's int pointer
...
Go's int can be 64bit or 32bit, while C's int is always 32bit on
Windows in Ebiten usage. For C's int argument, do not pass Go's
int pointer or broken values are set.
Related to #829
2019-02-24 23:10:18 +09:00
Hajime Hoshi
288e0a33ba
ui: Bug fix: SetSizeCallback must be effective only when the window is resizable
...
This is not a perfect solution but at least this fixes the
regression.
Fix #819
2019-02-24 03:25:38 +09:00
Hajime Hoshi
f19d7a29b8
graphicsdriver/metal: Do not release a nil texture (screen)
2019-02-22 00:37:49 +09:00
Hajime Hoshi
dbe4f27d5f
shareable: Add comments
...
Oops, 0dcb53d290
did not make sense.
2019-02-21 10:58:40 +09:00
Hajime Hoshi
0dcb53d290
shareable: Bug fix: Node-leak when extending a page
...
This is very rare and not so serious I think, but is still a bug.
2019-02-21 10:49:23 +09:00
Hajime Hoshi
0bf911905a
Revert "graphicsdriver/opengl: Call glFinish before glReadPixels"
...
This reverts commit 04dc1faa9c
.
Reason: True fix for #814 is 82178794c3
2019-02-19 10:55:06 +09:00
Hajime Hoshi
82178794c3
shareable: Bug fix: Unlock after filling
...
Fixes #820
2019-02-19 10:16:27 +09:00
Hajime Hoshi
ccacf015c2
Revert "restorable: Bug fix: Guard images by mutex"
...
This reverts commit 7967f68073
.
Reason: Wrong fix (syncing should be done at shareable package)
2019-02-19 10:15:23 +09:00
Hajime Hoshi
7967f68073
restorable: Bug fix: Guard images by mutex
...
The map must be guarded by mutex since this can be accessed by
multiple goroutines, including finalizer goroutine.
Fixes #820
2019-02-19 10:10:46 +09:00
Hajime Hoshi
d724e17032
graphicsdriver/metal: Bug fix: Wrong usage of RenderPipelineState for screen
2019-02-17 21:41:47 +09:00
Hajime Hoshi
84b1c282ff
graphicsdriver/opengl: Refactoring by reduing unused variables
2019-02-17 20:22:03 +09:00
Hajime Hoshi
3aa6eb3a66
graphicsdriver: Optimize shaders for the case of FILTER_SCREEN
...
Assume a color matrix or color vertex values are not used when
the filter is FILTER_SCREEN.
2019-02-17 19:40:52 +09:00
Hajime Hoshi
cbb0a1da95
graphicsdriver: Refactoring
...
This improved FPS on mobiles a little bit. Maybe now texture2D is
called only when necessary, but not sure.
2019-02-17 17:37:11 +09:00
Hajime Hoshi
742bbb4ccd
graphicsdriver: Simplify clamping color values
...
For negative values, OpenGL (and Metal) should take care of them
so we don't have to care.
2019-02-17 15:09:05 +09:00