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