Commit Graph

2513 Commits

Author SHA1 Message Date
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
Philipp Steinhaus
39b3170185 input: Enable mouse wheel input (#628) 2018-06-18 00:38:30 +09:00
Hajime Hoshi
a3c754d2cc graphics: Restrict QuadVertices to allow only power of 2 sizes
Now QuadVertices can skip calculating power of 2 values.
2018-06-17 23:05:19 +09:00
Hajime Hoshi
12287a8382 graphicsutil: Reduce multiplying 2018-06-17 20:11:31 +09:00
Hajime Hoshi
ac24a8382f graphicsutil: Extract matrix applying for performance 2018-06-17 19:45:09 +09:00
Hajime Hoshi
1849b59741 graphicsutil: Refactoring 2018-06-17 17:29:36 +09:00
Hajime Hoshi
5d37c331bb graphicsutil: Remove unused arguments 2018-06-17 16:38:21 +09:00
Hajime Hoshi
95561bbf6b affine: Use float32 values for GeoM
float32 was slow on GopherJS, but not slow on Wasm.
2018-06-17 15:38:10 +09:00
Hajime Hoshi
4c2fc30311 graphicsutil: Don't allow nil GeoM 2018-06-17 01:48:56 +09:00
Hajime Hoshi
f6b7a6be73 graphics: Use copy function in appendVertices 2018-06-17 01:09:05 +09:00
Hajime Hoshi
b4ace53596 affine: Remove GeoM to avoid GeoM allocations on the heap 2018-06-17 00:59:50 +09:00
Hajime Hoshi
460c47a9eb opengl: Pass slices to js.Value 2018-06-16 02:19:18 +09:00
Hajime Hoshi
3fbe8d8ecb opengl: Change Shader/Program/Buffer to js.Value 2018-06-16 00:30:16 +09:00
Hajime Hoshi
2497b64cf7 opengl: Change uniformLocation to js.Value 2018-06-16 00:30:16 +09:00
Hajime Hoshi
17ccf06755 opengl: Change Texture/Framebuffer to js.Value 2018-06-16 00:30:16 +09:00
Hajime Hoshi
48e2c2aba9 opengl: Use gopherwasm 2018-06-16 00:30:16 +09:00
Hajime Hoshi
b87a851c0e ui: New GopherWASM API 2018-06-16 00:26:28 +09:00
Hajime Hoshi
a90b7efdf4 shareable: Refactoring 2018-06-11 01:02:25 +09:00
Hajime Hoshi
3ee76ffd8e graphicsutil: Move vertices.go to graphicsutil 2018-06-10 23:08:22 +09:00
Hajime Hoshi
9745ccee47 restorable: Make (*Image).DrawImage accept vertices and indices 2018-06-10 22:59:00 +09:00
Hajime Hoshi
97a54548df restorable: Rename vertices -> quadVertices 2018-06-10 20:41:17 +09:00
Hajime Hoshi
600983e028 restorable: Record indices for restoring 2018-06-10 20:17:48 +09:00
Hajime Hoshi
2e5e7e6e24 restorable: Remove merging commands for code simplicity 2018-06-10 20:06:17 +09:00
Hajime Hoshi
03079ba067 restorable: Refactoring 2018-06-10 18:40:46 +09:00
Hajime Hoshi
c782380a1c restorable: Specify indices from restorable package 2018-06-10 18:17:58 +09:00
Hajime Hoshi
2853895e6b graphics: Refactoring: Rename functions 2018-06-10 17:53:57 +09:00
Hajime Hoshi
32ac3840a7 graphics: Add comments 2018-06-10 17:10:11 +09:00
Hajime Hoshi
4e21bfd005 graphics: Rename elements -> indices 2018-06-10 17:06:40 +09:00
Hajime Hoshi
8a268e871f graphics: Specify indices before commands 2018-06-10 17:04:58 +09:00
Hajime Hoshi
be665a3526 ui: Better way to avoid blocking
Fixes #625
2018-06-09 13:36:35 +09:00
Hajime Hoshi
6e12f287b0 ui: Use goroutine to avoid blocking on GopherJS 2018-06-09 03:05:37 +09:00
Hajime Hoshi
e6d0943366 graphics: Rename color_matrix -> color_matrix_body 2018-06-06 02:46:54 +09:00
Hajime Hoshi
b86860abcc graphics: Call BindBuffer only when the program was null 2018-06-04 00:13:23 +09:00
Hajime Hoshi
fac639f9b7 graphics: Refactoring: Remove drawImageCommand.quadsNum 2018-06-03 23:58:08 +09:00
Hajime Hoshi
c9dd04d471 graphics: Refactoring: Remove command groups 2018-06-03 23:13:01 +09:00
Hajime Hoshi
9d87622a19 graphics: Set elements for every EnqueueDrawImageCommand 2018-06-03 20:42:45 +09:00
Hajime Hoshi
525ad04568 graphics: Split the notion of vertices and elements 2018-06-03 16:07:26 +09:00
Hajime Hoshi
25f2dfc677 graphics: Refactoring 2018-06-03 01:43:10 +09:00
Hajime Hoshi
03e3f0f5f7 graphics: Call glBufferSubData for element array buffer every frame
This is a preparation for more flexible drawing commands.
2018-05-31 00:53:05 +09:00
Hajime Hoshi
5e93d75ae0 graphics: Fix comments 2018-05-28 02:38:26 +09:00
Hajime Hoshi
399f965729 opengl: Add BindBuffer accepting both element-array-buffer and array-buffer
This change is a pure refactoring to clarify that array buffer is
binded before its usage.
2018-05-28 00:34:00 +09:00
Hajime Hoshi
311788dfe2 ui: Remove warnings of deadlock
Now gopherwasm fixed this problem by avoiding js.MakeFunc.

See also: 3fe87b73c0
2018-05-27 04:10:14 +09:00
Hajime Hoshi
8e9c3bd304 ui: Use gopherwasm 2018-05-27 02:35:17 +09:00
Hajime Hoshi
faaf391619 audio: Give up syncing audio timer and game timer (#617)
Syncing was already incomplete (e.g. decoding takes more than one
frame and delays can happen in this case). Giving up syncing audio
timer and game timer should not affect the game experience so much.
Instead, clock implementation will be much simpler.
2018-05-27 00:30:12 +09:00
Hajime Hoshi
5976e4bbbc audio: More intellegent suspending/resuming (#617)
Before this change, the audio is suspended when the game stops for
1/12[s]. However, as game often stops for more than 1/12[s]
especially on mobiles, this implemntation caused some audio
glitches.

This change fixes this problem by re-implementing suspending/
resumeing audio by detecting the window is active/focused or not.
2018-05-26 23:31:04 +09:00
Hajime Hoshi
d88d1be4ad mobile: Refactoring 2018-05-26 22:51:30 +09:00
Hajime Hoshi
980055e07a devicescale: Use gopherwasm 2018-05-25 02:00:41 +09:00
Hajime Hoshi
d894a13698 web: Use gopherwasm 2018-05-25 01:59:50 +09:00
Hajime Hoshi
2ec075004a clock: Use gopherwasm 2018-05-25 01:14:31 +09:00
Hajime Hoshi
4c5613d73c opengl: Remove unneeded casts 2018-05-23 01:29:16 +09:00
Hajime Hoshi
b84dc0585d opengl: Remove dependencies on gopherjs/webgl
This is a preparation for #528
2018-05-23 00:48:24 +09:00
Hajime Hoshi
81a1fd4744 testflock: Use just sync.Mutex on browsers (#615) 2018-05-19 21:10:34 +09:00
Hajime Hoshi
0637a812bc web: Fix detecting mobile browsers for NodeJS 2018-05-16 22:29:19 +09:00
Hajime Hoshi
a5eb1b84ab web: Better way to detect NodeJS 2018-05-16 22:10:35 +09:00
Hajime Hoshi
c2df8326fc ui: Refactoring: Use IsNodeJS 2018-05-16 22:02:33 +09:00
Hajime Hoshi
d7d892f2d6 graphics: Allow a little margin for edge pixels 2018-05-13 23:00:06 +09:00
Hajime Hoshi
a1dd7b39a3 graphics: Remove roundTexel function
Actually, at least 704d4cf464,
examples/moire doesn't work well without roundTexel on MacBook Pro.
However, now other parts are fixed (e.g. highp is used), it looks
like roundTexel is no longer needed.
2018-05-13 22:30:22 +09:00
Hajime Hoshi
b402cddd01 graphics: Bug fix: wrong refactoring in shader 2018-05-13 14:20:54 +09:00
Hajime Hoshi
efaa5aa17a graphics: Refactor shader 2018-05-13 03:31:28 +09:00
Hajime Hoshi
3ccfe087d9 Refactoring 2018-05-12 15:25:01 +09:00
Hajime Hoshi
453921f1d3 ui: Bug fix: sizeChange must be set after updateFullscreenScaleIfNeeded 2018-05-12 02:11:37 +09:00
Hajime Hoshi
f5336ce7bc opengl: Use 'EXT' functions for framebuffers
Some pretty old machines don't support OpenGL 3.x or later, and in
such environment, some framebuffer functions like glGenFramebuffers
are not available. Instead, EXT versions can be used even on
machines that don't support OpenGL 3.x.

After this change, Ebiten always tries to use EXT version of
framebuffer functions. I believe EXT version is always available
when non-EXT version is available, so this chang eshould be safe.

Fixes #602
2018-05-10 02:11:23 +09:00
Hajime Hoshi
92631e64ed Remove internal/sync
nosync package for GopherJS is problematic since nosync's mutex
assumes that Lock call is never duplicated, which is not true in
actual applications.

See also #603.
2018-05-09 23:41:08 +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
d41f959b96 ui: Initialize GLFW before Run 2018-05-04 23:55:23 +09:00
Hajime Hoshi
f1927d8aca shareable: Add tests 2018-05-03 14:10:43 +09:00
Hajime Hoshi
03dcd94884 shareable: Bug fix: Don't mark disposed when the image becomes not shared 2018-05-03 11:49:55 +09:00
Hajime Hoshi
9efccea31c ui: Add SetWindowTitle
Fixes #595
2018-05-02 19:21:17 +09:00
Hajime Hoshi
0e19aa558a graphics: Remove unneeded GL calls 2018-05-02 01:12:17 +09:00
Hajime Hoshi
6a34b87a6c opengl: Refactoring 2018-05-02 01:01:04 +09:00
Hajime Hoshi
ea1444ea7e shareable: Add checks at operations for disposed images 2018-04-30 03:34:35 +09:00
Hajime Hoshi
9df977dff8 shareable: Add 'disposed' state instead of 'allocated' state 2018-04-30 03:30:10 +09:00
Hajime Hoshi
5dc1df3260 shareable: Fix tests 2018-04-29 19:15:04 +09:00
Hajime Hoshi
1f1847c259 shareable: Remove println 2018-04-29 19:10:36 +09:00
Hajime Hoshi
9c408dce7c shareable: Lazy allocation (#592)
Clear is called when an image becomes a render target, and it
looks like Clear causes the memory spikes.

Before this change, when an image is created, shared region on a GL
texture is allocated. After that, the image's region is copied to
non-shared region when the image becomes a rendering target.

After this change, an image is not allocated on a GL texture first,
and allocated only when it is necessary. Then, Clear calls can be
avoided as much as possible.
2018-04-29 18:51:51 +09:00
Hajime Hoshi
916c7aac8a restorable: Fix comments 2018-04-29 13:49:33 +09:00
Hajime Hoshi
45afb6db67 Reland: restorable: Merge Clear to ReplacePixel 2018-04-29 13:40:18 +09:00
Hajime Hoshi
613f384cb5 graphics: Add EBITEN_DUMP_IMAGES_KEY
Fixes #589
2018-04-28 22:08:20 +09:00
Hajime Hoshi
eb357f61b5 restorable: Bug fix: Calling At must resolve the image's stale state 2018-04-28 21:56:20 +09:00
Hajime Hoshi
b22cc9d4be Add periods after 'DO NOT EDIT' 2018-04-28 03:37:19 +09:00
Hajime Hoshi
0bc712422f restorable: Bug fix: Remove SetFinalizer for disposing
SetFinalizer causes concurrent issue
2018-04-27 12:08:59 +09:00
Hajime Hoshi
dff492955d shareable: Reset finalizer in any cases 2018-04-26 01:51:57 +09:00
Hajime Hoshi
1cf4f30541 Revert "restorable: Merge Clear to ReplacePixels"
This reverts commit fb641d88cd.

Reason: When restoring the image where ReplacePixels is called,
dummyImage might not be restored since there is no record of
relationships between this image and dummyImage. Now pixels is not
nil when reverting by chance, but this would cause problems in the
future.
2018-04-25 22:31:48 +09:00
Hajime Hoshi
fb641d88cd restorable: Merge Clear to ReplacePixels
This can avoid unnecessary stale images that requires loading
pixels from GPU.
2018-04-25 01:30:57 +09:00
Hajime Hoshi
1571e04753 Revert "graphics: Call glFlush after glTexSubImage2D for MacBook Pro"
This reverts commit 7f5719fadd.

Reason: This didn't change the situation
2018-04-22 22:06:38 +09:00
Jake Bentvelzen
2f4ca72dbd input: Add Pause and Print Screen buttons (#555)
Fixes #579
2018-04-21 09:36:28 -07:00
Hajime Hoshi
3fa2beb502 Fix the do-not-edit comment https://golang.org/s/generatedcode 2018-04-20 00:54:33 -07:00
Hajime Hoshi
b691e73342 Revert "graphics: Experimental fix: call glFlush always after glTexSubImage2D"
This reverts commit d2da77eb96.

Reason: This doesn't solve the issue on MacBook Late 2013.
2018-04-14 23:16:26 +09:00
Hajime Hoshi
d2da77eb96 graphics: Experimental fix: call glFlush always after glTexSubImage2D 2018-04-14 23:06:20 +09:00
Hajime Hoshi
7f5719fadd graphics: Call glFlush after glTexSubImage2D for MacBook Pro 2018-04-14 17:59:10 +09:00
Hajime Hoshi
d1ef57c280 input: Remove the last period from do-not-edit comment 2018-04-14 04:22:09 +09:00
Hajime Hoshi
61d4df0e04 input: Add numpad keys for Edge (#580) 2018-04-14 02:43:31 +09:00
Hajime Hoshi
dd6110fbf8 input: Add KeyNumLock (#580) 2018-04-14 02:43:26 +09:00
Hajime Hoshi
5229e5a713 input: Add numpad keys except for Edge browser (#580) 2018-04-14 02:43:21 +09:00
Hajime Hoshi
4708d4a6f9 Add internal/png 2018-04-10 04:17:41 +09:00
Hajime Hoshi
070c8ec737 shareable: Rename variables 2018-04-09 02:18:46 +09:00
Hajime Hoshi
899f007fd0 ui: Panic when error is found on mobile 2018-04-07 03:33:20 +09:00
Hajime Hoshi
2d3c6ab5b8 ui: Remove build tag 'gomobilebuild'
Fixes #573
2018-04-07 02:14:54 +09:00
Hajime Hoshi
9902497e3d test: Use flock to make tests exclusive
Fixes #575
2018-04-07 00:59:52 +09:00
Hajime Hoshi
e77eb9f80f shareable: Temporary disable tests (#575) 2018-04-06 03:47:05 +09:00
Hajime Hoshi
cc725b99af restorable: Replace emptyImage with dummyImage 2018-04-06 03:08:52 +09:00
Hajime Hoshi
70f16daafd restorable: Fix tests (wrong assumption was used) 2018-04-06 02:15:49 +09:00
Hajime Hoshi
7b5ad46e49 shareable: NewImage* now returns a cleared image 2018-04-06 02:08:12 +09:00
Hajime Hoshi
1a335032a2 shareable: Bug fix: backend's restorable image must be disposed 2018-04-06 01:12:08 +09:00
Hajime Hoshi
8ff79c970a shareable: Use defer for tests 2018-04-05 12:02:08 +09:00
Hajime Hoshi
24e20306f2 restorable: Move 'putting random-colored dot' to restorable 2018-04-05 11:18:28 +09:00
Hajime Hoshi
810dc33b4a shareable: Fix comments 2018-04-05 02:41:50 +09:00
Hajime Hoshi
15dcd5764d shareable: Add shareable_test 2018-04-05 02:35:30 +09:00
Hajime Hoshi
6680b4f8d5 shareable: Bug fix: wrong source image rect in ensureNotShared 2018-04-05 01:07:36 +09:00
Hajime Hoshi
92e5bc31dc shareable: Refactoring 2018-04-05 00:40:35 +09:00
Hajime Hoshi
fcf4657a70 ui: Adjust touch positions at ui package (mobile) 2018-04-03 01:50:07 +09:00
Hajime Hoshi
76cb43a7f8 input: Refactoring: Remove unused arguments 2018-04-03 01:21:52 +09:00
Hajime Hoshi
0f2beab260 ui: Adjust touch positions in ui package (js) 2018-04-03 00:53:09 +09:00
Hajime Hoshi
c540d0fc0d ui: Add AdjustedTouches for consistency 2018-04-02 01:54:44 +09:00
Hajime Hoshi
e44a930bbb input: Refactoring 2018-04-02 01:19:42 +09:00
Hajime Hoshi
7d2fd9654a input: Adjust mouse cursor position in ui package 2018-04-01 23:53:26 +09:00
Hajime Hoshi
4de2dc0240 Add input package 2018-04-01 23:20:45 +09:00
Hajime Hoshi
e14c05b0fe shareable: Add comments 2018-03-26 00:13:26 +09:00
Hajime Hoshi
ab7a3e1ab3 graphics: Remove unneeded mutex 2018-03-25 23:55:38 +09:00
Hajime Hoshi
c767c0631e restorable: Remove unneeded mutex 2018-03-25 23:40:39 +09:00
Hajime Hoshi
97ce612785 Refactoring: Don't access restorable package directly from ebiten package 2018-03-25 23:37:32 +09:00
Hajime Hoshi
ce8b9283a1 Re^2-land: shareable: Implement extending shareable texture again 2018-03-25 22:41:15 +09:00
Hajime Hoshi
125e5c4f32 restorable: Bug fix: Image must be protected with locks (#567) 2018-03-25 22:31:51 +09:00
Hajime Hoshi
e2632e358e restorable: Add TestDoubleResolve 2018-03-25 21:09:26 +09:00
Hajime Hoshi
025fd00e6b restorable: Bug fix: Make the image stale when pixels are partly replaced 2018-03-25 20:39:06 +09:00
Hajime Hoshi
fc47d2843a restorable: Add TestRestoreChain2 2018-03-25 19:43:32 +09:00
Hajime Hoshi
c0b1919020 opengl: Refactoring: More similar way to golang.org/x/mobile/app 2018-03-25 18:23:34 +09:00
Hajime Hoshi
c47b549fd1 restorable: Refactoring: Make functions more atomic 2018-03-25 18:21:43 +09:00
Hajime Hoshi
99f72a1b64 restorable: Bug fix: commands must be flushed at At 2018-03-25 01:26:43 +09:00
Hajime Hoshi
8149ace52c restorable: Add TestDispose 2018-03-25 00:50:11 +09:00
Hajime Hoshi
0acf021e03 restorable: Dispose images explicitly when restoring (#567) 2018-03-24 23:27:08 +09:00
Hajime Hoshi
1616373819 restorable: Ensure the given image is not nil at makeStaleIfDependingOn 2018-03-24 21:57:22 +09:00
Hajime Hoshi
b15fb523a8 shareable: Rename variables 2018-03-24 04:27:10 +09:00
Hajime Hoshi
b92bc6f21c Revert "shareable: Implement extending shareable texture again"
This reverts commit b474946619.

Reason: #567
2018-03-24 04:23:00 +09:00
Hajime Hoshi
2110191794 mobile: Accept gomobile build (#249) 2018-03-24 02:52:42 +09:00
Hajime Hoshi
9009b293e5 graphics: Remove type assertion 2018-03-21 16:51:27 +09:00
Hajime Hoshi
23c2fc0134 Revert "graphics: Remove type assertion"
This reverts commit ff331d031a.

Compile error
2018-03-21 16:48:51 +09:00
Hajime Hoshi
ff331d031a graphics: Remove type assertion 2018-03-21 16:45:57 +09:00
Hajime Hoshi
09166a6c42 graphics: Fix shaders cleaner way 2018-03-21 03:36:36 +09:00
Hajime Hoshi
0a5deab0a2 graphics: Reland Bug fix: More strict calculation for the nearest filter (#558)
Better version of bae8f9d874
2018-03-21 02:40:26 +09:00
Hajime Hoshi
b8025d06f8 opengl: Specify texture wrap (CLAMP_TO_EDGE) 2018-03-21 02:27:11 +09:00
Hajime Hoshi
b157f2d6d0 Revert "graphics: Bug fix: More strict calculation for the nearest filter (#558)"
This reverts commit bae8f9d874.

Reason: TravisCI failed
2018-03-20 04:16:37 +09:00
Hajime Hoshi
a40dc5cf22 graphics: Refactoring shader 2018-03-20 04:05:09 +09:00
Hajime Hoshi
bae8f9d874 graphics: Bug fix: More strict calculation for the nearest filter (#558) 2018-03-20 04:05:03 +09:00
Hajime Hoshi
aaa603dd08 Revert "Revert "shareable: Avoid unneeded extending images""
This reverts commit 96b9f09058.

Fixes #561
2018-03-20 02:15:49 +09:00
Hajime Hoshi
3e929de08a shareable: Revert extending images
Fixes #562
2018-03-20 02:14:04 +09:00
Hajime Hoshi
be4e3ab801 restorable: Bug fix: partial ReplacePixels broke the image state (#562) 2018-03-20 02:14:00 +09:00
Hajime Hoshi
9d37221743 restorable: Refactoring 2018-03-19 23:55:06 +09:00
Hajime Hoshi
927a4388b5 graphics: Bug fix: rounding texels is required even on the nearest filter
Fixes #558
2018-03-19 10:37:18 +09:00
Hajime Hoshi
d421648e57 shareable: Bug fix: workaround to fix #562 by disabling extending 2018-03-19 03:26:31 +09:00
Hajime Hoshi
96b9f09058 Revert "shareable: Avoid unneeded extending images"
This reverts commit ce4e00ff79.

Reason: #560
2018-03-19 02:28:17 +09:00
Hajime Hoshi
b5d065151a restorable: Don't flatten vertices until actually needed 2018-03-18 23:54:45 +09:00
Hajime Hoshi
de3a8d8893 restorable: Remove comments 2018-03-18 18:14:11 +09:00
Hajime Hoshi
5ec5cf2450 ui: Add comments 2018-03-17 18:34:20 +09:00
Hajime Hoshi
526fbd3619 ui: Implement SetWindowDecorated and IsWindowDecorated
Fixes #430.
2018-03-17 18:30:55 +09:00
Hajime Hoshi
ce4e00ff79 shareable: Avoid unneeded extending images 2018-03-17 17:41:36 +09:00
Hajime Hoshi
e7925a12bd shareable: Refactoring 2018-03-16 01:21:33 +09:00
Hajime Hoshi
1b0e71765f internal/hooks: Rename Update -> BeforeUpdate 2018-03-15 02:50:10 +09:00
Hajime Hoshi
61d7f1e9b5 affine: Bug fix: (*GeoM).det() was wrong (#547) 2018-03-12 11:11:53 +09:00
Hajime Hoshi
c2872017ab affine: Add GeoM.Invert, IsInvertible (#547) 2018-03-11 19:13:39 +09:00
Hajime Hoshi
efea65ee58 graphics: Bug fix: wrong texels were used (#546) 2018-03-11 04:11:49 +09:00
Hajime Hoshi
b474946619 shareable: Implement extending shareable texture again
Related to #509
2018-03-11 01:36:47 +09:00
Hajime Hoshi
c37dd9d961 packing: Add Extend 2018-03-11 01:13:53 +09:00
Hajime Hoshi
48408cba11 shareable: Bug fix: Protect critical sections 2018-03-11 00:38:49 +09:00
Hajime Hoshi
c411ca492f shareable: Set finalizers 2018-03-11 00:07:32 +09:00
Hajime Hoshi
a2d6ae7eee shareable: Rename ImagePart -> Image 2018-03-11 00:05:06 +09:00
Hajime Hoshi
6c6b25647a shareable: Rename Image -> backend 2018-03-11 00:02:23 +09:00
Hajime Hoshi
df3960a97c Add internal/shareable 2018-03-10 23:59:26 +09:00
Hajime Hoshi
9555e83589 packing: Add IsEmpty tests 2018-03-10 21:27:11 +09:00
Hajime Hoshi
6c9d9dbaff packing: Improve test errors 2018-03-10 21:02:04 +09:00
Hajime Hoshi
1583cd0f7b packing: Enable to specify max size of a page 2018-03-10 20:53:20 +09:00
Hajime Hoshi
9c72671232 Revert "packing: Add Extend"
This reverts commit 1dd32066d2.

Reason: #542
2018-03-09 16:02:57 +09:00
Hajime Hoshi
e977019d2f graphics: Detect maximum texture size for each environment
Fixes #537, #539

See also #541
2018-03-09 11:47:23 +09:00
Hajime Hoshi
0418ce0761 graphics: Refactoring: Remove duplication of checking image size 2018-03-09 11:04:02 +09:00
Hajime Hoshi
4628154478 graphics: Remove unused flipY member 2018-03-09 03:26:14 +09:00
Hajime Hoshi
00d8e793d9 restorable: Remove MaxImageSize 2018-03-09 02:50:38 +09:00
Hajime Hoshi
2c62e64a9e Revert "internal/graphics: increase defaultViewportSize to 8192 (#538)"
This reverts commit a60976f260 Per #541.
2018-03-09 02:13:44 +09:00
Hajime Hoshi
bc8a96eda7 graphicsutil: Avoid duplicated copying
Fixes #521
2018-03-09 01:00:23 +09:00
Hajime Hoshi
4c7025a05f graphicsutil: Add tests 2018-03-09 00:19:10 +09:00
Hajime Hoshi
2dc4f3fdf0 opengl: Remove FillFramebuffer
Fixes #536
2018-03-08 12:01:24 +09:00
Andrew Gerrand
a60976f260 internal/graphics: increase defaultViewportSize to 8192 (#538)
This makes it possible to run ebiten applications in full screen on 5k
displays, such as Apple's 27" iMac.

Fix issue #537
2018-03-08 11:53:49 +09:00
Hajime Hoshi
ef5de62780 Follow the standard comment rule
See https://golang.org/s/generatedcode
2018-03-08 02:47:59 +09:00
Hajime Hoshi
86be32dfb5 packing: Add comments 2018-03-08 00:18:28 +09:00
Hajime Hoshi
1dd32066d2 packing: Add Extend 2018-03-08 00:14:51 +09:00
Hajime Hoshi
8ac2ebde1e packing: Rename tests 2018-03-07 02:29:11 +09:00
Hajime Hoshi
951568e403 packing: Refactoring 2018-03-06 02:52:36 +09:00
Hajime Hoshi
7e70d5ca69 Rename bsp -> packing 2018-03-06 00:38:56 +09:00
Hajime Hoshi
8d98f297f2 graphics: Refactoring: Avoid type switch 2018-03-05 00:00:25 +09:00
Hajime Hoshi
f1ba3e5894 affine: Optimization Equals 2018-03-04 23:23:11 +09:00
Hajime Hoshi
3479b80f1c opengl: Use unsafe-way to convert []float32/[]uint16 to []byte; Remove internal/endian 2018-03-04 18:06:35 +09:00
Hajime Hoshi
7da65d64be bsp: Make bsp concurrent safe
Fixes #530. Finalizers can be called on different goroutines
2018-03-04 02:33:32 +09:00
Hajime Hoshi
8dbb11a23c graphicsutil: Remove Gosched that might be harmful on browsers
This was introduced at 006f87d02b but this can be harmful when many images are created by NewImageFromImage
2018-03-03 23:43:57 +09:00
Hajime Hoshi
08610fcd8b bsp: Fix tests 2018-03-03 23:30:59 +09:00
Hajime Hoshi
4ae9d5780c graphics: Implement shared texture (#514) 2018-03-03 19:54:53 +09:00
Hajime Hoshi
247cd6e1c3 Add graphicsutil package 2018-03-02 12:34:56 +09:00
Hajime Hoshi
d4112004b0 graphics: Move calculating source region from restorable package 2018-03-02 12:20:44 +09:00
Hajime Hoshi
d0592d30e0 graphics: Improve clearing the offscreen performance 2018-03-02 01:55:40 +09:00
Hajime Hoshi
e5089934db graphics: Bug fix: Don't delete buffers on browsers (#526) 2018-03-02 01:06:21 +09:00
Hajime Hoshi
4c1cc9e699 ui: Bug fix: exit update function once when the context is lost (#526) 2018-03-02 01:05:54 +09:00
Hajime Hoshi
dada2e060a restorable: Bug fix: Don't use graphics.Image for clearing framebuffer 2018-03-02 01:05:54 +09:00
Hajime Hoshi
cd8368deaf restorable: Add TODO comment 2018-03-02 00:00:09 +09:00
Hajime Hoshi
db738676ce restorable: Refactoring: clearIfVolatile 2018-03-01 23:13:23 +09:00
Hajime Hoshi
b8deabbd94 graphics: Reland: Bug fix: a too old frame was rendered at least on Android
Fixes #525
2018-03-01 23:05:28 +09:00
Hajime Hoshi
1a898dd1b9 Add comments 2018-03-01 02:49:45 +09:00
Hajime Hoshi
676a023a30 restorable: Remove unneeded NextPowerOf2Int usage 2018-03-01 02:45:23 +09:00
Hajime Hoshi
1068156215 restorable: Add restoring case to TestReplacePixels 2018-03-01 02:43:59 +09:00
Hajime Hoshi
127f6c09c8 graphics: Specify rect to glTexSubImage2D 2018-03-01 01:58:09 +09:00
Hajime Hoshi
9f6fd0db9a graphics: Use the original width/height for glTexSubImage2D 2018-03-01 00:47:37 +09:00
Hajime Hoshi
15d2e6b82b graphics: Fix comments 2018-02-28 23:40:43 +09:00
Hajime Hoshi
c624359163 graphics: Remove glClear before glTexSubImage2D, that is no longer needed 2018-02-28 23:35:05 +09:00
Hajime Hoshi
02b4fc7917 graphics: Reduce num of Image.Clear() calls 2018-02-28 23:11:12 +09:00
Hajime Hoshi
9db042ae9e graphics: Refactoring: easier way to clear framebuffer 2018-02-28 22:46:57 +09:00
Hajime Hoshi
8ef0f1ac6a restorable: Avoid unneeded discarding images 2018-02-28 15:56:51 +09:00
Hajime Hoshi
dca60a2520 affine: Make initial affine.GeoM{} value identity (again) 2018-02-28 02:38:57 +09:00
Hajime Hoshi
1a2a108639 affine: Add comments 2018-02-28 02:21:07 +09:00
Hajime Hoshi
2f1908b05c restorable: Use nil instead of empty affine.ColorM 2018-02-28 02:14:10 +09:00
Hajime Hoshi
ccd9241b07 affine: Refactoring ColorM 2018-02-28 02:14:09 +09:00
Hajime Hoshi
8c8e512059 affine: User nillable pattern for ColorM 2018-02-28 02:14:06 +09:00
Hajime Hoshi
bea63946fc affine: Bug fix: ColorM.Apply was wrong when alpha is 0 2018-02-27 12:16:16 +09:00
Hajime Hoshi
adbd0db765 restorable: Accept source rect and geom instead of vertices 2018-02-27 01:35:30 +09:00
Hajime Hoshi
2bd099014b affine: Remove geoMImpl and use nillable pattern 2018-02-27 01:02:53 +09:00
Hajime Hoshi
f953afc518 internal/bsp: Refactoring 2018-02-26 11:26:32 +09:00
Hajime Hoshi
798a826e50 internal/bsp: Allow 1 pixel 2018-02-26 11:21:50 +09:00
Hajime Hoshi
ed2bd6defc internal/bsp: Fix algorithm 2018-02-26 11:20:20 +09:00
Hajime Hoshi
519a75e5a8 restorable: Bug fix: Clearing framebuffers was not complete 2018-02-25 23:53:27 +09:00
Hajime Hoshi
86671f3337 opengl: Remove pixels argument from NewTexture 2018-02-25 23:34:34 +09:00
Hajime Hoshi
85b133dad0 graphics: Remove NewImageFromImage command 2018-02-25 23:22:49 +09:00
Hajime Hoshi
9adc1ac6a0 Revert "graphics: Refactoring: clearing framebuffer"
This reverts commit 58f5c9c1d0.

Fixes #515
2018-02-25 22:04:04 +09:00
Hajime Hoshi
b88b86e0e7 Add internal/bsp (#514) 2018-02-25 21:26:12 +09:00
Hajime Hoshi
0cc456b534 ui: Rename sizeChanged -> toChangeSize 2018-02-25 00:44:45 +09:00
Hajime Hoshi
04341a014c ui: Add comments 2018-02-25 00:44:41 +09:00
Hajime Hoshi
58f5c9c1d0 graphics: Refactoring: clearing framebuffer 2018-02-24 23:51:05 +09:00
Hajime Hoshi
a2d40e0908 graphics: Remove offsetX/offsetY from framebuffer 2018-02-24 23:35:55 +09:00
Hajime Hoshi
c5d1f11d95 graphics: Remove unused argument from projectionMatrix 2018-02-24 23:33:28 +09:00
Hajime Hoshi
9da5099060 graphics: Refactoring: Flip Y by geometry matrix instead of projection matrix 2018-02-24 23:32:36 +09:00
Hajime Hoshi
a644e92298 restorable: Better calculation to clear restorable.Image 2018-02-24 21:16:30 +09:00
Hajime Hoshi
da20b3f49a restorable: Bug fix: Clear screen framebuffer on fullscreen mode
Fixes #513
2018-02-24 20:48:47 +09:00
Hajime Hoshi
692f36f664 graphics: Add comments 2018-02-24 20:40:26 +09:00
Hajime Hoshi
78a58fd1ae ui: Bug fix: userInterface.fullscreen() must be called from the main thread 2018-02-24 18:10:39 +09:00
Hajime Hoshi
b58dc26832 graphics: Remove fillCommand 2018-02-24 16:19:43 +09:00
Hajime Hoshi
fe7aae32a0 restorable: Remove graphics.Image.Fill usage 2018-02-24 16:18:18 +09:00
Hajime Hoshi
2ba89591db restorable: Remove Fill 2018-02-24 15:14:53 +09:00
Hajime Hoshi
a87f197c1b ui: Add TODO 2018-02-24 14:50:45 +09:00
Hajime Hoshi
af64f8689a graphics: Fix screen filter calculation 2018-02-24 04:25:07 +09:00
Hajime Hoshi
9fba60ca03 Revert "graphics: Adjust texel positions for consitency"
This reverts commit 816fb314a4.
2018-02-24 01:52:49 +09:00
Hajime Hoshi
816fb314a4 graphics: Adjust texel positions for consitency
On second thought, given pixel coords represent a center of texels...
2018-02-24 01:52:05 +09:00
Hajime Hoshi
7c66d884d4 graphics: Adjusting position is no longer needed
Now pixel position is treated as left-upper in linear filter
2018-02-24 01:32:48 +09:00
Hajime Hoshi
e5a2cf29c0 graphics: Bug fix: pixel coord is upper-left by default 2018-02-24 01:16:32 +09:00
Hajime Hoshi
c76ff5ceb2 graphics: Bug fix: fix screen filter calculation
Fixes #512
2018-02-23 23:13:20 +09:00
Hajime Hoshi
2507379494 restorable: Skip resolving stale images when possible 2018-02-23 03:19:20 +09:00
Hajime Hoshi
b036cac616 graphics: Fix screen filter calculation 2018-02-23 02:36:12 +09:00
Hajime Hoshi
591e0ad995 graphics: Add 'screen' filter for fast rendering (#509) 2018-02-23 01:28:35 +09:00
Hajime Hoshi
092cb2f3f6 graphics: Reset source size parameter just in case 2018-02-22 11:27:15 +09:00
Hajime Hoshi
d4b8b99784 ui: Bug fix: return is needed for Edge case
Fixes #507
2018-02-21 21:53:49 +09:00
Hajime Hoshi
30e48d5c3c graphics: Stop unnecessary copy of elements (projection matrix) 2018-02-20 01:36:56 +09:00
Hajime Hoshi
40b1948baa graphics: Stop unnecessary copy of elements 2018-02-20 01:17:21 +09:00
Hajime Hoshi
f1f7e5bcec affine: Transpose ColorM implementation for optimization 2018-02-20 00:53:53 +09:00
Hajime Hoshi
9b361086d7 affine: Use float32 inside of ColorM 2018-02-20 00:33:56 +09:00
Hajime Hoshi
2db1753503 opengl: Remove struct usages to avoid copying (texture) 2018-02-19 02:49:00 +09:00
Hajime Hoshi
f85c846596 opengl: Remove invalidFramebuffer and use nil instead 2018-02-19 02:22:05 +09:00
Hajime Hoshi
1154fcf470 opengl: Remove unused casts 2018-02-19 02:20:28 +09:00
Hajime Hoshi
2936ea5080 opengl: Remove struct usages to avoid copying (framebuffer) 2018-02-19 02:18:56 +09:00
Hajime Hoshi
9400720ddf opengl: Remove struct usages to avoid copying (shader) 2018-02-19 02:06:06 +09:00
Hajime Hoshi
9dc68289b8 opengl: Remove struct usages to avoid copying (buffer) 2018-02-19 02:03:01 +09:00
Hajime Hoshi
c6cf8e5184 opengl: Remove struct usages to avoid copying (program) 2018-02-19 01:45:03 +09:00
Hajime Hoshi
2fbfd0bdcb opengl: Remove struct usages to avoid copying 2018-02-19 01:38:17 +09:00
Hajime Hoshi
896a47b2ee affine: Reduce copying cost of GeoM 2018-02-18 23:39:24 +09:00
Hajime Hoshi
6ef4bbde2d graphics: Add FilterDefault; Make DrawImageOptions specify Filter (#453) 2018-02-14 02:59:44 +09:00
Hajime Hoshi
929dfa1cfb affine: Implement ColorM.Add for backward compatibility: Don't use this anyway 2018-02-13 03:06:19 +09:00
Hajime Hoshi
cc423c276d ui: Avoid creating empty slice at Touches 2018-02-12 20:23:24 +09:00
Hajime Hoshi
7d9b901ab3 ui: Avoid creating empty slice at GamepadIDs 2018-02-12 20:20:39 +09:00
Hajime Hoshi
95480d0644 affine: Separate ColorM impl into two slices
This fix avoids unnecessary allocating arrays.
2018-02-12 19:01:01 +09:00
Hajime Hoshi
392ee92aeb Add internal/hooks to replace internal/audiobinding 2018-02-04 17:33:17 +09:00
Hajime Hoshi
e3023889ac ui: Change RegularTermination to a value 2018-02-04 00:22:38 +09:00
Hajime Hoshi
24d7487fc7 graphics: Bug fix: TestImageTooManyFill didin't pass on some machines (reland)
Fixes #492
2018-02-03 23:03:18 +09:00
Hajime Hoshi
9ece27e7e8 Revert "graphics: Bug fix: TestImageTooManyFill didin't pass on some machines"
This reverts commit 7cb7b7b4ff.
2018-02-03 20:39:33 +09:00
Hajime Hoshi
7cb7b7b4ff graphics: Bug fix: TestImageTooManyFill didin't pass on some machines
Fixes #492
2018-02-03 20:36:16 +09:00
Hajime Hoshi
595e654123 graphics: Bug fix: pixels read from GPU might include errors (#492) 2018-02-03 16:43:42 +09:00
Hajime Hoshi
65b71ad79d restorabel: uint8 -> byte 2018-02-03 16:36:43 +09:00
Hajime Hoshi
4bbb4b0445 graphics: Remove unneeded comments (#491) 2018-02-03 03:32:03 +09:00
Hajime Hoshi
52350c1b1b graphics: Bug fix: TestImageEdge failed on MacBook Pro (#491) 2018-02-03 03:30:09 +09:00
Hajime Hoshi
beaa060ce3 graphics: Adjust texel values that can be exactly on the edges of the source rect (#491) 2018-02-03 02:07:46 +09:00
Hajime Hoshi
8b2ed6cddd ui: Update GraphicsContext every frame (#490) 2018-02-02 02:08:03 +09:00
Hajime Hoshi
80596820cf graphics: Replace []uint8 with []byte 2018-01-28 22:40:36 +09:00
seebs
0b7ba8e573 Do GeoM projection on CPU (#477)
Handling GeoM projection on CPU may seem like a weird choice, given
how fast GPU is, but it pays off:

* You only have to do a very small subset of the actual matrix
  multiply.
* You don't have to construct a matrix in the vertex shader.
* Six fewer float32 values per vertex.
* You do still have to do the matrix computation for each vertex,
  though.

Signed-off-by: Seebs <seebs@seebs.net>
2018-01-14 16:01:55 +09:00
Hajime Hoshi
38c72faf95 ui: Deprecate SetCursorVisibility and add SetCursorVisible (#407) 2018-01-09 02:01:33 +09:00
Hajime Hoshi
d8c0d88960 clock: Add comments 2018-01-07 21:12:25 +09:00
Hajime Hoshi
1e33cbb66f clock: Remove limitation of the number of frames to be updated 2018-01-07 20:20:02 +09:00
Hajime Hoshi
d5d5ebb0b3 clock: Make ProceedAudioTimer take a number of frames 2018-01-07 18:32:19 +09:00
Hajime Hoshi
d12a3d4073 clock: Refactoring 2018-01-07 17:10:56 +09:00
Hajime Hoshi
0a911b28b2 ui: Remove unneeded variable deviceScale 2018-01-07 14:51:25 +09:00
Hajime Hoshi
34d2e9a3fb ui: Remove unused function 2018-01-07 05:25:29 +09:00
Hajime Hoshi
0469ef386b ui: Fix comment 2018-01-06 23:53:35 +09:00
Hajime Hoshi
4bcb2e5682 devicescale: Rename XFCE -> Xfce 2018-01-04 17:16:02 +09:00
Hajime Hoshi
ee87a0fd71 devicescale: Add other desktops 2018-01-04 03:29:58 +09:00
Hajime Hoshi
75f5cbd45a devicescale: Rename windowManager -> desktop 2018-01-04 03:22:30 +09:00
Hajime Hoshi
60993fe3ea devicescale: Rename files 2018-01-04 03:19:19 +09:00
Hajime Hoshi
738d23cf51 devicescale: Bug fix: need to parse XDG_CURRENT_DESKTOP for GNOME classic 2018-01-04 00:55:53 +09:00
Hajime Hoshi
70f9fee8af devicescale: Detect window manager 2018-01-04 00:01:41 +09:00
Hajime Hoshi
eac5564342 devicescale: Fix scaling on UNIX 2018-01-03 23:38:47 +09:00
Hajime Hoshi
9ec0785203 Rename files _xwindow.go to _unix.go 2018-01-03 23:38:47 +09:00
Hajime Hoshi
edaaa178b8 devicescale: Implement scaling for Gnome and Cinnamon (#344) 2018-01-03 23:36:33 +09:00
Hajime Hoshi
a64367f906 ui: Refactoring: remove an unneeded member 2018-01-03 17:35:34 +09:00
Hajime Hoshi
5a17497723 devicescale: Make DeviceScale concurrent-safe 2018-01-03 16:52:26 +09:00
Hajime Hoshi
0f450fb1e2 devicescale: Use NewLazyDLL on Windows 2018-01-03 16:24:53 +09:00
Hajime Hoshi
7b759faf36 devicescale: Bug fix: SetProcessDPIAware needs to be called 2018-01-03 15:43:56 +09:00
Hajime Hoshi
c82809867d Add internal/devicescale 2018-01-03 05:22:56 +09:00
Hajime Hoshi
9578307d7b ui: Organize members 2018-01-03 00:23:18 +09:00
Hajime Hoshi
9478801076 ui: Implement SetScreenSize/Scale for mobiles
Fixes #250
2017-12-31 21:01:48 +09:00
Hajime Hoshi
5d4c4f1283 graphics: Bug fix: Don't delete the screen framebuffer (iOS) 2017-12-31 20:55:04 +09:00
Hajime Hoshi
473aeaa8b1 ui: Remove unneeded early return 2017-12-31 18:37:04 +09:00
Hajime Hoshi
c636dec721 graphics: Remove glFlush() for performance 2017-12-21 03:19:28 +09:00
Hajime Hoshi
e13bb0769b graphics: Add 'not-reached' clause 2017-12-21 00:57:36 +09:00
Hajime Hoshi
0a99103bc1 graphics: Call roundTexel only on linear filter (#461) 2017-12-21 00:38:22 +09:00
Hajime Hoshi
8e72906f3d graphics: Separate GLSL programs for filters (#461) 2017-12-21 00:33:08 +09:00
Hajime Hoshi
f072e8f1c5 graphics: Optimize GLSL 2017-12-18 03:10:04 +09:00
Hajime Hoshi
9471e3e4e7 web: Bug fix: Expose IsAndroidChrome 2017-12-17 01:22:22 +09:00
Hajime Hoshi
44dc9f6220 graphics: Optimize fragment shader 2017-12-16 18:35:45 +09:00
Hajime Hoshi
6eb148b9a1 graphics: Fragment shader optimization (#461) 2017-12-16 05:05:21 +09:00
Hajime Hoshi
078d107c24 graphics: Bug fix: vertex position should be highp 2017-12-16 03:30:52 +09:00
Hajime Hoshi
d45a975e3d graphics: Remove one unnecessary check from fragment shader (#461) 2017-12-16 01:42:36 +09:00
Hajime Hoshi
d6878d6887 graphics: Remove one bound check from fragment shader (#461) 2017-12-16 01:33:35 +09:00
Hajime Hoshi
98532d8983 graphics: Add TestImageOutside 2017-12-14 00:25:35 +09:00
Hajime Hoshi
704d4cf464 graphics: texel should be represented as highp for precision
Fixes #460
2017-12-13 23:45:05 +09:00
Hajime Hoshi
aea2e491c3 graphics: Temporary hack for mobile browers
roundTexel doesn't work well on moible browsers
2017-12-12 03:27:56 +09:00
Hajime Hoshi
723d153800 Reland(2): graphics: Appropriate rendering of edges on linear filter 2017-12-12 00:03:01 +09:00
Hajime Hoshi
362d1c417f Revert 'graphics: Appropriate rendering of edges on linear filter (Reland)' (#458) 2017-12-11 20:30:54 +09:00
Hajime Hoshi
7b74a8f29f graphics: Improve roundTexel implementation 2017-12-07 03:24:46 +09:00
Hajime Hoshi
1152439e65 graphics: Appropriate rendering of edges on linear filter (Reland)
Fixes #456
2017-12-07 02:26:16 +09:00
Hajime Hoshi
8091aa5190 Revert 'graphics: Appropriate rendering of edges on linear filter' #456 2017-12-06 23:40:29 +09:00
Hajime Hoshi
bc0432f310 graphics: Appropriate rendering of edges on linear filter
Fixes #315
2017-12-06 21:40:24 +09:00
Hajime Hoshi
264ca49a43 graphics: Bug fix: revert viewport size for Edge 2017-12-05 03:13:40 +09:00
Hajime Hoshi
f74c1e67ea graphics: Use power-of-2 size for the default framebuffer 2017-12-05 02:33:04 +09:00
Hajime Hoshi
eeea25f202 opengl: Remove 'normalize' argument from VertexAttribPointer 2017-12-03 19:21:59 +09:00
Hajime Hoshi
2e1e4adb84 graphics: Fix some variables in GLSL 2017-12-03 19:07:12 +09:00
Hajime Hoshi
71ca838193 opengl: Refactoring 2017-12-03 03:55:59 +09:00
Hajime Hoshi
847ba9de0c graphics: Refactoring: Move adjustment logic for glClearColor to opengl package 2017-12-03 03:51:42 +09:00
Hajime Hoshi
8e7e960b56 graphics: Limit source-rectangle range
Remove texture adjustment introduced due to #317
2017-12-02 23:13:44 +09:00
Hajime Hoshi
c2fab6cca3 graphics: Bug fix: glClear doesn't treat 0 or 1 correctly
Fixes #452
2017-12-02 22:25:02 +09:00
Hajime Hoshi
4a5420d6f2 opengl: Remove Node.js support (#141) 2017-12-02 16:46:55 +09:00
Hajime Hoshi
0379e3c591 audio: Deprecate Update 2017-12-01 00:26:28 +09:00
Hajime Hoshi
362f002d36 ui: Delete local variables asap on Android 2017-11-13 01:30:08 +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
4b83a060fe ui: Add more keys not for charCode 2017-11-10 00:46:37 +09:00
Hajime Hoshi
fb8bef99c3 ui: Bug fix: key event on Edge browser 2017-11-10 00:39:46 +09:00
Hajime Hoshi
37ca48dc38 ui: Rename functions from Safari to Edge 2017-11-10 00:35:46 +09:00
Hajime Hoshi
0c0cd7e9d6 ui: Bug fix: call preventDefault for arrow keys
Fixes #450
2017-11-10 00:32:47 +09:00
Hajime Hoshi
ededc5874b ui: Bug fix: Scale was wrong when magnifier is enabled
Fixes #244
2017-11-09 02:06:35 +09:00
Hajime Hoshi
7bcc9ee79f ui: Add GamepadIDs and remove IsGamepadPresent (#447) 2017-10-26 23:59:09 +09:00
Hajime Hoshi
600baf2cc7 ui: Add IsGamepadPresent
Fixes #447
2017-10-26 02:59:33 +09:00
Hajime Hoshi
05e220e105 ui: Allow smaller window width (#444) 2017-10-20 03:25:21 +09:00
Hajime Hoshi
414170b138 ui: Refactoring 2017-10-20 02:50:39 +09:00
Hajime Hoshi
6ae67fc6dd graphics: Add ColorM.Apply (#432) 2017-10-14 23:58:09 +09:00
Hajime Hoshi
9399622127 graphics: Bug fix: Don't adjust texels on iOS Safari 2017-10-03 02:34:16 +09:00
Hajime Hoshi
a7fc463d91 doc: Improve comments 2017-10-01 03:15:50 +09:00
Hajime Hoshi
d455b9b8bb opengl: SetViewport no longer returns error 2017-09-25 00:17:20 +09:00
Hajime Hoshi
b590005c7a opengl: BindFramebuffer no longer returns error 2017-09-25 00:14:25 +09:00
Hajime Hoshi
ade56f8176 opengl: BindTexture no longer returns error 2017-09-25 00:11:19 +09:00
Hajime Hoshi
37d8bd312a graphics: Refactoring 2017-09-25 00:06:45 +09:00
Hajime Hoshi
8fbe423125 graphics: Delete programs explicitly and add comments 2017-09-24 23:41:37 +09:00
Hajime Hoshi
e5ca84013c graphics: Bug fix: Delete buffer when necessary 2017-09-24 23:20:26 +09:00
Hajime Hoshi
ecc9d0b3b1 graphics: Add comments 2017-09-24 22:56:50 +09:00
Hajime Hoshi
2884e92041 jni: Add more comment 2017-09-24 04:52:32 +09:00
Hajime Hoshi
ed09dddf09 jni: Add comment 2017-09-24 02:54:35 +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
ceceed951f graphics: Add comments 2017-09-22 02:49:37 +09:00
Hajime Hoshi
6145ecee74 graphics: Misspelling 2017-09-21 23:33:27 +09:00
Hajime Hoshi
b47e564762 graphics: Add comments 2017-09-20 01:35:56 +09:00
Hajime Hoshi
0831fd2a0d graphics: Add comments 2017-09-19 01:37:24 +09:00
Hajime Hoshi
2a9873a4bb affine: Add GeoM.Apply (#432) 2017-09-16 17:19:45 +09:00
Hajime Hoshi
fc125eb531 graphics: Add comments 2017-09-16 15:49:29 +09:00
Hajime Hoshi
803aa77c20 affine: Refactoring 2017-09-16 15:49:12 +09:00
Hajime Hoshi
05d91eac09 restorable: Fix misspelling 2017-09-15 03:13:36 +09:00
Hajime Hoshi
f16b5d9c10 restorable: Rename variables 2017-09-15 01:14:09 +09:00
Hajime Hoshi
ccddf3c4ac restorable: Refactoring: Remove arguments from NewImageFromImage 2017-09-15 00:51:17 +09:00
Hajime Hoshi
ca4a2d8209 restorable: Bug fix: Fix tests 2017-09-15 00:49:07 +09:00
Hajime Hoshi
2881d3fc4c restorable: Add comments 2017-09-15 00:39:49 +09:00
Hajime Hoshi
80940f9070 restorable: Add comments 2017-09-15 00:24:18 +09:00
Hajime Hoshi
b51d93a707 restorable: Add comments 2017-09-12 03:14:13 +09:00
Hajime Hoshi
72c02fc398 graphics: Bug fix: viewport size must be within the framebuffer size
This fixes #71 and #420
2017-09-09 19:33:51 +09:00
Hajime Hoshi
0dcba7844b ui: Bug fix: SetScreenSize didn't work on browsers
This fixes #427
2017-09-07 11:58:04 +09:00
Hajime Hoshi
d30f8a2bbf graphics: Fix viewport sizes for Edge (#71) 2017-09-07 03:08:22 +09:00
Hajime Hoshi
da48712cf3 web: Add IsEdgeBrowser 2017-09-07 02:47:27 +09:00
Hajime Hoshi
2d5b062c3c opengl: Refactoring: Replace NewBuffer with new funcs
Replace NewBuffer with NewArrayBuffer and NewElementArrayBuffer
2017-09-01 01:30:09 +09:00
1l0
5d2393c3c1 glfw: Add StickyModes to window.InputMode (resolve #314 #399) (#423) 2017-08-28 23:29:19 +09:00
Hajime Hoshi
99d170b454 ui: Remove isSafari that is not used anywhere 2017-08-27 02:14:23 +09:00
Hajime Hoshi
b05455a2a6 clock: Fix comments 2017-08-24 02:30:43 +09:00
Hajime Hoshi
12c24215b1 graphics: Bug fix: Flush after filling (#419) 2017-08-24 00:11:08 +09:00
Hajime Hoshi
bb6dfeefd4 ui: Add comments on Touches 2017-08-22 00:58:38 +09:00
Jake
0d703ca3d4 InputChars (#403)
This implements #400
2017-08-15 04:11:51 +09:00
Hajime Hoshi
5f538bff82 ui: Bug fix: initCursorVisible must be true by default 2017-08-12 18:32:51 +09:00
Hajime Hoshi
783e57d3f2 ui: Remove 'fullscreen' member variable 2017-08-12 18:31:16 +09:00
Hajime Hoshi
b186bc1e94 ui: Add IsCursorVisible (#377) 2017-08-12 15:45:16 +09:00
Hajime Hoshi
9ab517cf82 restorable: Refactoring 2017-08-07 00:06:35 +09:00
Hajime Hoshi
1fb7e123c2 Remove dependencies on internal/graphics from ebiten 2017-08-06 21:34:24 +09:00
Hajime Hoshi
c0ecb7a386 graphics: Move CopyImage to restorable 2017-08-06 21:21:38 +09:00
Hajime Hoshi
631264fce1 Add 'internal/math' package 2017-08-06 20:05:14 +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
d1cbfdeec7 clock: Move now() from loop to clock 2017-08-06 02:12:23 +09:00
Hajime Hoshi
f0f115b612 clock: Move FPS calculation from loop to clock 2017-08-06 02:09:33 +09:00
Hajime Hoshi
b1d12f08f8 loop: Remove unneeded member variables 2017-08-06 01:49:20 +09:00
Hajime Hoshi
95a061df7f loop: Remove dependency from audio to loop 2017-08-06 01:43:09 +09:00
Hajime Hoshi
2e7a477f9d clock: Refactoring 2017-08-06 01:28:14 +09:00
Hajime Hoshi
e98475cf9d clock: Reduce a variable 2017-08-06 00:29:06 +09:00
Hajime Hoshi
1ea6bb2b6a clock: Fix comments 2017-08-06 00:27:45 +09:00
Hajime Hoshi
b7d559fdf3 clock: Refactoring: Move frames calculation to clock 2017-08-06 00:18:38 +09:00
Hajime Hoshi
288a7ede8d loop: Bug fix: Revert audio-clock syncing 2017-08-05 23:49:11 +09:00
Hajime Hoshi
d99638d34c loop: Bug fix: wrong updating |lastUpdated| 2017-08-05 23:31:10 +09:00
Hajime Hoshi
6f606c6bb1 loop: Bug fix: Don't use 'system timer clock' when audio clock is valid 2017-08-05 23:26:43 +09:00
Hajime Hoshi
a92f77c207 clock: Rename function names; loop: Rename variables 2017-08-05 22:25:21 +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
19760be346 loop: Refactoring 2017-08-05 22:07:03 +09:00
Hajime Hoshi
b85f5edee0 loop: Simplify logic 2017-08-05 21:24:04 +09:00
Hajime Hoshi
eef8289854 loop: Remove dependency on ui 2017-08-05 20:43:49 +09:00
Hajime Hoshi
56a17a7f79 loop: Reduce defer for performance and readability 2017-08-05 20:19:17 +09:00
Hajime Hoshi
9f98ccc611 loop: Rename UpdateAndDraw -> Update 2017-08-05 20:14:49 +09:00
Hajime Hoshi
f0d47312c4 ui: Add IsRunnableInBackground / SetRunnableInBackground (#272) 2017-08-03 03:21:51 +09:00
Hajime Hoshi
bb5036b3e1 ui: Refactoring 2017-08-03 01:07:04 +09:00
Hajime Hoshi
1021521591 ui: initFullscreen should always be protected by lock 2017-08-03 00:19:04 +09:00
Hajime Hoshi
434d5bb00b ui: Bug fix: SetFullscreen / IsFullscreen should be concurrent safe; IsFullscreen should return the correct value even before Run 2017-08-02 23:48:08 +09:00
Hajime Hoshi
807d03eb3b ui: Delay initialize until Run (#397) 2017-07-30 20:26:40 +09:00
Hajime Hoshi
ee98148b54 graphics: Use default precisions in the fragment shader 2017-07-29 04:08:03 +09:00
Hajime Hoshi
84a7787ac9 graphics: No need to specify precision on vertex shaders (highp is default) 2017-07-29 02:57:56 +09:00
Hajime Hoshi
d46d9ac7c2 opengl: Remove GlslHighpSupported 2017-07-24 22:59:25 +09:00
Hajime Hoshi
85d39699d3 graphics: Bug fix: Need to specify default precisions (#390) 2017-07-24 21:56:40 +09:00
Hajime Hoshi
3bfb5054af Fix misspelling 2017-07-23 22:50:18 +09:00
Hajime Hoshi
5ae03494f2 ui: Resize canvas size when the window is resized (#387) 2017-07-22 02:04:15 +09:00
Hajime Hoshi
63e3bc73d6 ui: Implement fullscreen for browsers (#387) 2017-07-22 01:52:08 +09:00
Hajime Hoshi
717efd097d loop: Bug fix: the clock needs to be stopped when the window is unfocused 2017-07-16 23:54:14 +09:00
Hajime Hoshi
f591ca3d2b ui: Bug fix: SetFullscreen didn't work without Run 2017-07-15 21:43:33 +09:00
Hajime Hoshi
c94c994bd1 ui: Allow SetFullscreen without Run 2017-07-15 20:29:13 +09:00
Hajime Hoshi
59110ba5ec clock: Refactoring: Use clock.FPS everywhere 2017-07-14 03:19:50 +09:00
Hajime Hoshi
3d8fc790b6 loop: Remove dependency on audio 2017-07-14 01:42:58 +09:00
Hajime Hoshi
5d1d0844e1 Add internal/clock 2017-07-14 00:34:05 +09:00
Hajime Hoshi
fe3f0b2f1f loop: Better syncing with audio 2017-07-14 00:03:59 +09:00
Hajime Hoshi
0de9828e20 loop: Fix FPS calculation 2017-07-13 23:48:06 +09:00
Hajime Hoshi
c3202b8e58 audio: Adjust the buffer size 2017-07-13 23:48:03 +09:00
Hajime Hoshi
15f5d2a2cc loop: More stable FPS 2017-07-13 01:34:02 +09:00
Hajime Hoshi
40ae782a67 loop: Early exit when no frame needs to be updated 2017-07-13 01:34:02 +09:00
Hajime Hoshi
fdaf03b209 audio: Make the game loop depend on the audio clock 2017-07-13 01:33:59 +09:00
Hajime Hoshi
26a83c0e00 opengl: Define Texture/Framebuffer Equals for JS performance 2017-07-02 22:18:49 +09:00
Hajime Hoshi
3a3a4af035 graphics: Avoid type assertions for Fill 2017-07-02 21:32:07 +09:00
Hajime Hoshi
364819f361 restorable: Disable restoring on desktops and mobile browsers (#380) 2017-07-02 15:58:00 +09:00
Hajime Hoshi
e582a661c9 ui: Bug fix: Should add <meta> to <head> instead of <body> 2017-07-02 04:18:43 +09:00
Hajime Hoshi
d6466fdcaf ui: Bug fix: initial scale must be 1 for proper scaling 2017-07-02 04:08:25 +09:00
Hajime Hoshi
565a28ff04 restorable: Merge draw image history items if possible (#379) 2017-07-02 02:21:23 +09:00
Hajime Hoshi
979836d0f5 restorable: Refactoring: move and rename a const 2017-07-02 01:41:07 +09:00
Hajime Hoshi
d7b7aac6e4 ui: Fix wrong comment 2017-07-01 13:03:27 +09:00
Hajime Hoshi
7d236950c2 ui: Bug fix: SwapInterval needs to be called after SetMonitor (#357) 2017-07-01 12:41:16 +09:00
Hajime Hoshi
ba204c6d3b ui: Adjust cursor positoin on fullscreen mode (#374) 2017-07-01 04:27:38 +09:00
Hajime Hoshi
c694851765 ui: Center the screen on fullscreen mode (#374) 2017-07-01 04:12:09 +09:00
Hajime Hoshi
3168af1db4 ui: Refactoring: refresh rate is ignored when no monitor is specified at SetMonitor 2017-06-30 23:20:53 +09:00
Hajime Hoshi
68fbf59720 ui: Refactoring 2017-06-30 11:07:19 +09:00
Hajime Hoshi
cefa86ce13 ui: Fullscreen scale can be recalculated during fullscreen mode 2017-06-30 10:54:13 +09:00
Hajime Hoshi
6336b59493 ui: Bug fix: original positions must not be updated during fullscreen mode (#376) 2017-06-30 10:48:18 +09:00
Hajime Hoshi
af8b5d72c3 ui: Bug fix: Fullscreen scale must be recalculated 2017-06-30 10:22:30 +09:00
Hajime Hoshi
76da09f74c ui: Bug fix: Window title might lost on macOS (#267) 2017-06-30 02:14:14 +09:00
Hajime Hoshi
64ed7b93f6 ui: Bug fix: better restoring position (#267) 2017-06-30 02:11:54 +09:00
Hajime Hoshi
1d60c009ed ui: Bug fix: fullscreen scale calculation was wrong (#267) 2017-06-30 02:08:12 +09:00
Hajime Hoshi
2996f778b6 ui: Bug fix: position was wrong when changing window size 2017-06-30 01:53:14 +09:00
Hajime Hoshi
5b6fa2d384 ui: Adjust cursor position on fullscreen (#267) 2017-06-30 01:39:26 +09:00
Hajime Hoshi
e7370d8a54 ui: Adjust fullscreen scale (#267) 2017-06-30 01:28:35 +09:00
Hajime Hoshi
5dbfafb200 ui: Reserve window position before entering fullscreen-mode (#267) 2017-06-30 01:28:03 +09:00
Hajime Hoshi
b569eb9c5a ui: Add SetFullscreen / IsFullscreen (#267) 2017-06-30 01:28:00 +09:00
Hajime Hoshi
d0f086323b ui: Use returning values 2017-06-30 00:37:24 +09:00
Hajime Hoshi
f7a8c7efa6 ui: Avoid recalc the scale factor 2017-06-05 00:06:40 +09:00
Hajime Hoshi
ad1f1263f7 restorable: Bug fix: wrong topological sort (#359) 2017-06-03 02:41:37 +09:00
Hajime Hoshi
2680884566 restorable: Test bug fix 2017-06-02 22:00:02 +09:00
Hajime Hoshi
eb66f5c569 restorable: Add tests for complex graph (#357) 2017-06-02 21:58:26 +09:00
Hajime Hoshi
f41541a254 restorable: Enable TestRestoreRecursive again 2017-06-02 02:15:32 +09:00
Hajime Hoshi
1d66ebc854 restorable: Bug fix: topological sort is required to restore images correctly (#357) 2017-06-01 10:44:28 +09:00
Hajime Hoshi
967e737760 restorable: Temporarily disable a failed test 2017-06-01 02:42:43 +09:00
Hajime Hoshi
82f102c422 restorable: Add TestRestoreRecursive (#265) (#357) 2017-06-01 02:37:57 +09:00
Hajime Hoshi
baeadfb7fe restorable: Add tests (#265) (#357) 2017-06-01 01:27:56 +09:00
Hajime Hoshi
1d59938295 ui: Refactoring: Remove unneeded error handlings 2017-05-31 10:47:52 +09:00
Hajime Hoshi
7d181e3182 opengl: Hide OpenGL context usages into internal/graphics package 2017-05-31 02:18:04 +09:00
Hajime Hoshi
5a4a82ab50 restorable: Add TODO comments (#357) 2017-05-30 03:31:29 +09:00
Hajime Hoshi
d220e300ab restorable: Fix doc 2017-05-30 02:06:45 +09:00
Hajime Hoshi
90ec2c79ce opengl: Bug fix: return error when error occurs 2017-05-30 01:46:48 +09:00
Hajime Hoshi
a5f80c3716 restorable: VRAM -> GPU 2017-05-30 01:28:23 +09:00
Hajime Hoshi
6db96f5442 affine: Make GeoM.Rotate faster 2017-05-28 04:16:11 +09:00
Hajime Hoshi
dad427920d affine: Add Reset function 2017-05-28 00:49:44 +09:00
Hajime Hoshi
e53262bfac graphics: Replace copy with for-loop 2017-05-28 00:14:53 +09:00
Hajime Hoshi
a816c9c7fe Reduce defer sentences for performance 2017-05-27 21:35:38 +09:00
Hajime Hoshi
1b1b996817 graphics: Avoid copying ColorM 2017-05-27 16:17:49 +09:00
Hajime Hoshi
1b72263ce1 sync: Add sync package 2017-05-27 02:37:01 +09:00
Hajime Hoshi
e1b5c992b4 graphics: Refactoring: remove unnecessary empty slices 2017-05-26 22:32:38 +09:00
Hajime Hoshi
6db994f0e8 graphics: Optimize GeoM 2017-05-24 00:57:57 +09:00
Hajime Hoshi
93cdfe107e ui: Keep the device scale to avoid re-calculation 2017-05-14 04:21:20 +09:00
Hajime Hoshi
d6219e38d8 ui: Rename files 2017-05-13 19:50:40 +09:00
Hajime Hoshi
b409631515 Add FreeBSD support (#352) 2017-05-11 19:09:13 +09:00
Hajime Hoshi
951e5bccef restorable: Remove Images() 2017-05-04 00:08:07 +09:00
Hajime Hoshi
8b48d010ed restorable: Refactoring 2017-05-03 23:24:00 +09:00
Hajime Hoshi
bc105e7350 restorable: Unexport functions 2017-05-03 23:18:35 +09:00
Hajime Hoshi
aa5c278445 restorable: Unexport add 2017-05-03 23:15:18 +09:00
Hajime Hoshi
9f5cf48d24 restorable: Move Images to resotrable package 2017-05-03 23:11:43 +09:00
Hajime Hoshi
d94e9c9d86 restorable: Bug fix: Make limit to the number of draw-image command history (#349) 2017-05-03 22:16:32 +09:00
Hajime Hoshi
76ad9cf42b doc: Fix comments 2017-05-03 01:08:27 +09:00
Hajime Hoshi
5699822d64 graphics: Avoid creating struct as much as possible 2017-05-02 22:45:09 +09:00
Hajime Hoshi
4e22bd770f ui: Remove Input interface and remove locks on browsers to improve performance (#346) 2017-04-28 23:45:01 +09:00
Hajime Hoshi
0dafbfe99d ui: Speed optimization for browser keyboard inputs 2017-04-27 11:40:32 +09:00
Hajime Hoshi
fb612a4b87 ui: Adjust window size in case when glfwGetVideoMode fails (#328) 2017-04-19 00:51:15 +09:00
Hajime Hoshi
95cb0133de ui: Add keys (#339) 2017-04-14 03:09:00 +09:00
Hajime Hoshi
0cd692d26a ui: Use code instead of keyCode on browsers but Safari 2017-04-14 03:02:38 +09:00
Hajime Hoshi
88cfdf8878 ui: Remove println 2017-04-11 12:00:40 +09:00
Hajime Hoshi
187a93d80a ui: Bug fix: IsKeyPressed might return a wrong value when only one of Shift/Ctrl/Alt keys is pressed 2017-04-11 11:56:05 +09:00
Hajime Hoshi
aa1e7e9cd6 Revert "ui: Use code instead of keyCode on browsers (#339)"
This reverts commit d7ea02d8c1.
2017-04-10 20:38:23 +09:00
Hajime Hoshi
d7ea02d8c1 ui: Use code instead of keyCode on browsers (#339) 2017-04-10 20:30:28 +09:00
Hajime Hoshi
b0454b874e Fix frame counters to int64 (#337) 2017-04-06 00:45:28 +09:00
Hajime Hoshi
a3e14c9ddb graphics: Image.ReplacePixels/Dispose always returns nil (#331) 2017-03-04 02:23:39 +09:00
Hajime Hoshi
6ca71c6931 graphics: Errors of NewImage* are always nil (#331) 2017-03-04 01:22:51 +09:00
Hajime Hoshi
33ff25cc40 gofmt -s -w 2017-03-04 00:00:04 +09:00
Hajime Hoshi
147798e14d Simplify internal API not to return errors 2017-03-03 23:59:44 +09:00
Hajime Hoshi
cad051437d ui: Refactoring 2017-03-03 11:15:07 +09:00
Hajime Hoshi
e11bc62059 ui: SetScreenSize/Scale no longer returns error 2017-03-03 10:58:29 +09:00
Hajime Hoshi
b6b61fc003 ui: setScreenSize in ui_glfw.go no longer returns error 2017-03-03 10:50:47 +09:00
Hajime Hoshi
0ba28d1183 ui: Remove unused function 2017-03-03 02:27:39 +09:00
Hajime Hoshi
ae378dc7f5 input: Extend number of gamepad buttons from 16 to 32 (for PS4) 2017-02-25 22:49:17 +09:00
Hajime Hoshi
acc488b980 graphics: Bug fix: Wrong palette usage when the palette is big 2017-02-19 02:56:20 +09:00
Hajime Hoshi
9634794e7e ui: Use GetWindowThreadProcessId to check who created the console (#304, #318) 2017-02-09 03:49:45 +09:00
Hajime Hoshi
bd1a486b3a Bug fix: gopherjs build failed on Windows 2017-02-09 02:37:40 +09:00
Hajime Hoshi
93684d5df3 ui: Hide console window by checking the parent process (#304, #318) 2017-02-09 02:01:03 +09:00
gonutz
112654995f Hide console window on Windows (#318)
* Hide console only if double-clicking Windows exe

When building on Windows the console window is hidden on start-up if
double-clicking the executable but not if running the program from the
command line (as a developer).
See the code comments for an explanation of the used heuristic.
2017-02-07 20:44:10 +09:00
Hajime Hoshi
bb993a481b graphics: Bug fix: Outside texels are used (#317) 2017-02-06 09:10:44 +09:00
Hajime Hoshi
0967df7f5e graphics: Fix TestImagePixels to check out-of-range pixels 2017-02-05 04:24:07 +09:00
Hajime Hoshi
91681bdc25 graphics: Bug fix: ReplacePixels must reset pixels out of range (#316) 2017-02-05 04:16:09 +09:00
Hajime Hoshi
d7f1165aa3 graphics: Avoid calling ReplacePixels unnecessarily 2017-02-05 02:19:30 +09:00
Hajime Hoshi
0ef1e61d55 mobile: Fix iOS tag usages (#310) 2017-01-26 01:32:33 +09:00
Hajime Hoshi
6e897d1479 graphcis: Bug fix: Can't dispose textures/framebuffers after the context is lost (fixing #305) 2017-01-22 01:37:08 +09:00
Hajime Hoshi
d3e1f91511 graphis: Bug fix: blurred screen after restoring the context (#306) 2017-01-21 15:16:47 +09:00
Hajime Hoshi
53952100d3 restorable: Bug fix: graphics.Image can be recreated and must not be used for restoring 2017-01-21 04:24:39 +09:00
Hajime Hoshi
50b50effc0 graphics: Bug fix: Can't delete object after GL context is restored 2017-01-21 03:05:21 +09:00
Hajime Hoshi
bccf76867e graphics: Try to restore the context on browsers (WIP) 2017-01-21 02:56:26 +09:00
Hajime Hoshi
de987be85f opengl: Add IsContextLost 2017-01-20 02:20:41 +09:00
Hajime Hoshi
6e84919ed5 affine: Make Scale/Translate faster 2017-01-20 01:08:14 +09:00
Hajime Hoshi
48c8934838 affine: Refactoring 2017-01-20 00:46:25 +09:00
Hajime Hoshi
dfcd9fc30c graphics: Make matrices faster 2017-01-20 00:37:51 +09:00
Hajime Hoshi
71a4465c6f graphics: Improve matrices speed 2017-01-19 12:07:31 +09:00
Hajime Hoshi
9087269212 graphics: Make copying GeoM faster 2017-01-19 10:59:07 +09:00
Hajime Hoshi
3331f17723 graphics: Bug fix: start pixel must start at 0 (#303) 2017-01-19 10:40:59 +09:00
Hajime Hoshi
333b0956ff graphics: Improve speed by merging vertices arrays into one 2017-01-19 01:27:04 +09:00
Hajime Hoshi
a744285b51 graphics: Make copying ColorM faster 2017-01-18 02:25:23 +09:00
Hajime Hoshi
c44ee9cde2 graphics: Refactoring 2016-12-29 01:15:57 +09:00
Hajime Hoshi
aeaa877949 restorable: Remove (*restorable).width/height 2016-12-27 10:58:46 +09:00
Hajime Hoshi
5c403d9969 graphics: Avoid copying images twice 2016-12-27 10:43:05 +09:00
Hajime Hoshi
260b938422 graphics: CopyImage optimization 2016-12-27 03:21:07 +09:00
Hajime Hoshi
5c9b9ef6cb graphics: Add BenchmarkCopyImageNRGBA 2016-12-27 01:57:36 +09:00
Hajime Hoshi
006f87d02b graphics: Stop CopyImage blocking on browsers 2016-12-27 01:57:15 +09:00
Hajime Hoshi
3db15bc5bf graphics: Avoid copying color.RGBA struct 2016-12-27 01:08:22 +09:00
Hajime Hoshi
6b4801ac7a graphics: Make copying images faster 2016-12-27 00:50:14 +09:00
Hajime Hoshi
15f7a605c5 graphics: Create framebuffers lazily 2016-12-14 23:40:43 +09:00
Hajime Hoshi
b86f1771e4 ui: Add goroutine so that blocking is available everywhere 2016-11-29 01:40:06 +09:00
Hajime Hoshi
7bd2fb6ce2 graphics: Bug fix: ColorM.Scale worked wrongly 2016-11-27 23:27:20 +09:00
Hajime Hoshi
a1e868b822 ui: Don't use 'image-rendering' CSS on Safari (#293) 2016-11-26 23:45:06 +09:00
Hajime Hoshi
411721a4da ui: Add TODO 2016-11-26 02:35:55 +09:00
Hajime Hoshi
74c552ea6c opengl: Should access the prototype of WebGLRenderingContext on Safari (#293) 2016-11-26 01:17:22 +09:00
Hajime Hoshi
3e2f2e9f08 opengl: Update error messages 2016-11-26 00:57:02 +09:00
Hajime Hoshi
e47c3bbbfb graphics: Limit image size strictly 2016-11-05 03:06:18 +09:00
Hajime Hoshi
07294a98b6 Move internal/graphics/opengl -> internal/opengl 2016-11-03 23:31:25 +09:00
Hajime Hoshi
b2780fb585 graphics: Merge commands when appending 2016-11-03 17:40:52 +09:00
Hajime Hoshi
50b2d8ee94 graphics: Use float values for vertices 2016-11-02 02:34:01 +09:00
Hajime Hoshi
b2be6681d4 graphics: Bug fix: invalid calc of num of quads 2016-11-02 02:08:12 +09:00
Hajime Hoshi
b188a0dd99 affine: Stop using multiple-dimension array for consistency 2016-11-01 23:32:27 +09:00
Hajime Hoshi
edf336499c affine: Revert ColorM implementation to use float64 array 2016-11-01 23:32:24 +09:00
Hajime Hoshi
4915531450 affine: Add ColorM.Equals 2016-11-01 00:28:07 +09:00
Hajime Hoshi
d02c67a996 graphics: Use affine.ColorM instead of graphics.Matrix 2016-11-01 00:20:27 +09:00
Hajime Hoshi
84baee8ca7 Add internals/affine 2016-11-01 00:13:19 +09:00
Hajime Hoshi
49fb2635ec graphics: Remove glMatrix 2016-10-29 05:02:22 +09:00
Hajime Hoshi
6de9e6696e graphics: Cache total bytes 2016-10-29 01:07:19 +09:00
Hajime Hoshi
fbf6b6c525 graphics: Calc capacity of vertices 2016-10-27 01:42:18 +09:00
Hajime Hoshi
5a1eb24138 graphics: Improve speed by using []int16 instead of []uint8 2016-10-26 00:20:41 +09:00
Hajime Hoshi
a65ededc3c graphics: Merge draw commands if possible 2016-10-25 11:53:00 +09:00
Hajime Hoshi
a70f61b1d5 graphics: Remove passing GeoM to the lower layers 2016-10-25 10:42:49 +09:00
Hajime Hoshi
96053702ed graphics: Bug fix: Remove modelview_matrix 2016-10-25 03:17:14 +09:00
Hajime Hoshi
a2cc291573 graphics: Rename variables 2016-10-25 03:04:06 +09:00
Hajime Hoshi
ebf7f0df00 graphics: Add geometry matrix info to vertices 2016-10-25 01:56:59 +09:00
Hajime Hoshi
bc8a8fbae8 graphics: Refactoring: Replace QuadVertexNum with QuadVertexSizeInBytes func 2016-10-23 03:12:11 +09:00
Hajime Hoshi
2c844ec70c graphics: Refactoring: Simplify NextPowerOf2Int 2016-10-23 01:59:04 +09:00
Hajime Hoshi
e72ccee61b graphics: Expose graphics.QuadVertexNum 2016-10-23 01:52:55 +09:00
Hajime Hoshi
af4130c0d6 graphics: Bug fix: wrong argument in VertexAttribPointer 2016-10-22 20:47:33 +09:00
Hajime Hoshi
f21f6d357e graphics: Bug fix: Command splitting threshold is more strict on browsers? 2016-10-22 20:25:58 +09:00
Hajime Hoshi
27acc5efd9 opengl: Use uint8 intead of byte 2016-10-22 18:45:32 +09:00
Hajime Hoshi
17ad889bba graphics: Add a comment 2016-10-22 16:57:09 +09:00
Hajime Hoshi
d981466aed graphics: Use opengl.DataType 2016-10-22 16:52:58 +09:00
Hajime Hoshi
9abeb29d2a opengl: Add DataType 2016-10-22 14:51:23 +09:00
Hajime Hoshi
e5e9b178ae opengl: Fix argument order of VertexAttribPointer 2016-10-22 14:00:45 +09:00
Hajime Hoshi
80e3a3497c opengl: BufferSubData should be able to take generic type 2016-10-22 03:21:53 +09:00
Hajime Hoshi
37c0461573 internal: Fix LicenseComment not to use LICENSE file 2016-10-21 00:30:51 +09:00
Hajime Hoshi
3264532004 doc: Add and use LicenseYear 2016-10-21 00:12:31 +09:00
Hajime Hoshi
3efabe988a graphics: Reduce magic numbers 2016-10-17 11:16:17 +09:00
Hajime Hoshi
cbcbdb0b97 graphics: Refactoring: Introduce arrayBufferLayoutPart 2016-10-17 10:36:33 +09:00
Hajime Hoshi
8ee859df31 graphics: Refactoring: Introduce arrayBufferLayout 2016-10-17 10:03:25 +09:00
Hajime Hoshi
c1b4624890 graphics: Remove unused const 2016-10-17 01:07:16 +09:00
Hajime Hoshi
dc0254db40 ui: Optimized scaling on browsers 2016-09-15 10:04:48 +09:00
Hajime Hoshi
1f8cd41326 windows: Add comments 2016-09-11 22:34:39 +09:00
Hajime Hoshi
5cd048011e restorable: Fix a comment 2016-09-10 01:36:56 +09:00
Hajime Hoshi
959abec06d restoring: Refactoring: Add Image.screen and unify restoring functions 2016-09-04 02:31:50 +09:00
Hajime Hoshi
c73860caa2 restorable: Bug fix: volatile images are not relaiable when restoring 2016-09-04 02:16:58 +09:00
Hajime Hoshi
865a45e052 restorable: Reset states after restoring 2016-09-04 02:11:02 +09:00
Hajime Hoshi
d386f57ac6 restoring: Refactoring: Add Image.volatile 2016-09-04 02:06:54 +09:00
Hajime Hoshi
43e8349567 graphics: Remove imageImpl.width/height 2016-09-04 01:25:02 +09:00
Hajime Hoshi
b8b7e97511 restorable: Remove arguments from restoring functions 2016-09-04 00:57:23 +09:00
Hajime Hoshi
02151e48ea restorable: Remove Image() 2016-09-04 00:53:30 +09:00
Hajime Hoshi
82febc9c6e restorable: Reduce Image() usage and remove MakeStale() 2016-09-03 23:54:52 +09:00
Hajime Hoshi
e7558036ae restorable: Remove IsStale 2016-09-03 23:42:44 +09:00
Hajime Hoshi
cae75fac69 graphics: Bug fix: Invalid Clear calling in Dispose 2016-09-03 23:42:28 +09:00
Hajime Hoshi
fb3724a40e graphics: Remove imageImpl.image member 2016-09-03 23:08:51 +09:00
Hajime Hoshi
438afdac5b restorable: Add NewImage 2016-09-03 22:24:37 +09:00
Hajime Hoshi
9c079917f1 Rename pixels -> restorable 2016-09-03 22:19:59 +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
87efaafcff Update GLFW version 3.1 -> 3.2 2016-09-03 16:25:43 +09:00
Hajime Hoshi
84b512a3ac ui: Bug fix: Remove unneeded argument 2016-09-03 02:12:11 +09:00
Hajime Hoshi
ec70ea3be5 ui: Refactoring 2016-09-03 01:06:16 +09:00
Hajime Hoshi
db782ff0d9 ui: Remove UserInterface interface 2016-09-03 00:20:05 +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
Hajime Hoshi
128dcaa342 ui: Rename Main -> Run 2016-09-02 02:59:40 +09:00
Hajime Hoshi
571d67f967 ui: Reduce methods in UserInterface 2016-09-02 02:31:03 +09:00
Hajime Hoshi
93a994f1d6 ui: Refactoring on mobile 2016-09-02 01:34:51 +09:00
Hajime Hoshi
453c2c4589 ui: Remove Terminate 2016-09-02 01:07:41 +09:00
Hajime Hoshi
6da16aa1a0 ui: Refactoring: Remove events 2016-09-02 00:53:05 +09:00
Hajime Hoshi
b95d714eed loop: Simplify update 2016-09-01 22:21:58 +09:00
Hajime Hoshi
068bc55ded loop: Remove comments 2016-09-01 10:37:08 +09:00
Hajime Hoshi
1e0bdf844d loop: Bug fix: vsync should not use channels on browsers (#259) 2016-09-01 10:36:00 +09:00
Hajime Hoshi
57a32464dc loop: Use RLock 2016-08-30 23:56:34 +09:00
Hajime Hoshi
53e1f90146 graphics: Bug fix: Don't store interface color.Color value inside (#261) 2016-08-30 23:34:18 +09:00
Hajime Hoshi
c23224c56b loop: Bug fix: the threshold to detect if the game stops was too strict (#) 2016-08-29 01:40:43 +09:00
Hajime Hoshi
cddaae55dd ui: Simplify vsync 2016-08-28 17:09:58 +09:00
Hajime Hoshi
de1bb1b392 go generate 2016-08-27 00:50:26 +09:00
Hajime Hoshi
1cb66048ad doc: go generate; Add style.css 2016-08-26 23:33:36 +09:00
Hajime Hoshi
3dad97af8a Add comments 2016-08-23 00:05:23 +09:00
Hajime Hoshi
749a751369 graphics: Bug fix: Make an image stale when another stale image is drawn to this (#257) 2016-08-23 00:05:11 +09:00
Hajime Hoshi
c54dc8ee1c graphics: Less calls of ReadPixelsFromVRAM 2016-08-20 23:25:45 +09:00
Hajime Hoshi
7b32d7a206 graphics: Bug fix: Pixels should be copied to store it as a command 2016-08-17 22:10:29 +09:00
Hajime Hoshi
612d3b07b0 ui: Bug fix: ui.funcs might be closed before sending a value 2016-08-17 01:57:20 +09:00
Hajime Hoshi
3619a796dc ui: Check the return value of ReleaseDC() 2016-08-09 00:25:47 +09:00
Hajime Hoshi
96a43bcb4d ui: Bug fix: must call ReleaseGC (#251) 2016-08-09 00:09:22 +09:00
Hajime Hoshi
c8edcde2d5 graphics: Image minimum size changed to 1 2016-08-07 17:27:17 +09:00
Hajime Hoshi
f556b19f22 Add error checks 2016-08-03 23:44:54 +09:00
Hajime Hoshi
0aca79ed0b graphics: Add error checks 2016-08-03 11:05:10 +09:00
Hajime Hoshi
8e58f3ce0a ui: Bug fix: closed channel never blocks 2016-08-03 01:07:46 +09:00
Hajime Hoshi
30b521f3b8 Add error checks 2016-08-03 01:02:05 +09:00
Hajime Hoshi
6968e898c3 Bug fix: ui.Main should be suspended when error occurs in the loop 2016-08-02 02:48:19 +09:00
Hajime Hoshi
c7106f595c Add error checks 2016-08-02 02:26:44 +09:00
Hajime Hoshi
9b6b5372ef pixels: Remove image member 2016-07-27 12:24:30 +09:00
Hajime Hoshi
3bc2239a3b pixels: Bug fix: Update image member when creating a new image 2016-07-27 12:13:54 +09:00
Hajime Hoshi
3724815f21 pixels: Rename functions 2016-07-27 02:50:53 +09:00
Hajime Hoshi
459046f52a pixels: Ensure pixels is not stale when restoring 2016-07-27 02:25:08 +09:00
Hajime Hoshi
e0894879f1 pixels: Remove IsStale 2016-07-27 02:20:42 +09:00
Hajime Hoshi
56732d9a23 pixels: Add 'stale' member 2016-07-27 02:17:27 +09:00
Hajime Hoshi
c18756352d pixels: Refactoring 2016-07-27 01:54:23 +09:00
Hajime Hoshi
5c56058d6e pixels Rename s/history/dependency/ 2016-07-27 01:28:16 +09:00
Hajime Hoshi
c5f3eaf925 graphics: Refactoring 2016-07-26 12:28:05 +09:00
Hajime Hoshi
40427b6263 pixels: Bug fix: Reset pixels correctly 2016-07-26 11:40:41 +09:00
Hajime Hoshi
0fc61ed568 pixels: Rename fuctions 2016-07-26 10:51:48 +09:00
Hajime Hoshi
558f559323 graphics: Remove pixels when inconsistent 2016-07-26 10:35:24 +09:00
Hajime Hoshi
1ec503e1b5 pixels: Add comments 2016-07-25 10:38:41 +09:00
Hajime Hoshi
939284820c pixels: Bug fix: Remove IsCleared: pixels state might not match with actual state 2016-07-25 10:22:37 +09:00
Hajime Hoshi
c0eb01d69e pixels: Rename s/flush/reset/ 2016-07-25 09:10:51 +09:00
Hajime Hoshi
95dae4ad45 pixels: Remove 'inconsistent' property 2016-07-25 09:01:00 +09:00
Hajime Hoshi
931e60902f graphics: Refactoring 2016-07-25 08:48:58 +09:00
Hajime Hoshi
f6be72fba2 Add internal/pixels 2016-07-25 02:28:59 +09:00
Hajime Hoshi
e118a755f5 ui: Bug fix: Sizing also calls GLContext 2016-07-24 05:29:47 +09:00
Hajime Hoshi
efe64d56f4 ui: Bug fix: Avoid dead lock 2016-07-24 04:32:12 +09:00
Hajime Hoshi
c5e42c91be ui: Add glcontext.go 2016-07-24 00:05:36 +09:00
Hajime Hoshi
121063ee2b ui: Initialize GLContext at Start 2016-07-23 22:17:36 +09:00
Hajime Hoshi
5a3ea34cfc ui: Delay initializing the context 2016-07-23 21:43:35 +09:00
Hajime Hoshi
3553fc55c3 ui: Unify the context thread and the UI thread 2016-07-23 21:22:59 +09:00
Hajime Hoshi
8371426888 ui: Refactoring 2016-07-23 21:01:30 +09:00
Hajime Hoshi
1953539e22 ui: Refactoring: Simplify initializing 2016-07-23 20:25:52 +09:00
Hajime Hoshi
e3ef0540a3 opengl: Bug fix: Remove infinite for loop and improve FPS on iOS 2016-07-23 02:09:48 +09:00
Hajime Hoshi
d7c2682c53 examples/sprites: Slower increasing num of sprites 2016-07-16 19:34:36 +09:00
Hajime Hoshi
66f262c80e graphics: Enable to draw unlimited number of sprites (#245) 2016-07-16 19:17:57 +09:00
Hajime Hoshi
d00eb131f4 graphics: Remove commandQueue's member indexOffsetInBytes 2016-07-16 04:21:44 +09:00
Hajime Hoshi
7a96f31b1f graphics: Hide MaxQuads 2016-07-16 02:07:16 +09:00
Hajime Hoshi
bc43614c25 graphics: Remove draw.go 2016-07-16 00:17:21 +09:00
Hajime Hoshi
1627176d59 graphics: Restoring by recording drawing-images history 2016-07-13 12:38:59 +09:00
Hajime Hoshi
4bded02ad6 graphics: Add a comment 2016-07-10 14:49:41 +09:00
Hajime Hoshi
0c611d875b graphics: Bug fix: glTexSubImage2D on Android now works (#211) 2016-07-10 05:59:21 +09:00
Hajime Hoshi
1b152ae771 opengl: Bug fix: Reset lastTexture when deleting 2016-07-10 05:04:25 +09:00
Hajime Hoshi
d8e7ec5274 opengl: Initialize lastTexture 2016-07-09 23:14:24 +09:00