Commit Graph

1556 Commits

Author SHA1 Message Date
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