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
Hajime Hoshi
3d8a45a770
graphicsdriver/opengl: Refactoring
2019-02-17 14:30:32 +09:00
Hajime Hoshi
d927241223
graphicsdriver/opengl: Remove unnecessary function calls
2019-02-17 11:44:50 +09:00
Hajime Hoshi
3ecb00f717
graphicsdriver: Optimize shaders
...
Simplified the case when a color matrix is not used.
2019-02-16 23:53:22 +09:00
Hajime Hoshi
a8b97c9755
graphicsdriver: Optimize shader (skip color matrix calculation)
...
Skip multiplying with a color matrix when possible.
2019-02-16 17:33:12 +09:00
Hajime Hoshi
815ed8cda2
graphicsdriver: Optimize shader by removing 'if'
2019-02-16 16:39:02 +09:00
Hajime Hoshi
1f46299870
graphicsdriver/opengl: Bug fix: source_size can be optimized out with nearest filter
2019-02-16 15:14:48 +09:00
Hajime Hoshi
b1b8d0b4b1
graphics: Move texel-region adjustment from shaders to program
...
This reduces GPU burden.
2019-02-16 14:50:03 +09:00
Hajime Hoshi
09ca873c41
graphicsdriver/opengl: Use glBindAttribLocation instead of glGetAttribLocation
...
Attribute variables are often optimized out and it is really hard
to prevent this.
Instead of implicit indices of attribute variables, use explicit
indices by glBindAttribLocation.
Bug: #816
2019-02-16 14:35:53 +09:00
Hajime Hoshi
7ff99d3965
graphicsdriver/opengl: Remove glGetError calls
...
As glGetError doesn't tell where the error happens, this is not
useful.
Fixes #815
2019-02-16 10:00:27 +09:00
Hajime Hoshi
fc329bd215
graphicsdriver/metal: Use template specialization
2019-02-15 09:46:58 +09:00
Hajime Hoshi
3f28592700
graphics: Refactoring: Remove PutVertex
2019-02-15 00:22:32 +09:00
Hajime Hoshi
7c506bc5bc
restorable: Refactoring: Add (*Image).QuadVertices/PutVertex
2019-02-15 00:18:12 +09:00
Hajime Hoshi
a06a2b65c1
shareable: Fix semantically incorrect function usage
...
In this case, the size equals to the internal size, so this is not
a bug fix.
2019-02-14 23:23:52 +09:00
Hajime Hoshi
fd250c8d8c
graphics: Rename NextPowerOf2Int -> InternalImageSize and add image size adjustment
...
There is a minimum internal image size on some system like old iOS
devices. This change adds adjustment of the size.
Issue: #810
2019-02-14 23:06:01 +09:00
Hajime Hoshi
a2fe3d5962
restorable: Refactoring: Use InternalSize instead of NextPowerOf2Int
2019-02-14 22:39:19 +09:00
Hajime Hoshi
4e8c7f0a75
restorable: Rename SizePowerOf2 -> InternalSize
2019-02-14 20:56:38 +09:00
Hajime Hoshi
a6d3a1e0cb
graphicsdriver/metal: Refactoring: Use NextPowerOf2Int
2019-02-14 11:09:16 +09:00
Hajime Hoshi
a1b1bce43a
graphicsdriver/metal: Bug fix: Some tests failed due to wrong source size
2019-02-14 11:06:30 +09:00
Hajime Hoshi
7a76a5b42d
graphicsdriver/metal: Remove while loop in shader programs
2019-02-14 10:54:32 +09:00
Hajime Hoshi
5c7f34827f
graphicsdriver/metal: Use template specialization
2019-02-14 09:57:47 +09:00
Hajime Hoshi
04dc1faa9c
graphicsdriver/opengl: Call glFinish before glReadPixels
...
It looks like glFlush is not enough at least on Travis CI.
Fixes #814
2019-02-14 02:03:05 +09:00
Hajime Hoshi
0546783ad5
restorable: Don't call (*graphicscommand.Image).Pixels twice (2)
2019-02-14 01:00:27 +09:00
Hajime Hoshi
3faa674e32
restorable: Don't call (*graphicscommand.Image).Pixels twice
2019-02-14 00:54:02 +09:00
Hajime Hoshi
3952474690
graphics/metal: Fix comments
2019-02-13 23:36:45 +09:00
Hajime Hoshi
81101e0f48
graphicsdriver/metal: Reduce 'if' from shader programs ( #762 )
2019-02-13 23:28:17 +09:00
Hajime Hoshi
27dbf1bbb7
restorable: Record more drawing image history items
...
Fixes #813
2019-02-13 10:45:08 +09:00
Hajime Hoshi
6930176fbb
restorable: Add restorable.Pixels
2019-02-13 00:46:24 +09:00
Hajime Hoshi
93d0b0dd09
restorable: Add Fill
...
This is useful to reduce opportunity to make the image stale.
2019-02-13 00:46:24 +09:00
Hajime Hoshi
40f728a326
shareable: Call (*restorable.Image).Clear() when possible
...
This is a kind of relanding of c68c36b0b7
.
Clearing the restorable.Image state can reduce the operations for
restoring.
2019-02-13 00:41:26 +09:00
Hajime Hoshi
5fed3d3bed
shareable: Add MakeVolatile
2019-02-13 00:41:24 +09:00
Hajime Hoshi
5147bbde9d
restorable: Add MakeVolatile
2019-02-13 00:39:54 +09:00
Hajime Hoshi
f613cd1407
restorable: Remove Pixels that is not used anywhere
2019-02-13 00:31:00 +09:00
Hajime Hoshi
c2c3579cde
graphicsdriver/opengl: Reduce 'if' in shader programs
...
Fixes #812
2019-02-12 12:46:18 +09:00
Hajime Hoshi
6c4260d0e1
Revert "graphicsdriver/opengl: Use GL_RGBA8 as the internal format at glTexImage2D"
...
This reverts commit f5044f3d8f
.
Reason: This doesn't work on some iOS machines
2019-02-12 03:34:06 +09:00
Hajime Hoshi
4273f1982d
devicescale: Bug fix: Need to consider Y axis direction on macOS
...
Fixes #807
2019-02-10 23:34:15 +09:00
Hajime Hoshi
8e42484294
graphicscommand: Add 'address' to (*DrawImageCommand).String
2019-02-10 14:27:49 +09:00
Hajime Hoshi
6f428c584d
shareable: Add comments
2019-02-10 14:13:00 +09:00
Hajime Hoshi
339155f63d
shareable: Use CompositeModeSourceOver when possible at Fill
2019-02-10 14:08:59 +09:00
Hajime Hoshi
1150fc69d0
shareable: Use color vertex values instead of ColorM
...
This is an optimization: using ColorM might cause graphics command
separation.
2019-02-10 14:02:01 +09:00
Hajime Hoshi
f5044f3d8f
graphicsdriver/opengl: Use GL_RGBA8 as the internal format at glTexImage2D
...
Related: #810
2019-02-09 21:27:46 +09:00
Hajime Hoshi
815f2a6b35
shareable: Improve panic messages
2019-02-09 19:47:45 +09:00
Hajime Hoshi
a5421de8ab
mainthread: Add comments
2019-02-08 20:32:00 -10:00
Hajime Hoshi
87b4b8b1b4
mainthread: Disable panic temporarily
...
Fixes #809
2019-02-08 20:11:48 -10:00
Hajime Hoshi
a3eddeb50f
Improve panic messages
2019-02-06 23:43:03 -10:00
Hajime Hoshi
9d291f601e
graphicsdriver/metal: Bug fix: Make all the tests pass
2019-02-06 23:42:54 -10:00
Hajime Hoshi
207ae08c9d
graphicsdriver/metal: Give up reusing buffers
...
It was inevitable to rely on reference counts, which was too hacky.
Besides, reusing buffers doesn't improve performance.
2019-02-05 03:22:50 +09:00
Hajime Hoshi
19079ae7a2
graphicsdriver/metal: Fix comments
2019-02-05 03:09:40 +09:00
Hajime Hoshi
f29337dc93
graphicsdriver/metal: Add comments
2019-02-03 23:58:45 +09:00
Hajime Hoshi
882d0c0bc8
graphicsdriver/metal: Reuse MTLBuffer instead of re-creating ( #762 )
2019-02-03 22:55:29 +09:00
Hajime Hoshi
a8dcd5c628
Replace go-flock with flock
2019-02-03 14:20:20 +09:00
Hajime Hoshi
d3d56c076d
shareable: Use CopyPixels
...
CopyPixels is basically Pixels and ReplacePixels, but executed
lazily while Pixels reads pixels from GPU immediately. Thanks to
this, restorable.Image no longer need to keep pixel data if not
needed.
2019-02-03 02:51:56 +09:00
Hajime Hoshi
b89602d900
restorable: Add more comments
2019-02-02 19:19:03 +09:00
Hajime Hoshi
05d78b4232
mainthread: Cause panic when trying to run before initialization
2019-02-02 19:00:15 +09:00
Hajime Hoshi
bcd9db669d
Revert "restorable: Don't record pixels when restoring is disabled"
...
This reverts commit aad7bdc64d
.
Reason: This causes application freezing at least on macOS
2019-02-02 18:39:51 +09:00
Hajime Hoshi
204b0e72d6
graphicsdriver/metal: Do not wait until completed when possible ( #762 )
2019-02-02 04:35:38 +09:00
Hajime Hoshi
aad7bdc64d
restorable: Don't record pixels when restoring is disabled
2019-02-02 00:44:02 +09:00
Hajime Hoshi
5be567d58f
ui: Implement restoring context lost on browsers correctly
...
Fixes #734
2019-02-01 01:20:40 +09:00
Hajime Hoshi
ba47a19b17
mobile: Bug fix: error must be received without waiting for renderCh
...
Even when error happens, the error was not received when renderCh
received. This was the cause of freezing when error happens.
2019-01-28 12:32:48 +09:00
Hajime Hoshi
3ac1996f9d
clock: Avoid overflow by using time duration on Windows
2019-01-27 17:31:30 +09:00
Hajime Hoshi
3691083cee
clock: Use a more precise timer on Windows
...
This change is based on @silbinarywolf's change:
https://github.com/hajimehoshi/ebiten/issues/798#issuecomment-457822280
Fixes #798
2019-01-26 21:16:35 +09:00
Hajime Hoshi
b65a3d372b
affine: Add ColorM.Scale tests
2019-01-23 02:50:30 +09:00
Hajime Hoshi
54019a4735
affine: Improve speed of ScaleOnly
2019-01-23 02:10:59 +09:00
Hajime Hoshi
2b0dff197e
restorable: Fix comments ( #793 )
2019-01-22 23:33:56 +09:00
Hajime Hoshi
158f4fb3ed
restorable: Bug fix: Reading pixels from a volatile image might fail
...
Fixes #793
2019-01-22 03:35:54 +09:00
Hajime Hoshi
ec08a75332
restorable: Add assertions
2019-01-21 02:17:09 +09:00
Hajime Hoshi
e2cfb2da6f
restorable: Fix comments
2019-01-21 00:41:54 +09:00
Hajime Hoshi
eeb8fea778
restorable: Bug fix: dummyImage must be restored first
...
Fixes #791
2019-01-21 00:36:53 +09:00
Hajime Hoshi
4d05baf97c
examples/contextlost: Bug fix: dummyImage must belong to theImages
2019-01-21 00:11:34 +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
78ed824351
graphics: Make verticesBackend concurrent safe
...
Fixes #789
2019-01-19 02:06:50 +09:00
Hajime Hoshi
248f51cc02
ui: Fix comments
2019-01-17 23:40:33 +09:00
Hajime Hoshi
fd4cdd445c
graphicsdriver/opengl/gl: Unexport or remove C symbols ( #786 )
2019-01-17 22:16:47 +09:00
Hajime Hoshi
645b94de5f
ui: Bug fix: actualScreenScale must be called on the main thread
2019-01-16 23:32:47 +09:00
Hajime Hoshi
107dfe5074
graphics: Improve Set speed
...
On GopherJS, copying a struct is very heavy. This change avoids
copying (color) structs when possible.
2019-01-14 04:25:43 +09:00
Hajime Hoshi
6ed4bbc0a2
ui: Fix comments
2019-01-13 22:51:24 +09:00
Hajime Hoshi
9e11477d6c
restorable: Bug fix: volatile image must be cleared when recovering from the context lost
...
This fixes the bug that examples/contextlost crashes.
2019-01-13 22:30:08 +09:00
Hajime Hoshi
607186859d
ui: Run returns immediately on GopherJS
...
Fixes #778
2019-01-13 22:16:33 +09:00
Hajime Hoshi
1e1f309a1c
shareable: Add Fill
...
Before introducing Fill, filling an image with a solid color was
implemented by ReplacePixels. When an offscreen image is used, the
offscreen image is not fully cleared or filled with a color and
out of (0,0)-(width,height) region. This causes a glitch thin line
on mobile platforms.
This change adds (*shareable.Image).Fill to fill the whole
framebuffer region of the image.
2019-01-13 02:12:47 +09:00
Hajime Hoshi
90efddd6b3
restorable: Bug fix: Clearing a new image region was wrong
2019-01-12 16:16:50 +09:00
Hajime Hoshi
ce21125345
graphicscommand: Rename functions
2019-01-12 01:33:27 +09:00
Hajime Hoshi
dc0c6e0907
graphicscommand: Use GL on macOS 10.11 or older ( #781 )
2019-01-12 01:30:47 +09:00
Hajime Hoshi
72c1a73cac
graphicsdriver/metal: Avoid using @available syntax for old Xcode ( #781 )
2019-01-12 00:33:45 +09:00
mebusy
0419aec617
graphicscommand: Use Opengl instead on early MacOSX platform which does not support Metal ( #779 )
2019-01-11 22:34:23 +09:00
Hajime Hoshi
6783aaae56
graphics: Better test for a crash
2019-01-11 00:31:32 +09:00
Hajime Hoshi
c4e98de804
shareable: Refactoring
2019-01-10 23:31:53 +09:00
Hajime Hoshi
4a587f495d
restorable: Bug fix: ReplacePixels might call DrawImage, which violates some assumptions
2019-01-10 23:22:59 +09:00
Hajime Hoshi
a6b3f761f8
audio: Refactoring: Remove dependency on clock package
2019-01-10 00:59:38 +09:00
Hajime Hoshi
5514a9c6ac
ui: Bug fix: Changing screen size didn't work correctly on Windows
...
Fixes #775
2019-01-09 11:08:27 +09:00
Hajime Hoshi
28665cfc4b
glfw: Bug fix: Compilation error on Windows
2019-01-09 10:34:54 +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
12f7d14d91
graphicsdriver/opengl: Check the reserved keyword
...
Fixes #772
2019-01-08 00:07:49 +09:00
Hajime Hoshi
758b957b01
graphicsdriver/opengl: Bug fix: filter is a preserved keyword ( #771 )
2019-01-07 11:20:29 +09:00
Hajime Hoshi
7f656f11d6
ui: Bug fix: Minimum window width should be 1 when the window is not decorated
2019-01-07 00:46:41 +09:00
Hajime Hoshi
b34834a895
graphicscommand: Explicitly forbide ReplacePixels for a part after DrawImage
2019-01-06 05:15:27 +09:00
Hajime Hoshi
1cfd97cde0
restorable: Clearing is not needed after NewImage
2019-01-06 03:40:59 +09:00
Hajime Hoshi
b5c9cd6253
shareable: Fix comments
2019-01-06 03:15:32 +09:00
Hajime Hoshi
123be16699
graphicsdriver/opengl: Use NewLazySystemDLL instead of NewLazyDLL ( #766 )
2019-01-04 15:05:27 +09:00
Hajime Hoshi
f2dcc8ccdb
devicescale: Use NewLazySystemDLL instead of NewLazyDLL ( #766 )
2019-01-04 06:11:59 +09:00
Hajime Hoshi
db1b664424
devicescale: Refactoring: define Windows error consts
2019-01-04 06:05:35 +09:00
Hajime Hoshi
75a024e40e
devicescale: Bug fix: GetWindowDC returns error on Wine
...
Fixes #743
2019-01-04 05:58:34 +09:00
Hajime Hoshi
5c1b0bbcec
devicescale: Remove 'syscall' package usages ( #766 )
2019-01-04 05:53:18 +09:00
Hajime Hoshi
f2840bb0dc
ui: Remove 'syscall' package usages ( #766 )
2019-01-04 05:28:46 +09:00
Hajime Hoshi
623bfde007
graphicsdriver/metal/ca: Suppress warnings ( #767 )
2019-01-02 01:16:54 +09:00
Hajime Hoshi
ac6ad717b7
graphicsdriver/metal: Use selector again to access properties ( #767 )
2019-01-02 01:09:12 +09:00
Hajime Hoshi
6350cb6bfd
graphicsdriver/metal/ca: Add check by respondsToSelector ( #767 )
2019-01-02 00:52:03 +09:00
Hajime Hoshi
a0a17330ee
graphicsdriver/metal: Specify macOS version ( #768 )
2019-01-02 00:08:46 +09:00
Hajime Hoshi
61afdc8852
graphicsdriver/metal: Remove unused properties ( #767 )
2019-01-01 05:09:02 +09:00
Hajime Hoshi
947fbe0a2e
glwf: Implement SetIcon
2018-12-31 15:49:45 +09:00
Hajime Hoshi
efc7225ee1
glfw: Skip error check at proc call
2018-12-31 15:48:37 +09:00
Hajime Hoshi
a21a4c75b0
glfw: Implement DLL version of the binding
2018-12-31 15:48:34 +09:00
Hajime Hoshi
a9455d1c32
glfw: Add loading DLL
2018-12-31 15:46:06 +09:00
Hajime Hoshi
ad285c2235
glfw: Add DLL build results
...
This also adds fixes for 32bit machines.
2018-12-31 15:46:01 +09:00
Hajime Hoshi
90f82de5ef
glfw: Separate glfw-dependent part and the other part
2018-12-30 20:45:50 +09:00
Hajime Hoshi
55c2fa4de1
Use internal/glfw
2018-12-30 02:35:46 +09:00
Hajime Hoshi
1fd445b0e4
glfw: Start implementing glfw package (Key)
2018-12-30 01:11:49 +09:00
Hajime Hoshi
83787123ac
ui: Refactoring
2018-12-28 14:08:44 +09:00
Hajime Hoshi
b349efaa0a
graphicsdriver/metal: Make main-thread usages more explicit
2018-12-28 02:43:00 +09:00
Hajime Hoshi
86bda42417
graphicsdriver/metal: Refactoring: vsync member variable was not needed
2018-12-28 02:29:56 +09:00
Hajime Hoshi
105909ab6c
graphicsdriver/metal: Bug fix: SetVsyncEnabled before Run didn't work on macOS
2018-12-28 02:23:39 +09:00
Hajime Hoshi
532488ac5c
mainthread: RunLockOSThread is mainthread package's responsibility
2018-12-28 02:20:53 +09:00
Hajime Hoshi
c76ce28065
Revert "ui: Bug fix: SetVsyncEnabled before Run didn't work on macOS"
...
This reverts commit 042b30a516
.
2018-12-28 02:18:38 +09:00
Hajime Hoshi
042b30a516
ui: Bug fix: SetVsyncEnabled before Run didn't work on macOS
2018-12-28 02:11:48 +09:00
Hajime Hoshi
25581b2be8
restorable: Fix comments
2018-12-27 03:12:30 +09:00
Hajime Hoshi
4ba47eee32
restorable: Refactoring
2018-12-27 03:06:44 +09:00
Hajime Hoshi
62cdb93105
restorable: Improve tests
2018-12-26 21:14:29 +09:00
Hajime Hoshi
fbf7007056
restorable: Pixels() should return immediately when it doesn't have to access GPU
...
Fixes #763
2018-12-26 20:25:40 +09:00
Hajime Hoshi
454a7d8ef9
graphicsdriver/opengl: Bug fix: misspelling on variables
...
Fixes #764
2018-12-26 03:03:06 +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
de788603d6
graphicsdriver/opengl: Remove init order dependency
2018-12-25 23:58:01 +09:00
Hajime Hoshi
ebbbb448fa
graphicsdriver/metal: Rename function for consistency
2018-12-25 02:24:02 +09:00
Hajime Hoshi
f5708cb58a
graphicsdriver/opengl: Bug fix: Rename a function not to override an existing function
2018-12-24 17:45:16 +09:00
Hajime Hoshi
f1582c2d73
graphics: Add Address representing a sampler address mode
...
Fixes #761
2018-12-24 17:29:31 +09:00
Hajime Hoshi
7e50ae39c9
graphicsdriver/opengl: Refactoring: Filter as a uniform value
2018-12-24 16:06:25 +09:00
Hajime Hoshi
85df49dc96
graphicsdriver/opengl: Bug fix: variables can be optimized out
2018-12-23 06:04:35 +09:00
Hajime Hoshi
189b8a17e9
graphics: Use source-border check even at DrawTriangles
...
DrawTriangles can now take a sub-image.
2018-12-23 03:24:39 +09:00
Hajime Hoshi
4149a56524
graphics: Refactoring: Use 12 floats for each vertex
...
This is a preparation for #761 .
2018-12-23 02:36:28 +09:00
Hajime Hoshi
bf67998fc5
graphicscommand: Bug fix: Do not assure the initial state of the image
2018-12-23 01:18:05 +09:00
Hajime Hoshi
4d0cc623fb
ui: Rename functions
2018-12-22 02:32:02 +09:00
Hajime Hoshi
e809991c9f
shareable: Bug fix: Image invalidation by ReplacePixels
...
ReplacePixels on a part of image might invalidate the other part of
the image on MacBook Pro 2013, especially when the other part is
rendered by DrawImage.
Fixes #593 #758
2018-12-21 11:50:10 +09:00
Hajime Hoshi
c227934153
graphicsdriver/metal: Bug fix: Adjust texels
...
Fixes #759
2018-12-21 02:38:00 +09:00
Hajime Hoshi
d520749dcb
graphicsdriver/metal: Call Release on the main thread
2018-12-20 23:08:40 +09:00
wasedaigo
6840e9e739
graphicsdriver/metal: Clarify the type of passing parameters ( #757 )
...
Fixes #756
2018-12-20 17:04:03 +09:00
Hajime Hoshi
ff62876552
Add Metal implementation
...
Fixes #621
2018-12-20 02:37:10 +09:00
Hajime Hoshi
d738639c48
graphicsdriver/opengl: Fix panic messages
2018-12-20 02:36:21 +09:00
Hajime Hoshi
294bf855af
ui: Fix logic: [NSApp mainWindow] can be nil when borderless
2018-12-19 02:25:12 +09:00
Hajime Hoshi
db4395d71b
ui: Bug fix: ScreenSizeFullscreen before Run crashes on Linux
2018-12-19 01:21:00 +09:00
Hajime Hoshi
6ef5cc5857
ui: Bug fix: SetWindowDecorated didn't work
...
Fixes #753
2018-12-19 01:01:18 +09:00
Hajime Hoshi
b3ce89aab1
ui: Bug fix: SetWindowIcon before Run didn't work
...
Fixes #755
2018-12-18 23:16:09 +09:00
Hajime Hoshi
241ccc307f
ui: Add comments about #753
2018-12-18 03:34:45 +09:00
Hajime Hoshi
eac00c3d83
ui: Bug fix: SetCursorVisible before Run didn't work
...
Fixes #754
2018-12-18 03:07:16 +09:00
Hajime Hoshi
9628e629ae
graphicscommand: Fix tests to be more deterministic
...
Fixes #751
2018-12-17 21:46:53 +09:00
Hajime Hoshi
5d0420cea0
graphicscommand: Simplify Image
...
First I thought Metal requried an initialization process by
replacing pixels, but now this is not needed. Initialize images by
the dummy texture.
2018-12-16 22:36:03 +09:00
Hajime Hoshi
8b72ff5ec0
graphicscommand: Add tests
2018-12-16 17:38:02 +09:00
Hajime Hoshi
2c25318634
shareable: Add TestReplacePixelsAfterDrawImage
2018-12-16 15:13:35 +09:00
Hajime Hoshi
5f8a0e34bb
graphics: isPowerOf2(0 or negative) should return false
2018-12-16 14:26:16 +09:00
Hajime Hoshi
17b225083d
shareable: Improve TestExtend
2018-12-16 05:09:43 +09:00
Hajime Hoshi
22b11aafac
shareable: Add TestExtend
2018-12-15 19:51:17 +09:00
Hajime Hoshi
d29cabca43
graphicsdriver: Remove MaxImageSize
2018-12-15 03:46:32 +09:00
Hajime Hoshi
18d109e3df
graphicsdriver/opengl/gl: Fix README
2018-12-09 04:41:43 +09:00
Hajime Hoshi
e8a1be7748
graphicsdriver/opengl: Use non-cgo gl package on Windows ( #171 )
...
This is a temporal fix until go-gl/glow#102 is applied.
2018-12-09 03:06:11 +09:00
Hajime Hoshi
2fd0daec10
ui: Fix comments
2018-12-04 03:10:54 +01:00
Hajime Hoshi
155ee828b8
Fix misspelling
2018-12-03 18:23:25 +01:00
Hajime Hoshi
f85a62c6a7
restorable: Rename dummyImage -> emptyImage
2018-12-01 21:49:41 +01:00
Hajime Hoshi
e537cb2c27
graphics: Bug fix: render source might not be initialized
2018-12-01 21:36:51 +01:00
Hajime Hoshi
3f75da5f35
restorable: Refactoring: Remove newImageWithoutInit
2018-12-01 21:36:51 +01:00
Hajime Hoshi
c6dd0a75d9
graphicscommand: Optimize replace-image calls
...
Now ReplacePixels command is called only when necessary.
This also ensures that DrawImage must be called after ReplacePixels
is called since there is a potential problem that rendering images
on a texture without initializing by replacing pixels might cause
problems (escpecially on Metal. Perhaps #593 might be related).
2018-12-01 21:36:47 +01:00
Hajime Hoshi
e799a0c6a8
shareable: Fix wrong variable names
2018-12-01 11:31:32 +01:00
Hajime Hoshi
247e4f5b6b
restorable: Skip initializing the screen image
2018-11-30 00:19:52 +01:00
Hajime Hoshi
962a11468b
restorable: Fix clearing logic
...
Fixes #740
2018-11-28 23:00:24 +01:00
Hajime Hoshi
1a54ff34e6
graphics: Forbid nil at ReplacePixels explicitly
2018-11-28 22:26:34 +01:00
Hajime Hoshi
1f538af440
restorable: Refactoring
2018-11-24 21:08:28 +09:00
Hajime Hoshi
d165673789
devicescale: Bug fix: Crash on Wine
...
GetWindowDC(0) doesn't work on Wine. Let that return an arbitrary
scale 1 in this case.
Fixes #738
2018-11-24 16:37:30 +09:00
Hajime Hoshi
b48d501bc0
graphics: Explicit limitation of indices at DrawTriangles
...
Fixes #728
2018-11-23 19:02:10 +09:00
Hajime Hoshi
62210c89f3
graphicsdriver/opengl: Add assertion at ReplacePixels
2018-11-18 02:09:44 +09:00
Hajime Hoshi
31f15bc5ad
Revert "graphics: Change the number of floats for a vertex from 10 to 12"
...
This reverts commit 7586c660d5
.
2018-11-18 00:07:15 +09:00
Hajime Hoshi
d8f337985d
graphicsdriver/opengl: Refactoring
2018-11-17 22:40:21 +09:00
Hajime Hoshi
ef08e218c8
graphicsdriver/opengl: Refactoring: Remove framebuffer.projectionMatrix
2018-11-17 22:29:04 +09:00
Hajime Hoshi
14f5a03a79
Merge math and graphics packages
2018-11-17 20:23:12 +09:00
Hajime Hoshi
de745f00fa
graphicsdriver/opengl: Refactoring: Improve logic to generate framebuffer
2018-11-17 19:49:30 +09:00
Hajime Hoshi
44d1b137e7
graphicsdriver/opengl: Refactoring
2018-11-17 19:29:52 +09:00
Hajime Hoshi
7586c660d5
graphics: Change the number of floats for a vertex from 10 to 12
...
This is a preparation for Metal, that forces 4 floats for a vertex
position.
2018-11-17 15:30:11 +09:00
Hajime Hoshi
d2595c5be7
ui: Refactoring
2018-11-15 01:08:36 +09:00
Hajime Hoshi
e24f6b7848
graphicsdriver/opengl: Rename GetDriver -> Get
2018-11-13 00:01:26 +09:00
Hajime Hoshi
2313f79160
graphicsdriver: Rename Delete -> Dispose
2018-11-12 23:44:39 +09:00
Hajime Hoshi
cc2174bd69
graphicsdriver: Adjust API
2018-11-11 23:57:23 +09:00
Hajime Hoshi
907a28c434
graphicsdriver: Rename BufferSubData -> SetVertices
2018-11-11 23:54:58 +09:00
Hajime Hoshi
846a719d6c
graphicsdriver: Merge UseProgram and DrawElements into Draw
2018-11-11 23:53:23 +09:00
Hajime Hoshi
575af7e416
graphicsdriver: Change indexOffsetInBytes -> indexOffset at DrawElements
2018-11-11 23:51:16 +09:00
Hajime Hoshi
b2b51fb1bf
graphicsdriver/opengl: Refactoring
2018-11-11 22:08:36 +09:00
Hajime Hoshi
aff77d98e4
graphicsdriver/opengl: Bug fix: compile error on browsers and mobiles
2018-11-11 04:51:17 +09:00
Hajime Hoshi
734aeabc8d
graphicsdriver/opengl: Remove theContext
2018-11-11 03:37:37 +09:00
Hajime Hoshi
2f692d98c7
graphicsdriver: Rename TexSubImage2D -> ReplacePixels
2018-11-11 01:35:10 +09:00
Hajime Hoshi
61ca48225c
graphicsdriver: Rename MaxTextureSize -> MaxImageSize
2018-11-11 01:26:37 +09:00
Hajime Hoshi
7e363a6f3b
graphicsdriver/opengl: Unexport Context
2018-11-11 01:19:11 +09:00
Hajime Hoshi
241716d0e6
Add package graphicsdriver; Move opengl to graphicsdriver/opengl
2018-11-10 22:52:37 +09:00
Ben Echols
5e70fce639
Added monitor cache and scale cache ( #731 )
2018-11-07 20:54:37 +09:00
Hajime Hoshi
b396b4f88a
opengl: Refactoring: Remove theOpenGLState
2018-11-07 02:01:00 +09:00
Hajime Hoshi
09c8516545
graphcis: Move IndicesNum from opengl to graphics
2018-11-07 01:49:45 +09:00
Hajime Hoshi
07ae1db0dd
opengl: Add Driver
2018-11-07 01:43:07 +09:00
Hajime Hoshi
ed961505d2
opengl: Refactoring: Hide projection matrix inside opengl package
2018-11-06 03:45:44 +09:00
Hajime Hoshi
57c8c089e9
opengl: Unexport BlendFunc
2018-11-06 03:18:56 +09:00
Hajime Hoshi
c9f49efd41
graphics: Add VertexFlaotNum
2018-11-06 02:34:52 +09:00
Hajime Hoshi
580cd5cc71
opengl: Unexport DataType/Float/Short
2018-11-06 01:58:15 +09:00
Hajime Hoshi
82e9f227d1
opengl: Remove arrayBufferLayoutPart.dataType
2018-11-06 01:13:55 +09:00
Hajime Hoshi
00f28dd896
opengl: Remove BeforeSwapping
...
I couldn't machines that requre this any longer. Perhaps a bound
framebuffer is always the screen framebuffer before swapping now.
2018-11-05 02:14:56 +09:00
Hajime Hoshi
2c7017534f
ui: Remove opengl dependency from ui package (desktop)
2018-11-05 01:24:53 +09:00
Hajime Hoshi
02b570a8e1
opengl: Refactoring: Use value type for theContext
2018-11-05 00:48:15 +09:00
Hajime Hoshi
f7fa4ed8f9
opengl: Refactoring
2018-11-05 00:44:27 +09:00
Hajime Hoshi
4090258904
opengl: Remove Init (except for mobile)
2018-11-05 00:21:39 +09:00
Hajime Hoshi
16ada03928
opengl: Unexport (*Image).Framebuffer
2018-11-04 20:00:13 +09:00
Hajime Hoshi
293857d3a3
opengl: Remove (*Image).Size
2018-11-04 19:59:27 +09:00
Hajime Hoshi
beae772287
opengl: Unexport Framebuffer
2018-11-04 19:55:27 +09:00
Hajime Hoshi
7bbc32ce0e
opengl: Unexport Texture
2018-11-04 19:46:20 +09:00
Hajime Hoshi
786b349579
opengl: Unexport TexSubImage2D
2018-11-04 19:44:30 +09:00
Hajime Hoshi
531251d4ad
opengl: Unexport NewTexture
2018-11-04 19:39:14 +09:00
Hajime Hoshi
bc7dd2f050
opengl: Unexport some functions
2018-11-04 19:13:41 +09:00
Hajime Hoshi
2a7caf7755
opengl: Move ensureFramebuffer to opengl.Image
2018-11-04 19:06:33 +09:00
Hajime Hoshi
95a925ec9a
opengl: Refactoring
2018-11-04 18:51:50 +09:00
Hajime Hoshi
7fbf9f652e
opengl: Unexport DeleteTexture
2018-11-04 18:46:05 +09:00
Hajime Hoshi
96f1a8aff6
opengl: Add Image struct
2018-11-04 18:39:28 +09:00
Hajime Hoshi
c7ea761031
opengl: Rename FramebufferStruct -> Framebuffer
2018-11-04 17:49:40 +09:00
Hajime Hoshi
9dae11808f
opengl: Rename Framebuffer -> framebufferNative
2018-11-04 17:48:45 +09:00
Hajime Hoshi
c935c28498
opengl: Move Framebuffer from graphicscommand to opengl and rename it to FramebufferStruct
2018-11-04 17:39:01 +09:00
Hajime Hoshi
97a9e99112
opengl: Rename: BindScreenFramebuffer -> BeforeSwapping
2018-11-03 04:08:00 +09:00
Hajime Hoshi
841353670f
opengl: Unexport BindTexture
2018-11-02 03:45:37 +09:00
Hajime Hoshi
6dceeb343c
opengl: Refactoring: Remove ResetViewportSize
2018-11-02 03:24:35 +09:00
Hajime Hoshi
09fe1886d7
graphicscommand: Add comments
...
Add explanation why ResetViewportSize is needed.
2018-11-02 03:06:26 +09:00
Hajime Hoshi
3a8ddd6279
graphicscontext: Rename createFramebufferIfNeeded -> ensureFramebuffer
2018-11-01 03:42:30 +09:00
Hajime Hoshi
61c2331ac4
graphicscommand: Refactoring
2018-11-01 03:34:58 +09:00
Hajime Hoshi
e28c7b0f50
graphicscommand: Remove Texture
2018-11-01 03:29:23 +09:00
Hajime Hoshi
bc3ca38f76
opengl: Rename ResetGLState -> Reset and other functions
2018-11-01 03:02:08 +09:00
Hajime Hoshi
b8aa35373a
graphicscommand: Remove unneeded type conversion
2018-10-31 10:54:45 +09:00
seebs
74e204d952
graphics: Speed up DrawTriangles ( #723 )
...
DrawTriangles is expensive and slow because of massive memory
allocation and garbage collection costs. This patch moves from ~47TPS
on my laptop (with ~24k triangles) to 60TPS. The first part
is just allocating the right size of vertex buffer up front; that
got to about 55TPS. The second part replaces the frequent
allocations of []float32 in Vertex() calls with writing the
desired values into a provided destination slice.
Time spent in drawing triangles for 1,000 frames:
13.07s baseline
11.09s preallocate whole buffer to avoid resizing
6.13s use new PutVertex function
This might need some cleanup, but I think it's good evidence that
the design change is viable.
2018-10-31 10:53:17 +09:00
Hajime Hoshi
45017213a7
opengl: Unexport (Element)ArrayBufferSubData
2018-10-31 00:59:44 +09:00
Hajime Hoshi
5be08cac19
opengl: Unexport BindBuffer
2018-10-30 23:59:20 +09:00
Hajime Hoshi
23a832c0a7
opengl: Unexport consts
2018-10-30 22:41:05 +09:00
Hajime Hoshi
99594fe732
opengl: Remove type mode
2018-10-30 22:36:12 +09:00
Hajime Hoshi
b2b09ccec0
restorable: Avoid memory allocating when an entire image is cleared
2018-10-30 11:08:38 +09:00
Hajime Hoshi
bb0b8ca83b
opengl: Unexport (*Context).Reset()
2018-10-30 02:18:10 +09:00
Hajime Hoshi
ac7bf354a9
opengl: Unexport types
2018-10-30 02:13:51 +09:00
Hajime Hoshi
e4179aee37
opengl: Unexport functions
2018-10-30 01:50:30 +09:00
Hajime Hoshi
6b95a5140c
opengl: Move program.go and shader.go to opengl
2018-10-30 01:27:31 +09:00
Hajime Hoshi
6b02f0ae9e
graphicscommand: Move OrthoProjectionMatrix to opengl package
2018-10-29 01:08:51 +09:00
Hajime Hoshi
ce1c616f69
Merge graphics and graphicsutil
2018-10-28 23:03:06 +09:00
Hajime Hoshi
395b46d8da
graphicsutil: Remove dependency on graphicscommand
2018-10-28 23:00:10 +09:00
Hajime Hoshi
7767bcfdd8
graphicsutil: Better allocation of vertices
2018-10-28 22:54:36 +09:00
Hajime Hoshi
fde9fd2d0e
graphicsutil: Remove dependency on opengl
2018-10-28 22:01:59 +09:00
Hajime Hoshi
ff54d3b681
Move CompositeMode to graphics package
2018-10-28 21:49:47 +09:00
Hajime Hoshi
06f2052817
Add graphics package and move Filter to graphics
2018-10-28 20:25:52 +09:00
Hajime Hoshi
2da5192510
Rename graphics -> graphicscommand
2018-10-28 20:10:05 +09:00
Hajime Hoshi
7e29a81177
ui: Refactoring
2018-10-14 18:28:27 +09:00
Hajime Hoshi
0c4ef7ee8e
ui: Bug fix: fix the initial window position on multiple monitors
2018-10-14 16:59:14 +09:00
Hajime Hoshi
b56061281d
ui: Add comments
2018-10-13 22:41:21 +09:00
Hajime Hoshi
a073f48faf
input: Bug fix: keypress event were not fired
...
This change suspends to 'preventDefault' on keydown events.
Now preventing navigation by pressing backspace is deprecated in
Chrome. For other keys, it looks like keyup's preventDefault is
enough to disable the browser default behavior.
2018-10-13 19:18:13 +09:00
Hajime Hoshi
faf32b9d37
devicescale: Plan 9 support
2018-10-13 04:08:40 +09:00
Hajime Hoshi
34596bb1cf
ui: Bug fix: IsVsyncEnabled can cause deadlock
2018-10-10 23:17:45 +09:00
Hajime Hoshi
b4a4b87b56
ui: Bug fix: ScreenSizeInFullscreen returned wrong scaled values
...
Fixes #708
2018-10-10 03:10:18 +09:00
Hajime Hoshi
e971f6d41c
ui: Avoid glfw.GetCurrentContext for threading issues
2018-10-10 01:45:39 +09:00
Hajime Hoshi
b5344bc994
ui: glfwScale must be called on the main thread
2018-10-10 01:07:47 +09:00
Hajime Hoshi
c758a1f8c6
ui: Rename MonitorSize -> ScreenSizeInFullscreen ( #708 )
2018-10-09 23:42:03 +09:00
Hajime Hoshi
dbe71e81bd
ui: Bug fix: currentMonitorPos returned wrong values on macOS
...
[NSScreen mainScreen] sometimes returned a wrong screen for the
window. Use [[NSApp mainWindow] screen] when possible.
Fixes #703
2018-10-08 05:40:07 +09:00
Hajime Hoshi
c4a066ecd0
ui: Fix wrong comments about Windows
2018-10-08 04:06:44 +09:00
Hajime Hoshi
8d2820efb0
ui: Bug fix: the window is shown on the current monitor on Windows
...
Fixes #704
2018-10-08 03:24:14 +09:00
Hajime Hoshi
96a657025f
ui: Bug fix: DeviceScaleFactor and MonitorSize were not correct on Windows
2018-10-08 03:18:24 +09:00
Hajime Hoshi
9264e38324
ui: Add comments
2018-10-08 01:45:07 +09:00
Hajime Hoshi
f6c2d899f1
ui: Bug fix: compile error on browsers and mobiles
2018-10-08 01:26:05 +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
16a9bac487
ui: Remove deviceScale struct
2018-10-08 01:03:18 +09:00
Hajime Hoshi
effd530026
ui: Show the window on the current monitor ( #704 )
...
Tested on macOS. This doesn't work on Windows yet since there are
some codes that depends on the primary monitor.
2018-10-08 00:46:01 +09:00
Hajime Hoshi
fb7a3f2736
ui: Bug fix: Call SetPos multiple times to render correctly ( #703 )
2018-10-08 00:25:21 +09:00
Hajime Hoshi
e0d2d5e753
ui: Bug fix: wrong scaling when a window move across monitors
...
Fixes #701
2018-10-07 23:05:20 +09:00
Hajime Hoshi
0e7dab3707
ui: Fix comment
2018-10-06 20:04:48 +09:00
Hajime Hoshi
f9edfd7d57
ui: Remove unused variables
2018-10-06 19:55:10 +09:00
Hajime Hoshi
cc336a4c38
ui: Use more stable way to determine the current monitor
2018-10-06 19:53:43 +09:00
Hajime Hoshi
55a397bd65
devicescale: Specify the monitor to get the scale
...
Fixes #695
2018-10-06 19:43:23 +09:00
Hajime Hoshi
b99cc6ca8e
ui: Bug fix: compile error on mobiles
2018-10-06 18:26:22 +09:00
Hajime Hoshi
8771d27d64
devicescale: Rename variables
2018-10-06 17:29:40 +09:00
Hajime Hoshi
d08ae0dd66
graphicsutil: Fix comments
2018-10-06 15:01:12 +09:00
Hajime Hoshi
ca2fe22e4a
ui: Bug fix: Set the proper window position when coming back from fullscreen
2018-10-06 03:53:34 +09:00
Hajime Hoshi
7ea1ab6b58
ui: Bug fix: currentMonitor should not return nil
...
Fixes #700
2018-10-06 03:22:33 +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
16f6aeaa4a
ui: Refactoring: Use the current monitor
2018-10-06 02:38:02 +09:00
Hajime Hoshi
bd1fc4439a
graphicsutil: Avoid passing NaN to shaders experimentally ( #696 )
2018-10-04 02:02:19 +09:00
Hajime Hoshi
1807a3f530
devicescale: Rename function
2018-10-04 01:28:53 +09:00
Hajime Hoshi
10b49bb0a3
ui: Don't call devicescale.DeviceScale too often
2018-10-03 04:29:12 +09:00
Hajime Hoshi
11d23bafa9
devicescale: Bug fix: the active window can't be passed to ReleaseDC
2018-10-03 04:16:28 +09:00
Hajime Hoshi
02a2fc2d44
ui: Bug fix: Force to adjust window size when scale is changed
...
Fixes #644
2018-10-03 03:26:11 +09:00
Hajime Hoshi
eef9c01735
gofmt -s -w
2018-10-03 03:25:44 +09:00
Hajime Hoshi
cf41e0aa0a
devicescale: Rename logPixelSx -> logPixelsX
2018-10-03 03:13:36 +09:00
Hajime Hoshi
399317a2cf
devicescale: Get the current monitor's scale on Windows ( #644 )
2018-10-03 03:09:42 +09:00
Hajime Hoshi
c494b53822
ui: Refactoring: Add deviceScale struct
2018-10-02 23:06:56 +09:00
Hajime Hoshi
635d624b77
ui: Update device scale on browsers ( #644 )
2018-10-02 11:43:45 +09:00
Hajime Hoshi
21c1ee5dfb
ui: Cache devicescale value on mobiles
2018-10-02 03:51:13 +09:00
Hajime Hoshi
9906c935f6
ui: Remove unnecessary lock protection
2018-10-02 03:25:30 +09:00
Hajime Hoshi
fce82e1502
ui: Use frame counter to update device scale
2018-10-02 03:21:59 +09:00
Hajime Hoshi
78f2946797
ui: Bug fix: timer condition was wrong
2018-10-02 02:53:17 +09:00
Hajime Hoshi
bf850e12a4
ui: Recalc device scale repeatedly for multiple displays ( #644 )
2018-10-02 02:49:08 +09:00
Hajime Hoshi
308c8091cd
ui: Fix comments
2018-09-30 18:53:38 +09:00
Hajime Hoshi
8df596396c
input: Bug fix: wheel direction is opposite on browsers
2018-09-30 17:14:52 +09:00
Hajime Hoshi
0224858b7b
examples/wheel: Improve message
2018-09-30 17:13:22 +09:00
Hajime Hoshi
803e42714e
input: Implement wheel event on browsers
...
Fixes #630
2018-09-30 17:08:18 +09:00
Hajime Hoshi
237f6a2014
input: Rename MouseWheel -> Wheel
2018-09-30 17:01:45 +09:00
Hajime Hoshi
b6f0ea0100
input: Remove unused variables
2018-09-30 15:40:16 +09:00
Hajime Hoshi
25a5f1dd83
ui: Sleep when vsync doesn't work ( #692 )
2018-09-30 14:44:54 +09:00
Hajime Hoshi
15260537a2
graphics: Bug fix: fullscreen rendering was wrong
...
After fad65f2f5d
, the viewport size
is always same as the framebuffer size. The 'screen' image size
was the actual rendering region size, and padding was not
considered in the size. The padding is added on the fullscreen
mode.
This fix adds the extra padding values to the 'screen' image size
so that the 'screen' framebuffer will be same size as the monitor
size.
Fixes #693
2018-09-29 21:47:41 +09:00
Hajime Hoshi
fad65f2f5d
graphics: Use the viewport size same as the framebuffer size
...
Fixes #691
2018-09-29 19:53:22 +09:00
Hajime Hoshi
c4abed0a22
opengl: Add coments about #629
2018-09-29 02:20:23 +09:00
Hajime Hoshi
ce8d9df647
graphics: Update glTexImage2D signature
2018-09-10 12:44:42 +09:00
Hajime Hoshi
3d24ffe3e0
clock: Bug fix: function registerd OnStart might not be called
...
Fixes #645
2018-09-03 00:35:55 +09:00
Hajime Hoshi
42757b735b
internal/png: Update
2018-09-02 23:09:08 +09:00
Hajime Hoshi
8827520d4a
graphics: Bug fix: avoid jaggy rendering on macOS by adjusting texels ( #669 )
2018-08-30 00:17:03 +09:00
Hajime Hoshi
2360b2930f
graphics: Add DrawTriangles
...
Fixes #624
2018-08-14 01:23:14 +09:00
Hajime Hoshi
690c3cf981
graphics: Embed 'scale' part of the color matrix
...
If the color matrix includes only 'scale' part, they are embedded
into vertices in order to reduce draw calls.
Fixes #662
2018-08-10 23:20:55 +09:00
Hajime Hoshi
e46f9c6305
graphics: Bug fix: compile error
2018-08-10 03:10:57 +09:00
Hajime Hoshi
a03b335c24
graphics: Add logging when 'ebitendebug' tag is specified
...
Fixes #563
2018-08-10 02:39:07 +09:00
Hajime Hoshi
1aabdd58f1
restorable: Fix comments
2018-08-09 01:27:38 +09:00
Hajime Hoshi
3daaef2cab
restorable: Refactoring: Use ReplacePixels(nil, ...) for clearing an image
2018-08-09 01:16:46 +09:00
Hajime Hoshi
a988082be1
shareable: Bug fix: disable tests
2018-08-09 00:19:55 +09:00
Hajime Hoshi
c68c36b0b7
restoreable: Add ClearState to clear the state explicitly
...
Fixes #566
2018-08-09 00:12:45 +09:00
Hajime Hoshi
cdc408d2c2
shareable: Suspend re-using shared images
...
Fixes #661
2018-08-08 18:40:52 +09:00
Hajime Hoshi
ed99719fdb
devicescale: Use app.RunOnJVM and remove internal/jni
2018-08-06 23:50:37 +09:00
Hajime Hoshi
77e905eb25
Revert "graphics: Embed color matrices values to vertices ( #655 )"
...
This reverts commit 5a9235aaf9
.
2018-08-06 01:44:31 +09:00
Hajime Hoshi
9af8e621bd
Revert "affine: Refactoring: Unify two element slices into one"
...
This reverts commit da662b384c
.
2018-08-06 01:44:31 +09:00
Hajime Hoshi
af77a17aaa
devicescale: Use mainScreen instead of screens[0] to get the 'current' screen state
2018-08-05 19:18:40 +09:00
Hajime Hoshi
063edfcc4a
opengl: Use the safer way to pass Go string to C
2018-08-04 05:22:59 +09:00
Hajime Hoshi
18d77d3f6e
shareable: Rename variables
2018-08-03 02:50:11 +09:00
Hajime Hoshi
0956ca0ea6
graphicsutil: Add MipmapLevel
2018-07-31 01:47:03 +09:00
Hajime Hoshi
d7d02e6d6a
Reland: graphics: mipmap images should be volatile when the base image is volatile
...
This is not a bug fix, but should improve performance.
2018-07-30 00:26:36 +09:00
Hajime Hoshi
5be58086b5
Revert "graphics: Bug fix: mipmap images should be volatile when the base image is volatile"
...
This reverts commit 0f82330009
.
2018-07-29 23:58:46 +09:00
Hajime Hoshi
0f82330009
graphics: Bug fix: mipmap images should be volatile when the base image is volatile
2018-07-29 23:54:46 +09:00
Hajime Hoshi
0bf62f392f
shareable: Bug fix: forceShared should allocate backend as shareable
2018-07-29 23:49:53 +09:00
Hajime Hoshi
81094da3a1
shareable: Bug fix: test failures
2018-07-29 23:28:13 +09:00
Hajime Hoshi
056ed1c6db
shareable: Return color.RGBA instead of color.Color
2018-07-29 21:59:18 +09:00
Hajime Hoshi
b9265d5120
Enable to go-generate under non-GOPATH directories
2018-07-28 19:21:19 +09:00
Hajime Hoshi
88e488a5a6
docs: Update
2018-07-28 19:00:05 +09:00
Hajime Hoshi
da662b384c
affine: Refactoring: Unify two element slices into one
2018-07-27 01:51:49 +09:00
Hajime Hoshi
2b4785f863
affine: Remove unused function
2018-07-27 01:23:14 +09:00
Hajime Hoshi
5a9235aaf9
graphics: Embed color matrices values to vertices ( #655 )
...
Fixes #531
2018-07-26 11:37:27 +09:00
Hajime Hoshi
2559979c2b
shareable: Add tests
2018-07-25 01:08:04 +09:00
Hajime Hoshi
5beaf843a6
shareable: Bug fix: volatile or screen must not use shareable texture
2018-07-24 22:25:15 +09:00
Hajime Hoshi
b2a4ddf853
shareable: Refactoring: Add moveTo
2018-07-22 06:29:31 +09:00
Hajime Hoshi
693116ffd6
shareable: Bug fix: Double free
2018-07-22 05:52:11 +09:00
Hajime Hoshi
6687ffe8ba
shareable: Bug fix: SetFinalizer must not be reset at dispose(false)
2018-07-22 05:40:04 +09:00
Hajime Hoshi
c15348f939
packing: Improve panic messages
2018-07-22 05:29:02 +09:00
Hajime Hoshi
09dcba40ab
shareable: Rename variables
2018-07-22 04:32:36 +09:00
Hajime Hoshi
a6edb90898
shareable: Use the shared backend again in some conditions
...
Fixes #633
2018-07-22 04:03:35 +09:00
Hajime Hoshi
e3ab158d7d
affine: Allow absence of the translate part
2018-07-21 17:21:55 +09:00
Hajime Hoshi
9047e54ae6
shareable: Remove comments
2018-07-21 03:43:12 +09:00
Hajime Hoshi
5249afc06b
graphicsutil: Add QuadIndices
2018-07-21 03:40:37 +09:00
Hajime Hoshi
2e7745044d
shareable: Fix Image.DrawImage to accept vertices and indices
2018-07-21 03:30:27 +09:00
Hajime Hoshi
0593b77eb8
ui: Implement CurrentTPS
2018-07-18 02:11:00 +09:00
Hajime Hoshi
eb68cdad6e
ui: Bug fix: Freezing on calling SetVsyncEnabled
2018-07-17 02:37:22 +09:00
Hajime Hoshi
3a8ca5ad73
ui: Implement TPS/SetTPS
...
Fixes #605
Fixes #321
2018-07-17 01:58:00 +09:00
Hajime Hoshi
93f8c76310
internal/clock: Remove unused variables
2018-07-17 00:35:51 +09:00
Hajime Hoshi
408cc1e833
internal/clock: Refactoring
...
Update now returns 0 when tps is 0, and 1 when tps is negative.
2018-07-17 00:29:10 +09:00
Hajime Hoshi
88e6768a30
Use the term 'TPS' ticks per second
2018-07-16 04:36:47 +09:00
Hajime Hoshi
bbb777eecc
internal/clock: Use constant time to detect if the game is delayed too much
2018-07-16 03:02:55 +09:00
Hajime Hoshi
18ec1d8265
internal/clock: Update takes FPS
2018-07-16 01:03:23 +09:00
Hajime Hoshi
09c93ac86d
ui: Avoid using eval
2018-07-14 23:47:31 +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
a9a21132ae
graphics: Refactoring: Add pixelCommand
2018-07-12 02:40:06 +09:00
Hajime Hoshi
8f12dfc496
Use js.TypedArray
...
This is still WIP. There is a rendering issue on Wasm.
2018-07-06 02:48:51 +09:00
Hajime Hoshi
e4f157d9cd
opengl: Remove unused code
2018-06-30 12:34:40 +09:00
Hajime Hoshi
2c0f3d4302
opengl: Bug fix: wrong argument to js.Value.Call
2018-06-30 12:32:15 +09:00
Hajime Hoshi
6e51d31524
Use new GopherWasm API ( #634 )
...
I plan to merge this right after
https://github.com/gopherjs/gopherwasm/pull/3 is merged.
2018-06-30 00:02:15 +09:00
Hajime Hoshi
abdf52bc74
shareable: Bug fix: Call SetFinalizer whenever a new image is created
...
Fixes #637
2018-06-28 22:23:07 +09:00
Hajime Hoshi
f765966742
web: Remove unused variables
2018-06-28 00:17:05 +09:00
Hajime Hoshi
f19e349d38
web: Remove IsNodeJS
...
gjbt now creates a pseudo-Node environment by creating
window.process object, and this conflicted with an assumption that
Ebiten doesn't nothing on Node environment. See
https://github.com/myitcv/gjbt/pull/13 for the detail.
This change allows Ebiten work on pseudo-Node environment. Even
after this change, Ebiten doesn't work on real Node environment
due to lack of DOM.
2018-06-28 00:12:24 +09:00
Hajime Hoshi
dec921809b
shareable: Refactoring
2018-06-26 01:59:12 +09:00
Hajime Hoshi
a9359e4ef8
Use GopherJS/GopherWasm
2018-06-24 16:10:24 +09:00
Hajime Hoshi
8c9a11ddf4
opengl: Rely on gopherwasm for typed-array creation
2018-06-24 02:02:39 +09:00
Hajime Hoshi
ff86f8bd93
opengl: Refactoring
2018-06-23 04:43:56 +09:00
Hajime Hoshi
33e4f82d7c
graphicsutil: Optimization to avoid boundary checks
2018-06-23 03:18:54 +09:00
Hajime Hoshi
6c1c60d40d
opengl: Make Program struct to avoid Get()
2018-06-22 01:45:25 +09:00
Hajime Hoshi
55d832fc63
shareable: Don't extend textures on macOS
...
Fixes #593
2018-06-20 11:57:39 +09:00
Hajime Hoshi
d83799acf8
opengl: Bug fix: mobile build failure
2018-06-20 11:16:21 +09:00
Hajime Hoshi
8d644479cc
opengl: Initialize consts first to avoid 'Get' calls
2018-06-19 04:02:56 +09:00
Hajime Hoshi
62bd35e412
Avoid 'Get' call if possible
...
(*js.Value).Get has some overhead especially on Wasm.
2018-06-19 03:43:24 +09:00
Hajime Hoshi
702a429afb
opengl: Faster conversion from []float32 to Float32Array
2018-06-19 03:31:53 +09:00
Hajime Hoshi
840c4d24df
graphicsutil: Accept matrix parameters directly for performance
2018-06-19 00:19:32 +09:00