Commit Graph

5086 Commits

Author SHA1 Message Date
Hajime Hoshi
6b8516c7a5 driver: Move ui.RegularTermination to driver 2019-04-07 10:54:05 +09:00
Hajime Hoshi
1b8d4abfdb driver: Move ui.GraphicsContext to driver 2019-04-07 10:48:18 +09:00
Hajime Hoshi
b579bd7fd0 graphics: Remove GraphicsContext.Invalidated 2019-04-07 10:08:55 +09:00
Hajime Hoshi
6cdcd1ee62 input: Refactoring: Remove input dependencies from ui 2019-04-06 23:42:55 +09:00
Hajime Hoshi
a980de8326 ui: Take the Input driver 2019-04-06 23:29:13 +09:00
Hajime Hoshi
de9f54fd9d driver: Add Input 2019-04-06 21:48:54 +09:00
Hajime Hoshi
bf165ae9d4 devicescale: Refactoring 2019-04-03 23:20:45 +09:00
Hajime Hoshi
0d0b347411 devicescale: Use more runtime.KeepAlive for Windows 2019-04-03 11:57:00 +09:00
Hajime Hoshi
8005682786 devicescale: Use runtime.KeepAlive for Windows
This might be related to the bug #832
2019-04-03 11:53:23 +09:00
Hajime Hoshi
d56668bfdb input: Use sync.Once 2019-03-31 20:38:46 +09:00
Hajime Hoshi
f5c68d2a61 input: Refactoring 2019-03-31 20:20:52 +09:00
Hajime Hoshi
80dcec865d ui: Refactoring: Remove pollEvents 2019-03-31 19:51:53 +09:00
Hajime Hoshi
c21fb4d390 input: Move Touch to driver package 2019-03-31 18:58:43 +09:00
Hajime Hoshi
e273618081 input: Rename Reset -> ResetForFrame 2019-03-31 18:49:00 +09:00
Hajime Hoshi
9e5261c156 input: Change touches type 2019-03-31 17:15:27 +09:00
Hajime Hoshi
64d3e26fb0 input: Rename UpdateTouches -> SetTouches 2019-03-31 16:30:03 +09:00
Hajime Hoshi
06219db2cc input: Replace Touches with TouchIDs and TouchPosition 2019-03-31 02:59:48 +09:00
Hajime Hoshi
0536efd95f ui: Remove AdjustedCursorPosition 2019-03-31 02:06:42 +09:00
Hajime Hoshi
dec6be1a11 ui: Remove AdjustedTouches 2019-03-31 02:03:59 +09:00
Hajime Hoshi
5d6f66935a ui: Remove UpdateTouches 2019-03-31 01:54:38 +09:00
Hajime Hoshi
43ec1e7fb3 input: Refactoring: Make Touch a struct 2019-03-31 01:14:49 +09:00
Hajime Hoshi
853dbdf19d input: Refactoring 2019-03-31 00:45:52 +09:00
Hajime Hoshi
486a6134e4 Bug fix: compilation error on browsers and mobiles 2019-03-30 23:59:17 +09:00
Hajime Hoshi
7dca1889a1 input: Move Key to driver package 2019-03-30 23:39:56 +09:00
Hajime Hoshi
e5b1aa8742 png: Update for Go 1.12 2019-03-30 23:27:09 +09:00
Hajime Hoshi
c5a8c88e2d input: Move MouseButton and GamepadButton to driver package 2019-03-30 23:19:52 +09:00
Hajime Hoshi
7445144194 Move graphicsdriver.GrapahicsDriver to driver.Graphics 2019-03-30 22:38:02 +09:00
Hajime Hoshi
747d1be54e driver: Move getting actual drivers to ebiten package 2019-03-30 22:19:21 +09:00
Hajime Hoshi
f2e42c3ea1 ui: Remove dependencies on driver package 2019-03-30 21:59:11 +09:00
Hajime Hoshi
d6d57fdadf ui: Refactoring 2019-03-28 03:36:31 +09:00
Hajime Hoshi
8ec7ae4c08 Rename drivers -> driver 2019-03-28 01:48:45 +09:00
Hajime Hoshi
5e38f81462 Create packages drivers having actual drivers 2019-03-25 00:29:56 +09:00
Hajime Hoshi
92193b2362 input: Remove unnecessary empty slices 2019-03-24 23:44:36 +09:00
Hajime Hoshi
dbc3461628 ui: Use flexbox for centering 2019-03-20 01:44:36 +09:00
Hajime Hoshi
1392129e41 devicescale: Cache scale values 2019-03-12 01:31:18 +09:00
Hajime Hoshi
a3882dbc37 ui: Bug fix: devicescale.GetAt must be called on the main thread 2019-03-12 00:28:37 +09:00
Hajime Hoshi
f56c3bd096 ui: Unexport SetWindowResizable (#320) 2019-02-25 02:19:47 +09:00
Hajime Hoshi
ea7c2f8da3 ui: Bug fix: Wrong assumption that the position was always >= 0 2019-02-24 23:34:36 +09:00
Hajime Hoshi
ba59cdbc5f ui: Bug fix: The window must be shown on the current monitor (#829) 2019-02-24 23:26:07 +09:00
Hajime Hoshi
d4a522d9da glfw: Bug fix: Do not pass Go's int pointer
Go's int can be 64bit or 32bit, while C's int is always 32bit on
Windows in Ebiten usage. For C's int argument, do not pass Go's
int pointer or broken values are set.

Related to #829
2019-02-24 23:10:18 +09:00
Hajime Hoshi
288e0a33ba ui: Bug fix: SetSizeCallback must be effective only when the window is resizable
This is not a perfect solution but at least this fixes the
regression.

Fix #819
2019-02-24 03:25:38 +09:00
Hajime Hoshi
f19d7a29b8 graphicsdriver/metal: Do not release a nil texture (screen) 2019-02-22 00:37:49 +09:00
Hajime Hoshi
dbe4f27d5f shareable: Add comments
Oops, 0dcb53d290 did not make sense.
2019-02-21 10:58:40 +09:00
Hajime Hoshi
0dcb53d290 shareable: Bug fix: Node-leak when extending a page
This is very rare and not so serious I think, but is still a bug.
2019-02-21 10:49:23 +09:00
Hajime Hoshi
0bf911905a Revert "graphicsdriver/opengl: Call glFinish before glReadPixels"
This reverts commit 04dc1faa9c.

Reason: True fix for #814 is 82178794c3
2019-02-19 10:55:06 +09:00
Hajime Hoshi
82178794c3 shareable: Bug fix: Unlock after filling
Fixes #820
2019-02-19 10:16:27 +09:00
Hajime Hoshi
ccacf015c2 Revert "restorable: Bug fix: Guard images by mutex"
This reverts commit 7967f68073.

Reason: Wrong fix (syncing should be done at shareable package)
2019-02-19 10:15:23 +09:00
Hajime Hoshi
7967f68073 restorable: Bug fix: Guard images by mutex
The map must be guarded by mutex since this can be accessed by
multiple goroutines, including finalizer goroutine.

Fixes #820
2019-02-19 10:10:46 +09:00
Hajime Hoshi
d724e17032 graphicsdriver/metal: Bug fix: Wrong usage of RenderPipelineState for screen 2019-02-17 21:41:47 +09:00
Hajime Hoshi
84b1c282ff graphicsdriver/opengl: Refactoring by reduing unused variables 2019-02-17 20:22:03 +09:00
Hajime Hoshi
3aa6eb3a66 graphicsdriver: Optimize shaders for the case of FILTER_SCREEN
Assume a color matrix or color vertex values are not used when
the filter is FILTER_SCREEN.
2019-02-17 19:40:52 +09:00
Hajime Hoshi
cbb0a1da95 graphicsdriver: Refactoring
This improved FPS on mobiles a little bit. Maybe now texture2D is
called only when necessary, but not sure.
2019-02-17 17:37:11 +09:00
Hajime Hoshi
742bbb4ccd graphicsdriver: Simplify clamping color values
For negative values, OpenGL (and Metal) should take care of them
so we don't have to care.
2019-02-17 15:09:05 +09:00
Hajime Hoshi
3d8a45a770 graphicsdriver/opengl: Refactoring 2019-02-17 14:30:32 +09:00
Hajime Hoshi
d927241223 graphicsdriver/opengl: Remove unnecessary function calls 2019-02-17 11:44:50 +09:00
Hajime Hoshi
3ecb00f717 graphicsdriver: Optimize shaders
Simplified the case when a color matrix is not used.
2019-02-16 23:53:22 +09:00
Hajime Hoshi
a8b97c9755 graphicsdriver: Optimize shader (skip color matrix calculation)
Skip multiplying with a color matrix when possible.
2019-02-16 17:33:12 +09:00
Hajime Hoshi
815ed8cda2 graphicsdriver: Optimize shader by removing 'if' 2019-02-16 16:39:02 +09:00
Hajime Hoshi
1f46299870 graphicsdriver/opengl: Bug fix: source_size can be optimized out with nearest filter 2019-02-16 15:14:48 +09:00
Hajime Hoshi
b1b8d0b4b1 graphics: Move texel-region adjustment from shaders to program
This reduces GPU burden.
2019-02-16 14:50:03 +09:00
Hajime Hoshi
09ca873c41 graphicsdriver/opengl: Use glBindAttribLocation instead of glGetAttribLocation
Attribute variables are often optimized out and it is really hard
to prevent this.

Instead of implicit indices of attribute variables, use explicit
indices by glBindAttribLocation.

Bug: #816
2019-02-16 14:35:53 +09:00
Hajime Hoshi
7ff99d3965 graphicsdriver/opengl: Remove glGetError calls
As glGetError doesn't tell where the error happens, this is not
useful.

Fixes #815
2019-02-16 10:00:27 +09:00
Hajime Hoshi
fc329bd215 graphicsdriver/metal: Use template specialization 2019-02-15 09:46:58 +09:00
Hajime Hoshi
3f28592700 graphics: Refactoring: Remove PutVertex 2019-02-15 00:22:32 +09:00
Hajime Hoshi
7c506bc5bc restorable: Refactoring: Add (*Image).QuadVertices/PutVertex 2019-02-15 00:18:12 +09:00
Hajime Hoshi
a06a2b65c1 shareable: Fix semantically incorrect function usage
In this case, the size equals to the internal size, so this is not
a bug fix.
2019-02-14 23:23:52 +09:00
Hajime Hoshi
fd250c8d8c graphics: Rename NextPowerOf2Int -> InternalImageSize and add image size adjustment
There is a minimum internal image size on some system like old iOS
devices. This change adds adjustment of the size.

Issue: #810
2019-02-14 23:06:01 +09:00
Hajime Hoshi
a2fe3d5962 restorable: Refactoring: Use InternalSize instead of NextPowerOf2Int 2019-02-14 22:39:19 +09:00
Hajime Hoshi
4e8c7f0a75 restorable: Rename SizePowerOf2 -> InternalSize 2019-02-14 20:56:38 +09:00
Hajime Hoshi
a6d3a1e0cb graphicsdriver/metal: Refactoring: Use NextPowerOf2Int 2019-02-14 11:09:16 +09:00
Hajime Hoshi
a1b1bce43a graphicsdriver/metal: Bug fix: Some tests failed due to wrong source size 2019-02-14 11:06:30 +09:00
Hajime Hoshi
7a76a5b42d graphicsdriver/metal: Remove while loop in shader programs 2019-02-14 10:54:32 +09:00
Hajime Hoshi
5c7f34827f graphicsdriver/metal: Use template specialization 2019-02-14 09:57:47 +09:00
Hajime Hoshi
04dc1faa9c graphicsdriver/opengl: Call glFinish before glReadPixels
It looks like glFlush is not enough at least on Travis CI.

Fixes #814
2019-02-14 02:03:05 +09:00
Hajime Hoshi
0546783ad5 restorable: Don't call (*graphicscommand.Image).Pixels twice (2) 2019-02-14 01:00:27 +09:00
Hajime Hoshi
3faa674e32 restorable: Don't call (*graphicscommand.Image).Pixels twice 2019-02-14 00:54:02 +09:00
Hajime Hoshi
3952474690 graphics/metal: Fix comments 2019-02-13 23:36:45 +09:00
Hajime Hoshi
81101e0f48 graphicsdriver/metal: Reduce 'if' from shader programs (#762) 2019-02-13 23:28:17 +09:00
Hajime Hoshi
27dbf1bbb7 restorable: Record more drawing image history items
Fixes #813
2019-02-13 10:45:08 +09:00
Hajime Hoshi
6930176fbb restorable: Add restorable.Pixels 2019-02-13 00:46:24 +09:00
Hajime Hoshi
93d0b0dd09 restorable: Add Fill
This is useful to reduce opportunity to make the image stale.
2019-02-13 00:46:24 +09:00
Hajime Hoshi
40f728a326 shareable: Call (*restorable.Image).Clear() when possible
This is a kind of relanding of c68c36b0b7.
Clearing the restorable.Image state can reduce the operations for
restoring.
2019-02-13 00:41:26 +09:00
Hajime Hoshi
5fed3d3bed shareable: Add MakeVolatile 2019-02-13 00:41:24 +09:00
Hajime Hoshi
5147bbde9d restorable: Add MakeVolatile 2019-02-13 00:39:54 +09:00
Hajime Hoshi
f613cd1407 restorable: Remove Pixels that is not used anywhere 2019-02-13 00:31:00 +09:00
Hajime Hoshi
c2c3579cde graphicsdriver/opengl: Reduce 'if' in shader programs
Fixes #812
2019-02-12 12:46:18 +09:00
Hajime Hoshi
6c4260d0e1 Revert "graphicsdriver/opengl: Use GL_RGBA8 as the internal format at glTexImage2D"
This reverts commit f5044f3d8f.

Reason: This doesn't work on some iOS machines
2019-02-12 03:34:06 +09:00
Hajime Hoshi
4273f1982d devicescale: Bug fix: Need to consider Y axis direction on macOS
Fixes #807
2019-02-10 23:34:15 +09:00
Hajime Hoshi
8e42484294 graphicscommand: Add 'address' to (*DrawImageCommand).String 2019-02-10 14:27:49 +09:00
Hajime Hoshi
6f428c584d shareable: Add comments 2019-02-10 14:13:00 +09:00
Hajime Hoshi
339155f63d shareable: Use CompositeModeSourceOver when possible at Fill 2019-02-10 14:08:59 +09:00
Hajime Hoshi
1150fc69d0 shareable: Use color vertex values instead of ColorM
This is an optimization: using ColorM might cause graphics command
separation.
2019-02-10 14:02:01 +09:00
Hajime Hoshi
f5044f3d8f graphicsdriver/opengl: Use GL_RGBA8 as the internal format at glTexImage2D
Related: #810
2019-02-09 21:27:46 +09:00
Hajime Hoshi
815f2a6b35 shareable: Improve panic messages 2019-02-09 19:47:45 +09:00
Hajime Hoshi
a5421de8ab mainthread: Add comments 2019-02-08 20:32:00 -10:00
Hajime Hoshi
87b4b8b1b4 mainthread: Disable panic temporarily
Fixes #809
2019-02-08 20:11:48 -10:00
Hajime Hoshi
a3eddeb50f Improve panic messages 2019-02-06 23:43:03 -10:00
Hajime Hoshi
9d291f601e graphicsdriver/metal: Bug fix: Make all the tests pass 2019-02-06 23:42:54 -10:00
Hajime Hoshi
207ae08c9d graphicsdriver/metal: Give up reusing buffers
It was inevitable to rely on reference counts, which was too hacky.
Besides, reusing buffers doesn't improve performance.
2019-02-05 03:22:50 +09:00
Hajime Hoshi
19079ae7a2 graphicsdriver/metal: Fix comments 2019-02-05 03:09:40 +09:00
Hajime Hoshi
f29337dc93 graphicsdriver/metal: Add comments 2019-02-03 23:58:45 +09:00
Hajime Hoshi
882d0c0bc8 graphicsdriver/metal: Reuse MTLBuffer instead of re-creating (#762) 2019-02-03 22:55:29 +09:00
Hajime Hoshi
a8dcd5c628 Replace go-flock with flock 2019-02-03 14:20:20 +09:00
Hajime Hoshi
d3d56c076d shareable: Use CopyPixels
CopyPixels is basically Pixels and ReplacePixels, but executed
lazily while Pixels reads pixels from GPU immediately. Thanks to
this, restorable.Image no longer need to keep pixel data if not
needed.
2019-02-03 02:51:56 +09:00
Hajime Hoshi
b89602d900 restorable: Add more comments 2019-02-02 19:19:03 +09:00
Hajime Hoshi
05d78b4232 mainthread: Cause panic when trying to run before initialization 2019-02-02 19:00:15 +09:00
Hajime Hoshi
bcd9db669d Revert "restorable: Don't record pixels when restoring is disabled"
This reverts commit aad7bdc64d.

Reason: This causes application freezing at least on macOS
2019-02-02 18:39:51 +09:00
Hajime Hoshi
204b0e72d6 graphicsdriver/metal: Do not wait until completed when possible (#762) 2019-02-02 04:35:38 +09:00
Hajime Hoshi
aad7bdc64d restorable: Don't record pixels when restoring is disabled 2019-02-02 00:44:02 +09:00
Hajime Hoshi
5be567d58f ui: Implement restoring context lost on browsers correctly
Fixes #734
2019-02-01 01:20:40 +09:00
Hajime Hoshi
ba47a19b17 mobile: Bug fix: error must be received without waiting for renderCh
Even when error happens, the error was not received when renderCh
received. This was the cause of freezing when error happens.
2019-01-28 12:32:48 +09:00
Hajime Hoshi
3ac1996f9d clock: Avoid overflow by using time duration on Windows 2019-01-27 17:31:30 +09:00
Hajime Hoshi
3691083cee clock: Use a more precise timer on Windows
This change is based on @silbinarywolf's change:
https://github.com/hajimehoshi/ebiten/issues/798#issuecomment-457822280

Fixes #798
2019-01-26 21:16:35 +09:00
Hajime Hoshi
b65a3d372b affine: Add ColorM.Scale tests 2019-01-23 02:50:30 +09:00
Hajime Hoshi
54019a4735 affine: Improve speed of ScaleOnly 2019-01-23 02:10:59 +09:00
Hajime Hoshi
2b0dff197e restorable: Fix comments (#793) 2019-01-22 23:33:56 +09:00
Hajime Hoshi
158f4fb3ed restorable: Bug fix: Reading pixels from a volatile image might fail
Fixes #793
2019-01-22 03:35:54 +09:00
Hajime Hoshi
ec08a75332 restorable: Add assertions 2019-01-21 02:17:09 +09:00
Hajime Hoshi
e2cfb2da6f restorable: Fix comments 2019-01-21 00:41:54 +09:00
Hajime Hoshi
eeb8fea778 restorable: Bug fix: dummyImage must be restored first
Fixes #791
2019-01-21 00:36:53 +09:00
Hajime Hoshi
4d05baf97c examples/contextlost: Bug fix: dummyImage must belong to theImages 2019-01-21 00:11:34 +09:00
Hajime Hoshi
55e9a861d0 ui: Bug fix: isRunning should never be 'false' even after Run on GopherJS 2019-01-19 03:29:07 +09:00
Hajime Hoshi
78ed824351 graphics: Make verticesBackend concurrent safe
Fixes #789
2019-01-19 02:06:50 +09:00
Hajime Hoshi
248f51cc02 ui: Fix comments 2019-01-17 23:40:33 +09:00
Hajime Hoshi
fd4cdd445c graphicsdriver/opengl/gl: Unexport or remove C symbols (#786) 2019-01-17 22:16:47 +09:00
Hajime Hoshi
645b94de5f ui: Bug fix: actualScreenScale must be called on the main thread 2019-01-16 23:32:47 +09:00
Hajime Hoshi
107dfe5074 graphics: Improve Set speed
On GopherJS, copying a struct is very heavy. This change avoids
copying (color) structs when possible.
2019-01-14 04:25:43 +09:00
Hajime Hoshi
6ed4bbc0a2 ui: Fix comments 2019-01-13 22:51:24 +09:00
Hajime Hoshi
9e11477d6c restorable: Bug fix: volatile image must be cleared when recovering from the context lost
This fixes the bug that examples/contextlost crashes.
2019-01-13 22:30:08 +09:00
Hajime Hoshi
607186859d ui: Run returns immediately on GopherJS
Fixes #778
2019-01-13 22:16:33 +09:00
Hajime Hoshi
1e1f309a1c shareable: Add Fill
Before introducing Fill, filling an image with a solid color was
implemented by ReplacePixels. When an offscreen image is used, the
offscreen image is not fully cleared or filled with a color and
out of (0,0)-(width,height) region. This causes a glitch thin line
on mobile platforms.

This change adds (*shareable.Image).Fill to fill the whole
framebuffer region of the image.
2019-01-13 02:12:47 +09:00
Hajime Hoshi
90efddd6b3 restorable: Bug fix: Clearing a new image region was wrong 2019-01-12 16:16:50 +09:00
Hajime Hoshi
ce21125345 graphicscommand: Rename functions 2019-01-12 01:33:27 +09:00
Hajime Hoshi
dc0c6e0907 graphicscommand: Use GL on macOS 10.11 or older (#781) 2019-01-12 01:30:47 +09:00
Hajime Hoshi
72c1a73cac graphicsdriver/metal: Avoid using @available syntax for old Xcode (#781) 2019-01-12 00:33:45 +09:00
mebusy
0419aec617 graphicscommand: Use Opengl instead on early MacOSX platform which does not support Metal (#779) 2019-01-11 22:34:23 +09:00
Hajime Hoshi
6783aaae56 graphics: Better test for a crash 2019-01-11 00:31:32 +09:00
Hajime Hoshi
c4e98de804 shareable: Refactoring 2019-01-10 23:31:53 +09:00
Hajime Hoshi
4a587f495d restorable: Bug fix: ReplacePixels might call DrawImage, which violates some assumptions 2019-01-10 23:22:59 +09:00
Hajime Hoshi
a6b3f761f8 audio: Refactoring: Remove dependency on clock package 2019-01-10 00:59:38 +09:00
Hajime Hoshi
5514a9c6ac ui: Bug fix: Changing screen size didn't work correctly on Windows
Fixes #775
2019-01-09 11:08:27 +09:00
Hajime Hoshi
28665cfc4b glfw: Bug fix: Compilation error on Windows 2019-01-09 10:34:54 +09:00
Hajime Hoshi
ae84e79d16 ui: Add IsWindowResizable and SetWindowResizable (again)
Fixes #320
2019-01-09 00:24:16 +09:00
Hajime Hoshi
0d4e903b7a Revert "ui: Add IsWindowResizable and SetWindowResizable"
This reverts commit f403e0716f.

Reason: Compilation error on browsers
2019-01-09 00:12:57 +09:00
Hajime Hoshi
f403e0716f ui: Add IsWindowResizable and SetWindowResizable
Fixes #320
2019-01-08 23:52:53 +09:00
Hajime Hoshi
12f7d14d91 graphicsdriver/opengl: Check the reserved keyword
Fixes #772
2019-01-08 00:07:49 +09:00
Hajime Hoshi
758b957b01 graphicsdriver/opengl: Bug fix: filter is a preserved keyword (#771) 2019-01-07 11:20:29 +09:00
Hajime Hoshi
7f656f11d6 ui: Bug fix: Minimum window width should be 1 when the window is not decorated 2019-01-07 00:46:41 +09:00
Hajime Hoshi
b34834a895 graphicscommand: Explicitly forbide ReplacePixels for a part after DrawImage 2019-01-06 05:15:27 +09:00
Hajime Hoshi
1cfd97cde0 restorable: Clearing is not needed after NewImage 2019-01-06 03:40:59 +09:00
Hajime Hoshi
b5c9cd6253 shareable: Fix comments 2019-01-06 03:15:32 +09:00
Hajime Hoshi
123be16699 graphicsdriver/opengl: Use NewLazySystemDLL instead of NewLazyDLL (#766) 2019-01-04 15:05:27 +09:00
Hajime Hoshi
f2dcc8ccdb devicescale: Use NewLazySystemDLL instead of NewLazyDLL (#766) 2019-01-04 06:11:59 +09:00
Hajime Hoshi
db1b664424 devicescale: Refactoring: define Windows error consts 2019-01-04 06:05:35 +09:00
Hajime Hoshi
75a024e40e devicescale: Bug fix: GetWindowDC returns error on Wine
Fixes #743
2019-01-04 05:58:34 +09:00
Hajime Hoshi
5c1b0bbcec devicescale: Remove 'syscall' package usages (#766) 2019-01-04 05:53:18 +09:00
Hajime Hoshi
f2840bb0dc ui: Remove 'syscall' package usages (#766) 2019-01-04 05:28:46 +09:00
Hajime Hoshi
623bfde007 graphicsdriver/metal/ca: Suppress warnings (#767) 2019-01-02 01:16:54 +09:00
Hajime Hoshi
ac6ad717b7 graphicsdriver/metal: Use selector again to access properties (#767) 2019-01-02 01:09:12 +09:00
Hajime Hoshi
6350cb6bfd graphicsdriver/metal/ca: Add check by respondsToSelector (#767) 2019-01-02 00:52:03 +09:00
Hajime Hoshi
a0a17330ee graphicsdriver/metal: Specify macOS version (#768) 2019-01-02 00:08:46 +09:00
Hajime Hoshi
61afdc8852 graphicsdriver/metal: Remove unused properties (#767) 2019-01-01 05:09:02 +09:00
Hajime Hoshi
947fbe0a2e glwf: Implement SetIcon 2018-12-31 15:49:45 +09:00
Hajime Hoshi
efc7225ee1 glfw: Skip error check at proc call 2018-12-31 15:48:37 +09:00
Hajime Hoshi
a21a4c75b0 glfw: Implement DLL version of the binding 2018-12-31 15:48:34 +09:00
Hajime Hoshi
a9455d1c32 glfw: Add loading DLL 2018-12-31 15:46:06 +09:00
Hajime Hoshi
ad285c2235 glfw: Add DLL build results
This also adds fixes for 32bit machines.
2018-12-31 15:46:01 +09:00
Hajime Hoshi
90f82de5ef glfw: Separate glfw-dependent part and the other part 2018-12-30 20:45:50 +09:00
Hajime Hoshi
55c2fa4de1 Use internal/glfw 2018-12-30 02:35:46 +09:00
Hajime Hoshi
1fd445b0e4 glfw: Start implementing glfw package (Key) 2018-12-30 01:11:49 +09:00
Hajime Hoshi
83787123ac ui: Refactoring 2018-12-28 14:08:44 +09:00
Hajime Hoshi
b349efaa0a graphicsdriver/metal: Make main-thread usages more explicit 2018-12-28 02:43:00 +09:00
Hajime Hoshi
86bda42417 graphicsdriver/metal: Refactoring: vsync member variable was not needed 2018-12-28 02:29:56 +09:00
Hajime Hoshi
105909ab6c graphicsdriver/metal: Bug fix: SetVsyncEnabled before Run didn't work on macOS 2018-12-28 02:23:39 +09:00
Hajime Hoshi
532488ac5c mainthread: RunLockOSThread is mainthread package's responsibility 2018-12-28 02:20:53 +09:00
Hajime Hoshi
c76ce28065 Revert "ui: Bug fix: SetVsyncEnabled before Run didn't work on macOS"
This reverts commit 042b30a516.
2018-12-28 02:18:38 +09:00
Hajime Hoshi
042b30a516 ui: Bug fix: SetVsyncEnabled before Run didn't work on macOS 2018-12-28 02:11:48 +09:00
Hajime Hoshi
25581b2be8 restorable: Fix comments 2018-12-27 03:12:30 +09:00
Hajime Hoshi
4ba47eee32 restorable: Refactoring 2018-12-27 03:06:44 +09:00
Hajime Hoshi
62cdb93105 restorable: Improve tests 2018-12-26 21:14:29 +09:00
Hajime Hoshi
fbf7007056 restorable: Pixels() should return immediately when it doesn't have to access GPU
Fixes #763
2018-12-26 20:25:40 +09:00
Hajime Hoshi
454a7d8ef9 graphicsdriver/opengl: Bug fix: misspelling on variables
Fixes #764
2018-12-26 03:03:06 +09:00
Hajime Hoshi
99e4c874fe Reduce init functions
This mitigates the init-order issue on jsgo.io.
2018-12-26 02:13:47 +09:00
Hajime Hoshi
de788603d6 graphicsdriver/opengl: Remove init order dependency 2018-12-25 23:58:01 +09:00
Hajime Hoshi
ebbbb448fa graphicsdriver/metal: Rename function for consistency 2018-12-25 02:24:02 +09:00
Hajime Hoshi
f5708cb58a graphicsdriver/opengl: Bug fix: Rename a function not to override an existing function 2018-12-24 17:45:16 +09:00
Hajime Hoshi
f1582c2d73 graphics: Add Address representing a sampler address mode
Fixes #761
2018-12-24 17:29:31 +09:00
Hajime Hoshi
7e50ae39c9 graphicsdriver/opengl: Refactoring: Filter as a uniform value 2018-12-24 16:06:25 +09:00
Hajime Hoshi
85df49dc96 graphicsdriver/opengl: Bug fix: variables can be optimized out 2018-12-23 06:04:35 +09:00
Hajime Hoshi
189b8a17e9 graphics: Use source-border check even at DrawTriangles
DrawTriangles can now take a sub-image.
2018-12-23 03:24:39 +09:00
Hajime Hoshi
4149a56524 graphics: Refactoring: Use 12 floats for each vertex
This is a preparation for #761.
2018-12-23 02:36:28 +09:00
Hajime Hoshi
bf67998fc5 graphicscommand: Bug fix: Do not assure the initial state of the image 2018-12-23 01:18:05 +09:00
Hajime Hoshi
4d0cc623fb ui: Rename functions 2018-12-22 02:32:02 +09:00
Hajime Hoshi
e809991c9f shareable: Bug fix: Image invalidation by ReplacePixels
ReplacePixels on a part of image might invalidate the other part of
the image on MacBook Pro 2013, especially when the other part is
rendered by DrawImage.

Fixes #593 #758
2018-12-21 11:50:10 +09:00
Hajime Hoshi
c227934153 graphicsdriver/metal: Bug fix: Adjust texels
Fixes #759
2018-12-21 02:38:00 +09:00
Hajime Hoshi
d520749dcb graphicsdriver/metal: Call Release on the main thread 2018-12-20 23:08:40 +09:00
wasedaigo
6840e9e739 graphicsdriver/metal: Clarify the type of passing parameters (#757)
Fixes #756
2018-12-20 17:04:03 +09:00
Hajime Hoshi
ff62876552 Add Metal implementation
Fixes #621
2018-12-20 02:37:10 +09:00
Hajime Hoshi
d738639c48 graphicsdriver/opengl: Fix panic messages 2018-12-20 02:36:21 +09:00
Hajime Hoshi
294bf855af ui: Fix logic: [NSApp mainWindow] can be nil when borderless 2018-12-19 02:25:12 +09:00
Hajime Hoshi
db4395d71b ui: Bug fix: ScreenSizeFullscreen before Run crashes on Linux 2018-12-19 01:21:00 +09:00
Hajime Hoshi
6ef5cc5857 ui: Bug fix: SetWindowDecorated didn't work
Fixes #753
2018-12-19 01:01:18 +09:00
Hajime Hoshi
b3ce89aab1 ui: Bug fix: SetWindowIcon before Run didn't work
Fixes #755
2018-12-18 23:16:09 +09:00
Hajime Hoshi
241ccc307f ui: Add comments about #753 2018-12-18 03:34:45 +09:00
Hajime Hoshi
eac00c3d83 ui: Bug fix: SetCursorVisible before Run didn't work
Fixes #754
2018-12-18 03:07:16 +09:00
Hajime Hoshi
9628e629ae graphicscommand: Fix tests to be more deterministic
Fixes #751
2018-12-17 21:46:53 +09:00
Hajime Hoshi
5d0420cea0 graphicscommand: Simplify Image
First I thought Metal requried an initialization process by
replacing pixels, but now this is not needed. Initialize images by
the dummy texture.
2018-12-16 22:36:03 +09:00
Hajime Hoshi
8b72ff5ec0 graphicscommand: Add tests 2018-12-16 17:38:02 +09:00
Hajime Hoshi
2c25318634 shareable: Add TestReplacePixelsAfterDrawImage 2018-12-16 15:13:35 +09:00
Hajime Hoshi
5f8a0e34bb graphics: isPowerOf2(0 or negative) should return false 2018-12-16 14:26:16 +09:00
Hajime Hoshi
17b225083d shareable: Improve TestExtend 2018-12-16 05:09:43 +09:00
Hajime Hoshi
22b11aafac shareable: Add TestExtend 2018-12-15 19:51:17 +09:00
Hajime Hoshi
d29cabca43 graphicsdriver: Remove MaxImageSize 2018-12-15 03:46:32 +09:00
Hajime Hoshi
18d109e3df graphicsdriver/opengl/gl: Fix README 2018-12-09 04:41:43 +09:00
Hajime Hoshi
e8a1be7748 graphicsdriver/opengl: Use non-cgo gl package on Windows (#171)
This is a temporal fix until go-gl/glow#102 is applied.
2018-12-09 03:06:11 +09:00
Hajime Hoshi
2fd0daec10 ui: Fix comments 2018-12-04 03:10:54 +01:00
Hajime Hoshi
155ee828b8 Fix misspelling 2018-12-03 18:23:25 +01:00
Hajime Hoshi
f85a62c6a7 restorable: Rename dummyImage -> emptyImage 2018-12-01 21:49:41 +01:00
Hajime Hoshi
e537cb2c27 graphics: Bug fix: render source might not be initialized 2018-12-01 21:36:51 +01:00
Hajime Hoshi
3f75da5f35 restorable: Refactoring: Remove newImageWithoutInit 2018-12-01 21:36:51 +01:00
Hajime Hoshi
c6dd0a75d9 graphicscommand: Optimize replace-image calls
Now ReplacePixels command is called only when necessary.

This also ensures that DrawImage must be called after ReplacePixels
is called since there is a potential problem that rendering images
on a texture without initializing by replacing pixels might cause
problems (escpecially on Metal. Perhaps #593 might be related).
2018-12-01 21:36:47 +01:00
Hajime Hoshi
e799a0c6a8 shareable: Fix wrong variable names 2018-12-01 11:31:32 +01:00
Hajime Hoshi
247e4f5b6b restorable: Skip initializing the screen image 2018-11-30 00:19:52 +01:00
Hajime Hoshi
962a11468b restorable: Fix clearing logic
Fixes #740
2018-11-28 23:00:24 +01:00
Hajime Hoshi
1a54ff34e6 graphics: Forbid nil at ReplacePixels explicitly 2018-11-28 22:26:34 +01:00
Hajime Hoshi
1f538af440 restorable: Refactoring 2018-11-24 21:08:28 +09:00
Hajime Hoshi
d165673789 devicescale: Bug fix: Crash on Wine
GetWindowDC(0) doesn't work on Wine. Let that return an arbitrary
scale 1 in this case.

Fixes #738
2018-11-24 16:37:30 +09:00
Hajime Hoshi
b48d501bc0 graphics: Explicit limitation of indices at DrawTriangles
Fixes #728
2018-11-23 19:02:10 +09:00
Hajime Hoshi
62210c89f3 graphicsdriver/opengl: Add assertion at ReplacePixels 2018-11-18 02:09:44 +09:00
Hajime Hoshi
31f15bc5ad Revert "graphics: Change the number of floats for a vertex from 10 to 12"
This reverts commit 7586c660d5.
2018-11-18 00:07:15 +09:00
Hajime Hoshi
d8f337985d graphicsdriver/opengl: Refactoring 2018-11-17 22:40:21 +09:00
Hajime Hoshi
ef08e218c8 graphicsdriver/opengl: Refactoring: Remove framebuffer.projectionMatrix 2018-11-17 22:29:04 +09:00
Hajime Hoshi
14f5a03a79 Merge math and graphics packages 2018-11-17 20:23:12 +09:00
Hajime Hoshi
de745f00fa graphicsdriver/opengl: Refactoring: Improve logic to generate framebuffer 2018-11-17 19:49:30 +09:00
Hajime Hoshi
44d1b137e7 graphicsdriver/opengl: Refactoring 2018-11-17 19:29:52 +09:00
Hajime Hoshi
7586c660d5 graphics: Change the number of floats for a vertex from 10 to 12
This is a preparation for Metal, that forces 4 floats for a vertex
position.
2018-11-17 15:30:11 +09:00
Hajime Hoshi
d2595c5be7 ui: Refactoring 2018-11-15 01:08:36 +09:00
Hajime Hoshi
e24f6b7848 graphicsdriver/opengl: Rename GetDriver -> Get 2018-11-13 00:01:26 +09:00
Hajime Hoshi
2313f79160 graphicsdriver: Rename Delete -> Dispose 2018-11-12 23:44:39 +09:00
Hajime Hoshi
cc2174bd69 graphicsdriver: Adjust API 2018-11-11 23:57:23 +09:00
Hajime Hoshi
907a28c434 graphicsdriver: Rename BufferSubData -> SetVertices 2018-11-11 23:54:58 +09:00
Hajime Hoshi
846a719d6c graphicsdriver: Merge UseProgram and DrawElements into Draw 2018-11-11 23:53:23 +09:00
Hajime Hoshi
575af7e416 graphicsdriver: Change indexOffsetInBytes -> indexOffset at DrawElements 2018-11-11 23:51:16 +09:00
Hajime Hoshi
b2b51fb1bf graphicsdriver/opengl: Refactoring 2018-11-11 22:08:36 +09:00
Hajime Hoshi
aff77d98e4 graphicsdriver/opengl: Bug fix: compile error on browsers and mobiles 2018-11-11 04:51:17 +09:00
Hajime Hoshi
734aeabc8d graphicsdriver/opengl: Remove theContext 2018-11-11 03:37:37 +09:00
Hajime Hoshi
2f692d98c7 graphicsdriver: Rename TexSubImage2D -> ReplacePixels 2018-11-11 01:35:10 +09:00
Hajime Hoshi
61ca48225c graphicsdriver: Rename MaxTextureSize -> MaxImageSize 2018-11-11 01:26:37 +09:00
Hajime Hoshi
7e363a6f3b graphicsdriver/opengl: Unexport Context 2018-11-11 01:19:11 +09:00
Hajime Hoshi
241716d0e6 Add package graphicsdriver; Move opengl to graphicsdriver/opengl 2018-11-10 22:52:37 +09:00
Ben Echols
5e70fce639 Added monitor cache and scale cache (#731) 2018-11-07 20:54:37 +09:00
Hajime Hoshi
b396b4f88a opengl: Refactoring: Remove theOpenGLState 2018-11-07 02:01:00 +09:00
Hajime Hoshi
09c8516545 graphcis: Move IndicesNum from opengl to graphics 2018-11-07 01:49:45 +09:00
Hajime Hoshi
07ae1db0dd opengl: Add Driver 2018-11-07 01:43:07 +09:00
Hajime Hoshi
ed961505d2 opengl: Refactoring: Hide projection matrix inside opengl package 2018-11-06 03:45:44 +09:00
Hajime Hoshi
57c8c089e9 opengl: Unexport BlendFunc 2018-11-06 03:18:56 +09:00
Hajime Hoshi
c9f49efd41 graphics: Add VertexFlaotNum 2018-11-06 02:34:52 +09:00
Hajime Hoshi
580cd5cc71 opengl: Unexport DataType/Float/Short 2018-11-06 01:58:15 +09:00
Hajime Hoshi
82e9f227d1 opengl: Remove arrayBufferLayoutPart.dataType 2018-11-06 01:13:55 +09:00
Hajime Hoshi
00f28dd896 opengl: Remove BeforeSwapping
I couldn't machines that requre this any longer. Perhaps a bound
framebuffer is always the screen framebuffer before swapping now.
2018-11-05 02:14:56 +09:00
Hajime Hoshi
2c7017534f ui: Remove opengl dependency from ui package (desktop) 2018-11-05 01:24:53 +09:00
Hajime Hoshi
02b570a8e1 opengl: Refactoring: Use value type for theContext 2018-11-05 00:48:15 +09:00
Hajime Hoshi
f7fa4ed8f9 opengl: Refactoring 2018-11-05 00:44:27 +09:00
Hajime Hoshi
4090258904 opengl: Remove Init (except for mobile) 2018-11-05 00:21:39 +09:00
Hajime Hoshi
16ada03928 opengl: Unexport (*Image).Framebuffer 2018-11-04 20:00:13 +09:00
Hajime Hoshi
293857d3a3 opengl: Remove (*Image).Size 2018-11-04 19:59:27 +09:00
Hajime Hoshi
beae772287 opengl: Unexport Framebuffer 2018-11-04 19:55:27 +09:00
Hajime Hoshi
7bbc32ce0e opengl: Unexport Texture 2018-11-04 19:46:20 +09:00
Hajime Hoshi
786b349579 opengl: Unexport TexSubImage2D 2018-11-04 19:44:30 +09:00
Hajime Hoshi
531251d4ad opengl: Unexport NewTexture 2018-11-04 19:39:14 +09:00
Hajime Hoshi
bc7dd2f050 opengl: Unexport some functions 2018-11-04 19:13:41 +09:00
Hajime Hoshi
2a7caf7755 opengl: Move ensureFramebuffer to opengl.Image 2018-11-04 19:06:33 +09:00
Hajime Hoshi
95a925ec9a opengl: Refactoring 2018-11-04 18:51:50 +09:00
Hajime Hoshi
7fbf9f652e opengl: Unexport DeleteTexture 2018-11-04 18:46:05 +09:00
Hajime Hoshi
96f1a8aff6 opengl: Add Image struct 2018-11-04 18:39:28 +09:00
Hajime Hoshi
c7ea761031 opengl: Rename FramebufferStruct -> Framebuffer 2018-11-04 17:49:40 +09:00
Hajime Hoshi
9dae11808f opengl: Rename Framebuffer -> framebufferNative 2018-11-04 17:48:45 +09:00
Hajime Hoshi
c935c28498 opengl: Move Framebuffer from graphicscommand to opengl and rename it to FramebufferStruct 2018-11-04 17:39:01 +09:00
Hajime Hoshi
97a9e99112 opengl: Rename: BindScreenFramebuffer -> BeforeSwapping 2018-11-03 04:08:00 +09:00
Hajime Hoshi
841353670f opengl: Unexport BindTexture 2018-11-02 03:45:37 +09:00
Hajime Hoshi
6dceeb343c opengl: Refactoring: Remove ResetViewportSize 2018-11-02 03:24:35 +09:00
Hajime Hoshi
09fe1886d7 graphicscommand: Add comments
Add explanation why ResetViewportSize is needed.
2018-11-02 03:06:26 +09:00
Hajime Hoshi
3a8ddd6279 graphicscontext: Rename createFramebufferIfNeeded -> ensureFramebuffer 2018-11-01 03:42:30 +09:00
Hajime Hoshi
61c2331ac4 graphicscommand: Refactoring 2018-11-01 03:34:58 +09:00
Hajime Hoshi
e28c7b0f50 graphicscommand: Remove Texture 2018-11-01 03:29:23 +09:00
Hajime Hoshi
bc3ca38f76 opengl: Rename ResetGLState -> Reset and other functions 2018-11-01 03:02:08 +09:00
Hajime Hoshi
b8aa35373a graphicscommand: Remove unneeded type conversion 2018-10-31 10:54:45 +09:00
seebs
74e204d952 graphics: Speed up DrawTriangles (#723)
DrawTriangles is expensive and slow because of massive memory
allocation and garbage collection costs. This patch moves from ~47TPS
on my laptop (with ~24k triangles) to 60TPS. The first part
is just allocating the right size of vertex buffer up front; that
got to about 55TPS. The second part replaces the frequent
allocations of []float32 in Vertex() calls with writing the
desired values into a provided destination slice.

Time spent in drawing triangles for 1,000 frames:
	13.07s	baseline
	11.09s	preallocate whole buffer to avoid resizing
	6.13s	use new PutVertex function

This might need some cleanup, but I think it's good evidence that
the design change is viable.
2018-10-31 10:53:17 +09:00
Hajime Hoshi
45017213a7 opengl: Unexport (Element)ArrayBufferSubData 2018-10-31 00:59:44 +09:00
Hajime Hoshi
5be08cac19 opengl: Unexport BindBuffer 2018-10-30 23:59:20 +09:00
Hajime Hoshi
23a832c0a7 opengl: Unexport consts 2018-10-30 22:41:05 +09:00
Hajime Hoshi
99594fe732 opengl: Remove type mode 2018-10-30 22:36:12 +09:00
Hajime Hoshi
b2b09ccec0 restorable: Avoid memory allocating when an entire image is cleared 2018-10-30 11:08:38 +09:00
Hajime Hoshi
bb0b8ca83b opengl: Unexport (*Context).Reset() 2018-10-30 02:18:10 +09:00
Hajime Hoshi
ac7bf354a9 opengl: Unexport types 2018-10-30 02:13:51 +09:00
Hajime Hoshi
e4179aee37 opengl: Unexport functions 2018-10-30 01:50:30 +09:00
Hajime Hoshi
6b95a5140c opengl: Move program.go and shader.go to opengl 2018-10-30 01:27:31 +09:00
Hajime Hoshi
6b02f0ae9e graphicscommand: Move OrthoProjectionMatrix to opengl package 2018-10-29 01:08:51 +09:00
Hajime Hoshi
ce1c616f69 Merge graphics and graphicsutil 2018-10-28 23:03:06 +09:00
Hajime Hoshi
395b46d8da graphicsutil: Remove dependency on graphicscommand 2018-10-28 23:00:10 +09:00
Hajime Hoshi
7767bcfdd8 graphicsutil: Better allocation of vertices 2018-10-28 22:54:36 +09:00
Hajime Hoshi
fde9fd2d0e graphicsutil: Remove dependency on opengl 2018-10-28 22:01:59 +09:00
Hajime Hoshi
ff54d3b681 Move CompositeMode to graphics package 2018-10-28 21:49:47 +09:00
Hajime Hoshi
06f2052817 Add graphics package and move Filter to graphics 2018-10-28 20:25:52 +09:00
Hajime Hoshi
2da5192510 Rename graphics -> graphicscommand 2018-10-28 20:10:05 +09:00
Hajime Hoshi
7e29a81177 ui: Refactoring 2018-10-14 18:28:27 +09:00
Hajime Hoshi
0c4ef7ee8e ui: Bug fix: fix the initial window position on multiple monitors 2018-10-14 16:59:14 +09:00
Hajime Hoshi
b56061281d ui: Add comments 2018-10-13 22:41:21 +09:00
Hajime Hoshi
a073f48faf input: Bug fix: keypress event were not fired
This change suspends to 'preventDefault' on keydown events.

Now preventing navigation by pressing backspace is deprecated in
Chrome. For other keys, it looks like keyup's preventDefault is
enough to disable the browser default behavior.
2018-10-13 19:18:13 +09:00
Hajime Hoshi
faf32b9d37 devicescale: Plan 9 support 2018-10-13 04:08:40 +09:00
Hajime Hoshi
34596bb1cf ui: Bug fix: IsVsyncEnabled can cause deadlock 2018-10-10 23:17:45 +09:00
Hajime Hoshi
b4a4b87b56 ui: Bug fix: ScreenSizeInFullscreen returned wrong scaled values
Fixes #708
2018-10-10 03:10:18 +09:00
Hajime Hoshi
e971f6d41c ui: Avoid glfw.GetCurrentContext for threading issues 2018-10-10 01:45:39 +09:00
Hajime Hoshi
b5344bc994 ui: glfwScale must be called on the main thread 2018-10-10 01:07:47 +09:00
Hajime Hoshi
c758a1f8c6 ui: Rename MonitorSize -> ScreenSizeInFullscreen (#708) 2018-10-09 23:42:03 +09:00
Hajime Hoshi
dbe71e81bd ui: Bug fix: currentMonitorPos returned wrong values on macOS
[NSScreen mainScreen] sometimes returned a wrong screen for the
window. Use [[NSApp mainWindow] screen] when possible.

Fixes #703
2018-10-08 05:40:07 +09:00
Hajime Hoshi
c4a066ecd0 ui: Fix wrong comments about Windows 2018-10-08 04:06:44 +09:00
Hajime Hoshi
8d2820efb0 ui: Bug fix: the window is shown on the current monitor on Windows
Fixes #704
2018-10-08 03:24:14 +09:00
Hajime Hoshi
96a657025f ui: Bug fix: DeviceScaleFactor and MonitorSize were not correct on Windows 2018-10-08 03:18:24 +09:00
Hajime Hoshi
9264e38324 ui: Add comments 2018-10-08 01:45:07 +09:00
Hajime Hoshi
f6c2d899f1 ui: Bug fix: compile error on browsers and mobiles 2018-10-08 01:26:05 +09:00
Hajime Hoshi
4a5548a4a0 ui: MonitorSize should return the 'current' monitor size instead of the primary monitor size 2018-10-08 01:15:57 +09:00
Hajime Hoshi
f3b7148564 ui: Bug fix: DeviceScaleFactor should return the current monitor's scale 2018-10-08 01:11:13 +09:00
Hajime Hoshi
16a9bac487 ui: Remove deviceScale struct 2018-10-08 01:03:18 +09:00
Hajime Hoshi
effd530026 ui: Show the window on the current monitor (#704)
Tested on macOS. This doesn't work on Windows yet since there are
some codes that depends on the primary monitor.
2018-10-08 00:46:01 +09:00
Hajime Hoshi
fb7a3f2736 ui: Bug fix: Call SetPos multiple times to render correctly (#703) 2018-10-08 00:25:21 +09:00
Hajime Hoshi
e0d2d5e753 ui: Bug fix: wrong scaling when a window move across monitors
Fixes #701
2018-10-07 23:05:20 +09:00
Hajime Hoshi
0e7dab3707 ui: Fix comment 2018-10-06 20:04:48 +09:00
Hajime Hoshi
f9edfd7d57 ui: Remove unused variables 2018-10-06 19:55:10 +09:00
Hajime Hoshi
cc336a4c38 ui: Use more stable way to determine the current monitor 2018-10-06 19:53:43 +09:00
Hajime Hoshi
55a397bd65 devicescale: Specify the monitor to get the scale
Fixes #695
2018-10-06 19:43:23 +09:00
Hajime Hoshi
b99cc6ca8e ui: Bug fix: compile error on mobiles 2018-10-06 18:26:22 +09:00
Hajime Hoshi
8771d27d64 devicescale: Rename variables 2018-10-06 17:29:40 +09:00
Hajime Hoshi
d08ae0dd66 graphicsutil: Fix comments 2018-10-06 15:01:12 +09:00
Hajime Hoshi
ca2fe22e4a ui: Bug fix: Set the proper window position when coming back from fullscreen 2018-10-06 03:53:34 +09:00
Hajime Hoshi
7ea1ab6b58 ui: Bug fix: currentMonitor should not return nil
Fixes #700
2018-10-06 03:22:33 +09:00
Hajime Hoshi
cae9e39453 ui: Use the best suitable monitor for fullscreen
This change also changes the definition of MonitorSize.
2018-10-06 02:59:38 +09:00
Hajime Hoshi
16f6aeaa4a ui: Refactoring: Use the current monitor 2018-10-06 02:38:02 +09:00
Hajime Hoshi
bd1fc4439a graphicsutil: Avoid passing NaN to shaders experimentally (#696) 2018-10-04 02:02:19 +09:00
Hajime Hoshi
1807a3f530 devicescale: Rename function 2018-10-04 01:28:53 +09:00
Hajime Hoshi
10b49bb0a3 ui: Don't call devicescale.DeviceScale too often 2018-10-03 04:29:12 +09:00
Hajime Hoshi
11d23bafa9 devicescale: Bug fix: the active window can't be passed to ReleaseDC 2018-10-03 04:16:28 +09:00
Hajime Hoshi
02a2fc2d44 ui: Bug fix: Force to adjust window size when scale is changed
Fixes #644
2018-10-03 03:26:11 +09:00
Hajime Hoshi
eef9c01735 gofmt -s -w 2018-10-03 03:25:44 +09:00
Hajime Hoshi
cf41e0aa0a devicescale: Rename logPixelSx -> logPixelsX 2018-10-03 03:13:36 +09:00
Hajime Hoshi
399317a2cf devicescale: Get the current monitor's scale on Windows (#644) 2018-10-03 03:09:42 +09:00
Hajime Hoshi
c494b53822 ui: Refactoring: Add deviceScale struct 2018-10-02 23:06:56 +09:00
Hajime Hoshi
635d624b77 ui: Update device scale on browsers (#644) 2018-10-02 11:43:45 +09:00
Hajime Hoshi
21c1ee5dfb ui: Cache devicescale value on mobiles 2018-10-02 03:51:13 +09:00
Hajime Hoshi
9906c935f6 ui: Remove unnecessary lock protection 2018-10-02 03:25:30 +09:00
Hajime Hoshi
fce82e1502 ui: Use frame counter to update device scale 2018-10-02 03:21:59 +09:00
Hajime Hoshi
78f2946797 ui: Bug fix: timer condition was wrong 2018-10-02 02:53:17 +09:00
Hajime Hoshi
bf850e12a4 ui: Recalc device scale repeatedly for multiple displays (#644) 2018-10-02 02:49:08 +09:00
Hajime Hoshi
308c8091cd ui: Fix comments 2018-09-30 18:53:38 +09:00
Hajime Hoshi
8df596396c input: Bug fix: wheel direction is opposite on browsers 2018-09-30 17:14:52 +09:00
Hajime Hoshi
0224858b7b examples/wheel: Improve message 2018-09-30 17:13:22 +09:00
Hajime Hoshi
803e42714e input: Implement wheel event on browsers
Fixes #630
2018-09-30 17:08:18 +09:00
Hajime Hoshi
237f6a2014 input: Rename MouseWheel -> Wheel 2018-09-30 17:01:45 +09:00
Hajime Hoshi
b6f0ea0100 input: Remove unused variables 2018-09-30 15:40:16 +09:00
Hajime Hoshi
25a5f1dd83 ui: Sleep when vsync doesn't work (#692) 2018-09-30 14:44:54 +09:00
Hajime Hoshi
15260537a2 graphics: Bug fix: fullscreen rendering was wrong
After fad65f2f5d, the viewport size
is always same as the framebuffer size. The 'screen' image size
was the actual rendering region size, and padding was not
considered in the size. The padding is added on the fullscreen
mode.

This fix adds the extra padding values to the 'screen' image size
so that the 'screen' framebuffer will be same size as the monitor
size.

Fixes #693
2018-09-29 21:47:41 +09:00
Hajime Hoshi
fad65f2f5d graphics: Use the viewport size same as the framebuffer size
Fixes #691
2018-09-29 19:53:22 +09:00
Hajime Hoshi
c4abed0a22 opengl: Add coments about #629 2018-09-29 02:20:23 +09:00
Hajime Hoshi
ce8d9df647 graphics: Update glTexImage2D signature 2018-09-10 12:44:42 +09:00
Hajime Hoshi
3d24ffe3e0 clock: Bug fix: function registerd OnStart might not be called
Fixes #645
2018-09-03 00:35:55 +09:00
Hajime Hoshi
42757b735b internal/png: Update 2018-09-02 23:09:08 +09:00
Hajime Hoshi
8827520d4a graphics: Bug fix: avoid jaggy rendering on macOS by adjusting texels (#669) 2018-08-30 00:17:03 +09:00
Hajime Hoshi
2360b2930f graphics: Add DrawTriangles
Fixes #624
2018-08-14 01:23:14 +09:00
Hajime Hoshi
690c3cf981 graphics: Embed 'scale' part of the color matrix
If the color matrix includes only 'scale' part, they are embedded
into vertices in order to reduce draw calls.

Fixes #662
2018-08-10 23:20:55 +09:00
Hajime Hoshi
e46f9c6305 graphics: Bug fix: compile error 2018-08-10 03:10:57 +09:00
Hajime Hoshi
a03b335c24 graphics: Add logging when 'ebitendebug' tag is specified
Fixes #563
2018-08-10 02:39:07 +09:00
Hajime Hoshi
1aabdd58f1 restorable: Fix comments 2018-08-09 01:27:38 +09:00
Hajime Hoshi
3daaef2cab restorable: Refactoring: Use ReplacePixels(nil, ...) for clearing an image 2018-08-09 01:16:46 +09:00
Hajime Hoshi
a988082be1 shareable: Bug fix: disable tests 2018-08-09 00:19:55 +09:00
Hajime Hoshi
c68c36b0b7 restoreable: Add ClearState to clear the state explicitly
Fixes #566
2018-08-09 00:12:45 +09:00
Hajime Hoshi
cdc408d2c2 shareable: Suspend re-using shared images
Fixes #661
2018-08-08 18:40:52 +09:00
Hajime Hoshi
ed99719fdb devicescale: Use app.RunOnJVM and remove internal/jni 2018-08-06 23:50:37 +09:00
Hajime Hoshi
77e905eb25 Revert "graphics: Embed color matrices values to vertices (#655)"
This reverts commit 5a9235aaf9.
2018-08-06 01:44:31 +09:00
Hajime Hoshi
9af8e621bd Revert "affine: Refactoring: Unify two element slices into one"
This reverts commit da662b384c.
2018-08-06 01:44:31 +09:00
Hajime Hoshi
af77a17aaa devicescale: Use mainScreen instead of screens[0] to get the 'current' screen state 2018-08-05 19:18:40 +09:00
Hajime Hoshi
063edfcc4a opengl: Use the safer way to pass Go string to C 2018-08-04 05:22:59 +09:00
Hajime Hoshi
18d77d3f6e shareable: Rename variables 2018-08-03 02:50:11 +09:00
Hajime Hoshi
0956ca0ea6 graphicsutil: Add MipmapLevel 2018-07-31 01:47:03 +09:00
Hajime Hoshi
d7d02e6d6a Reland: graphics: mipmap images should be volatile when the base image is volatile
This is not a bug fix, but should improve performance.
2018-07-30 00:26:36 +09:00
Hajime Hoshi
5be58086b5 Revert "graphics: Bug fix: mipmap images should be volatile when the base image is volatile"
This reverts commit 0f82330009.
2018-07-29 23:58:46 +09:00
Hajime Hoshi
0f82330009 graphics: Bug fix: mipmap images should be volatile when the base image is volatile 2018-07-29 23:54:46 +09:00
Hajime Hoshi
0bf62f392f shareable: Bug fix: forceShared should allocate backend as shareable 2018-07-29 23:49:53 +09:00
Hajime Hoshi
81094da3a1 shareable: Bug fix: test failures 2018-07-29 23:28:13 +09:00
Hajime Hoshi
056ed1c6db shareable: Return color.RGBA instead of color.Color 2018-07-29 21:59:18 +09:00
Hajime Hoshi
b9265d5120 Enable to go-generate under non-GOPATH directories 2018-07-28 19:21:19 +09:00
Hajime Hoshi
88e488a5a6 docs: Update 2018-07-28 19:00:05 +09:00
Hajime Hoshi
da662b384c affine: Refactoring: Unify two element slices into one 2018-07-27 01:51:49 +09:00
Hajime Hoshi
2b4785f863 affine: Remove unused function 2018-07-27 01:23:14 +09:00
Hajime Hoshi
5a9235aaf9
graphics: Embed color matrices values to vertices (#655)
Fixes #531
2018-07-26 11:37:27 +09:00
Hajime Hoshi
2559979c2b shareable: Add tests 2018-07-25 01:08:04 +09:00
Hajime Hoshi
5beaf843a6 shareable: Bug fix: volatile or screen must not use shareable texture 2018-07-24 22:25:15 +09:00
Hajime Hoshi
b2a4ddf853 shareable: Refactoring: Add moveTo 2018-07-22 06:29:31 +09:00
Hajime Hoshi
693116ffd6 shareable: Bug fix: Double free 2018-07-22 05:52:11 +09:00
Hajime Hoshi
6687ffe8ba shareable: Bug fix: SetFinalizer must not be reset at dispose(false) 2018-07-22 05:40:04 +09:00
Hajime Hoshi
c15348f939 packing: Improve panic messages 2018-07-22 05:29:02 +09:00
Hajime Hoshi
09dcba40ab shareable: Rename variables 2018-07-22 04:32:36 +09:00
Hajime Hoshi
a6edb90898 shareable: Use the shared backend again in some conditions
Fixes #633
2018-07-22 04:03:35 +09:00
Hajime Hoshi
e3ab158d7d affine: Allow absence of the translate part 2018-07-21 17:21:55 +09:00
Hajime Hoshi
9047e54ae6 shareable: Remove comments 2018-07-21 03:43:12 +09:00
Hajime Hoshi
5249afc06b graphicsutil: Add QuadIndices 2018-07-21 03:40:37 +09:00
Hajime Hoshi
2e7745044d shareable: Fix Image.DrawImage to accept vertices and indices 2018-07-21 03:30:27 +09:00
Hajime Hoshi
0593b77eb8 ui: Implement CurrentTPS 2018-07-18 02:11:00 +09:00
Hajime Hoshi
eb68cdad6e ui: Bug fix: Freezing on calling SetVsyncEnabled 2018-07-17 02:37:22 +09:00
Hajime Hoshi
3a8ca5ad73 ui: Implement TPS/SetTPS
Fixes #605
Fixes #321
2018-07-17 01:58:00 +09:00
Hajime Hoshi
93f8c76310 internal/clock: Remove unused variables 2018-07-17 00:35:51 +09:00
Hajime Hoshi
408cc1e833 internal/clock: Refactoring
Update now returns 0 when tps is 0, and 1 when tps is negative.
2018-07-17 00:29:10 +09:00
Hajime Hoshi
88e6768a30 Use the term 'TPS' ticks per second 2018-07-16 04:36:47 +09:00
Hajime Hoshi
bbb777eecc internal/clock: Use constant time to detect if the game is delayed too much 2018-07-16 03:02:55 +09:00
Hajime Hoshi
18ec1d8265 internal/clock: Update takes FPS 2018-07-16 01:03:23 +09:00
Hajime Hoshi
09c93ac86d ui: Avoid using eval 2018-07-14 23:47:31 +09:00
Hajime Hoshi
e25c237a01 Add IsVsyncEnabled / SetVsyncEnabled
This enables the game to work more efficiently (but consume much
more CPU).

Fixes #405.
2018-07-14 21:43:55 +09:00
Hajime Hoshi
6c8b7f8e9c graphics: Refactoring: Reduce error propagations 2018-07-12 03:08:50 +09:00
Hajime Hoshi
a9a21132ae graphics: Refactoring: Add pixelCommand 2018-07-12 02:40:06 +09:00
Hajime Hoshi
8f12dfc496 Use js.TypedArray
This is still WIP. There is a rendering issue on Wasm.
2018-07-06 02:48:51 +09:00
Hajime Hoshi
e4f157d9cd opengl: Remove unused code 2018-06-30 12:34:40 +09:00
Hajime Hoshi
2c0f3d4302 opengl: Bug fix: wrong argument to js.Value.Call 2018-06-30 12:32:15 +09:00
Hajime Hoshi
6e51d31524
Use new GopherWasm API (#634)
I plan to merge this right after
https://github.com/gopherjs/gopherwasm/pull/3 is merged.
2018-06-30 00:02:15 +09:00
Hajime Hoshi
abdf52bc74 shareable: Bug fix: Call SetFinalizer whenever a new image is created
Fixes #637
2018-06-28 22:23:07 +09:00
Hajime Hoshi
f765966742 web: Remove unused variables 2018-06-28 00:17:05 +09:00
Hajime Hoshi
f19e349d38 web: Remove IsNodeJS
gjbt now creates a pseudo-Node environment by creating
window.process object, and this conflicted with an assumption that
Ebiten doesn't nothing on Node environment. See
https://github.com/myitcv/gjbt/pull/13 for the detail.

This change allows Ebiten work on pseudo-Node environment. Even
after this change, Ebiten doesn't work on real Node environment
due to lack of DOM.
2018-06-28 00:12:24 +09:00
Hajime Hoshi
dec921809b shareable: Refactoring 2018-06-26 01:59:12 +09:00
Hajime Hoshi
a9359e4ef8 Use GopherJS/GopherWasm 2018-06-24 16:10:24 +09:00
Hajime Hoshi
8c9a11ddf4 opengl: Rely on gopherwasm for typed-array creation 2018-06-24 02:02:39 +09:00
Hajime Hoshi
ff86f8bd93 opengl: Refactoring 2018-06-23 04:43:56 +09:00
Hajime Hoshi
33e4f82d7c graphicsutil: Optimization to avoid boundary checks 2018-06-23 03:18:54 +09:00
Hajime Hoshi
6c1c60d40d opengl: Make Program struct to avoid Get() 2018-06-22 01:45:25 +09:00
Hajime Hoshi
55d832fc63 shareable: Don't extend textures on macOS
Fixes #593
2018-06-20 11:57:39 +09:00
Hajime Hoshi
d83799acf8 opengl: Bug fix: mobile build failure 2018-06-20 11:16:21 +09:00
Hajime Hoshi
8d644479cc opengl: Initialize consts first to avoid 'Get' calls 2018-06-19 04:02:56 +09:00
Hajime Hoshi
62bd35e412 Avoid 'Get' call if possible
(*js.Value).Get has some overhead especially on Wasm.
2018-06-19 03:43:24 +09:00
Hajime Hoshi
702a429afb opengl: Faster conversion from []float32 to Float32Array 2018-06-19 03:31:53 +09:00
Hajime Hoshi
840c4d24df graphicsutil: Accept matrix parameters directly for performance 2018-06-19 00:19:32 +09:00
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
Hajime Hoshi
275fc66f06 graphics: Bug fix: textuer should be stored at OpenGL layer 2016-07-09 19:36:34 +09:00
Hajime Hoshi
193c03ea58 ui: Bug fix: Don't use integer scale (JavaScript) 2016-07-09 18:27:29 +09:00
Hajime Hoshi
76f694b948 loop: Bug fix: IsRunning might crash when the game hasn't started yet 2016-07-09 01:44:53 +09:00
Hajime Hoshi
79bdfc0718 opengl: Misspelling 2016-07-07 02:08:28 +09:00
Hajime Hoshi
302f5a5437 opengl: Remove BindScreenFramebuffer 2016-07-05 03:07:33 +09:00
Hajime Hoshi
7e296b1aae graphics: Bug Fix: The screen image should be recreated 2016-07-05 02:57:41 +09:00
Hajime Hoshi
7903fe2108 graphics: Remove texture's width/height 2016-07-05 00:31:02 +09:00
Hajime Hoshi
93f7fdd349 graphics: Remove framebuffer's width/height 2016-07-05 00:29:46 +09:00
Hajime Hoshi
085336d50f graphics: Add newImageImpl 2016-07-05 00:24:06 +09:00
Hajime Hoshi
910e1b760c ui: Introduce glfwScale 2016-07-04 11:37:34 +09:00
Hajime Hoshi
55bfe19bf8 opengl: Add context.DoWork (mobile) 2016-07-04 01:25:35 +09:00
Hajime Hoshi
61ba8dad17 opegnl: Remove initialization (use Reset instead) (mobile) 2016-07-04 01:04:35 +09:00
Hajime Hoshi
6cfb92c4c4 opengl: Remove init (JavaScript) 2016-07-04 00:55:04 +09:00
Hajime Hoshi
0d91883fb9 opengl: Remove init (desktops) 2016-07-04 00:51:58 +09:00
Hajime Hoshi
c2d21bc39f opengl: Misspelling 2016-07-04 00:31:51 +09:00
Hajime Hoshi
163ee01bd5 graphics: Rename Initialize/Resume -> Reset 2016-07-04 00:30:14 +09:00
Hajime Hoshi
d0a779e272 graphics: Delete programs and buffers when resuming 2016-07-04 00:23:45 +09:00
Hajime Hoshi
d70bf66a59 graphics: Reduce imageM usages 2016-07-03 23:23:57 +09:00
Hajime Hoshi
f7a84fe969 graphics: Move all context usages to internal/graphics 2016-07-03 22:35:27 +09:00
Hajime Hoshi
6e76c3ed6b graphics: Move context.resume() to internal/graphics 2016-07-03 21:42:01 +09:00
Hajime Hoshi
146c1e5846 graphics: Refactoring: Remove graphicsContext.Draw and flush 2016-07-03 18:56:44 +09:00
Hajime Hoshi
86144a1cd6 opengl: Move members to variables 2016-07-03 18:23:19 +09:00
Hajime Hoshi
fbc1a4238c graphics: Reduce calls of ui.GLContext() 2016-07-03 17:27:33 +09:00
Hajime Hoshi
93f052de8c graphics: Refactoring 2016-07-03 16:18:29 +09:00
Hajime Hoshi
0e2a1a1636 mobile: Change the unit from px to dp on Android (#241) 2016-07-03 05:37:56 +09:00
Hajime Hoshi
cc39cdc8f5 opengl: Bug fix: glGetShaderPrecisionFormat returns wrong values on emulators (#239) 2016-07-01 02:40:53 +09:00
Hajime Hoshi
47a0b3ccfa ui: Need LockOSThread for mobile 2016-07-01 00:44:15 +09:00
Hajime Hoshi
3ebc5cc15a ui: Stop the game when the window is deactivated (#230) 2016-06-30 01:07:54 +09:00
Hajime Hoshi
ff30f01c1b graphics: Remove Finalize 2016-06-30 00:21:47 +09:00
Hajime Hoshi
328ef85606 opengl: Prepare Context Losing for JavaScript (#217) 2016-06-29 23:18:02 +09:00
Hajime Hoshi
9453f9e7b5 graphics: Fix a comment 2016-06-28 03:05:47 +09:00
Hajime Hoshi
3004d4d7af opengl: Fix a misspell 2016-06-28 02:53:35 +09:00
Hajime Hoshi
af87d3fcf4 graphics: Move a comment 2016-06-27 13:00:32 +09:00
Hajime Hoshi
e822aae4a2 graphics: Add a comment 2016-06-27 02:51:46 +09:00
Hajime Hoshi
f537378f2a opengl: Bug fix: div 0 in shader 2016-06-26 15:57:45 +09:00
Hajime Hoshi
bb511b2c13 ui: Scale is now float64 (#236) 2016-06-25 01:26:59 +09:00
Hajime Hoshi
24bb5b5ca8 graphics: Stop comparing matrices in GLSL, which doesn't work on iPhone5s 2016-06-23 00:25:31 +09:00
Hajime Hoshi
bae27e19d7 doc: Fix README 2016-06-22 12:37:26 +09:00
Hajime Hoshi
56c4e71859 opengl: Remove unneeded glViewport calls 2016-06-22 02:13:23 +09:00
Hajime Hoshi
989ae1ebc5 ui: Fix deviceScale for mobiles 2016-06-19 05:14:02 +09:00
Hajime Hoshi
b0a7e13502 ui: Remove ScreenSizeEvent.Scale 2016-06-19 05:10:27 +09:00
Hajime Hoshi
6f50ef3604 ui: Get correct device scale for iOS 2016-06-19 05:10:27 +09:00
Hajime Hoshi
858b391592 ui: Bug fix: unused variable 2016-06-19 05:05:56 +09:00
Hajime Hoshi
ea377b8e20 ui: More accurate device scale factor 2016-06-19 05:04:38 +09:00
Hajime Hoshi
7528977842 opengl: Bug fix: bindFramebufferImpl should return error 2016-06-19 00:40:44 +09:00
Hajime Hoshi
bc2703c345 opengl: Call glViewport each time when different framebuffer is set 2016-06-18 22:47:34 +09:00
Hajime Hoshi
83ab4352f8 opengl: Consider framebuffer size on iOS 2016-06-18 19:55:04 +09:00
Hajime Hoshi
98fccb563e graphics: Bug fix: Need to reset viewport size after resizing (#232) 2016-06-18 06:47:35 +09:00
Hajime Hoshi
5eb77d2fb5 Remove 'default framebuffer' and add 'screen framebuffer' for iOS 2016-06-18 04:56:13 +09:00
Hajime Hoshi
0b8fe25350 opengl: Implement GlslHighpSupported for iOS 2016-06-17 04:13:46 +09:00
Hajime Hoshi
dfe4db67be Fix for iOS 2016-06-17 02:08:25 +09:00
Hajime Hoshi
10ebe3274c Fix build tags 2016-06-15 03:35:35 +09:00
Hajime Hoshi
13f594baed Fix build tags for iOS (WIP) 2016-06-15 00:19:02 +09:00
Hajime Hoshi
ceea24ab95 loop: Refactoring 2016-06-14 01:33:35 +09:00
Hajime Hoshi
218df19ead loop: Refactoring 2016-06-14 00:50:18 +09:00
Hajime Hoshi
6640f60c88 graphics: Bug fix: screen flicks on Android (#229) 2016-06-14 00:30:27 +09:00
Hajime Hoshi
a1fbf2cd2d graphics: Remove 'Resume' 2016-06-12 23:54:36 +09:00
Hajime Hoshi
5fbbb6dc6a opengl: Check texture/framebuffer is valid before deleting it 2016-06-12 23:19:01 +09:00
Hajime Hoshi
8d258b3c38 graphics: Replace textures/framebuffers with images in commands 2016-06-12 22:44:23 +09:00
Hajime Hoshi
870ce85615 opengl: Remove Pause 2016-06-12 18:18:43 +09:00
Hajime Hoshi
f056204a7c graphics: Add image.go 2016-06-12 01:45:40 +09:00
Hajime Hoshi
68c19d7cae graphics: Hide Texture/Framebuffer 2016-06-12 01:41:50 +09:00
Hajime Hoshi
eca175e0f4 graphics: Add Image 2016-06-12 01:34:21 +09:00
Hajime Hoshi
32c2cb3ead graphics: Add commands to create textures/framebuffers 2016-06-12 00:23:26 +09:00
Hajime Hoshi
2a58c095b8 graphics: Add disposeCommand 2016-06-11 22:52:07 +09:00
Hajime Hoshi
b59206b777 graphics: Move command flushing to ebiten package 2016-06-11 21:50:13 +09:00
Hajime Hoshi
dfd4bc89ed graphics: Revert FlushCommand execution 2016-06-11 20:21:14 +09:00
Hajime Hoshi
f322aaec02 mobile: Add a comment 2016-06-11 05:49:53 +09:00
Hajime Hoshi
912d498cdf graphics: Remove unused arguments 2016-06-11 05:48:09 +09:00
Hajime Hoshi
f71dcd3466 Remove 'Pause' 2016-06-11 00:57:10 +09:00
Hajime Hoshi
eb8e8b6034 ui: Remove FinishRendering 2016-06-10 01:49:21 +09:00
Hajime Hoshi
8121b2102f mobile: Implement Pause and Resume to work correctly 2016-06-10 01:21:46 +09:00
Hajime Hoshi
f03a99e89a opengl: Add Resume() and Pause() 2016-06-10 01:19:10 +09:00
Hajime Hoshi
cabea24815 graphics: Move glFlush to a more appropriate place 2016-06-07 03:02:15 +09:00
Hajime Hoshi
83a96dc532 android: Bug fix: Black flicking (#226) 2016-06-07 02:24:36 +09:00
Hajime Hoshi
9757319848 graphics: Use a const viewport 2016-06-06 01:49:34 +09:00
Hajime Hoshi
26ef56232b opengl: Bug fix: Reset viewport when framebuffer delation 2016-06-05 08:16:16 +09:00
Hajime Hoshi
12904d168d opengl: Bug fix: glViewport must be called after framebuffer deletion 2016-06-05 07:47:11 +09:00
Hajime Hoshi
37473d2f9f graphics: Move a comment 2016-06-05 03:26:00 +09:00
Hajime Hoshi
aa83167e56 graphics: Check the number of vertices 2016-06-05 03:17:53 +09:00
Hajime Hoshi
e5965d7771 opengl: Reduce calls of glSetViewport 2016-06-05 03:16:54 +09:00
Hajime Hoshi
4c2650c721 graphics: Reduce calls of glBindTexture 2016-06-05 01:55:28 +09:00
Hajime Hoshi
bddd3c9467 grahics: Reduce gl function calls 2016-06-04 22:30:52 +09:00
Hajime Hoshi
388dd835a6 opengl: Move ZeroFramebuffer to context.go 2016-06-04 04:04:18 +09:00
Hajime Hoshi
ca3322edbc opengl: Refactoring: Rename functions 2016-06-04 03:50:28 +09:00
Hajime Hoshi
da1354ec51 opengl: Bug fix: Reset the bound framebuffer after deletion (#227) 2016-06-04 03:41:14 +09:00
Hajime Hoshi
56844100c2 temporal hack to pass tests (#227) 2016-06-03 13:16:43 +09:00
Hajime Hoshi
3e912ce7f8 graphics: Optimize commands: call glBufferSubData as less times as possible 2016-06-03 12:52:20 +09:00
Hajime Hoshi
208b27d5de graphics: Use command buffers 2016-06-03 03:24:27 +09:00
Hajime Hoshi
efd019c00e graphics: Remove Texture.Size 2016-06-03 03:07:55 +09:00
Hajime Hoshi
0374bf0538 graphics: Remove Framebuffer.Size 2016-06-03 03:02:59 +09:00
Hajime Hoshi
17f4bcbd95 graphics: Introduce Commands (WIP) 2016-06-03 03:01:27 +09:00
Hajime Hoshi
16ef82fa23 opengl: Reduce CheckFramebufferState call for speed 2016-06-01 03:53:55 +09:00
Hajime Hoshi
91491e58f4 opengl: Reduce glBindFramebuffer calls 2016-06-01 02:33:31 +09:00
Hajime Hoshi
3dfbb4a2ea opengl: Refactoring: Remove unneeded code 2016-06-01 02:14:11 +09:00
Hajime Hoshi
d756d35b59 opengl: Remove unneeded access to a member 2016-06-01 02:06:13 +09:00
Hajime Hoshi
5638bb93f5 opengl: Remove glFlush to improve performance 2016-06-01 01:48:46 +09:00
Hajime Hoshi
1ca76b64f7 graphics: Add a comment 2016-05-31 00:30:04 +09:00
Hajime Hoshi
6663a447cc graphics: Speed optimization 2016-05-29 23:04:20 +09:00
Hajime Hoshi
f6fd8f9c6d graphics: Reduce calling glUseProgram 2016-05-29 22:40:51 +09:00
Hajime Hoshi
583fc07f3a input: Fix compile error 2016-05-29 22:15:28 +09:00
Hajime Hoshi
05104744d3 input: Bug fix: Touches requries lock 2016-05-29 22:13:42 +09:00
Hajime Hoshi
683c692a5b loop: Much better slow-running detection (#223) 2016-05-29 22:02:06 +09:00
Hajime Hoshi
deb2ab1cbf graphics: Refactoring: Reduce array buffer size 2016-05-29 18:34:52 +09:00
Hajime Hoshi
857bc1ed51 loop: Prevent re-entering to Run 2016-05-29 18:34:52 +09:00
Hajime Hoshi
e4ca01db31 mobile: Multitouches (#101) 2016-05-28 23:15:28 +09:00
Hajime Hoshi
6a74ea5b30 Introduce internal/jni 2016-05-28 19:01:26 +09:00
Hajime Hoshi
e84f798c7c input: Bug fix: Coordinate calculation of touch events 2016-05-27 01:47:24 +09:00
Hajime Hoshi
bdaff72af9 input: Implement Touches function (WIP) (#101) 2016-05-27 01:31:30 +09:00
Hajime Hoshi
3195ae32d8 mobile: Implement Pause/Resume 2016-05-24 00:00:54 +09:00
Hajime Hoshi
f251ae8b49 mobile: Handle touch events 2016-05-23 02:06:01 +09:00
Hajime Hoshi
6d06b01cae gomobile bind works 2016-05-22 04:25:15 +09:00
Hajime Hoshi
c36dd3df52 ui: Change Input to be an interface 2016-05-20 00:15:05 +09:00
Hajime Hoshi
d09bb63f71 ui: Change UserInterface to be an interface 2016-05-20 00:07:06 +09:00
Hajime Hoshi
76ea075896 Add example/mobile (not-compilable yet) 2016-05-19 03:17:50 +09:00
Hajime Hoshi
b1afe6aeb2 loop: Refactoring: Remove FPS 2016-05-18 23:27:28 +09:00
Hajime Hoshi
335781759c ui: Introduce ScreenSizeEvent to simplify the run loop 2016-05-18 11:56:43 +09:00
Hajime Hoshi
faff188574 ui: Move Now() to internal/loop and hide it 2016-05-18 11:24:17 +09:00
Hajime Hoshi
cd5436712b ui: Hide Init() func 2016-05-18 11:12:23 +09:00
Hajime Hoshi
a35064db7d ui: Add ui.GLContext() 2016-05-18 11:10:03 +09:00
Hajime Hoshi
063ed564fd Move the run loop to internal/loop 2016-05-18 10:59:37 +09:00
Hajime Hoshi
7f19d4a1ac ui: Remove CurrentUI() 2016-05-18 10:51:11 +09:00
Hajime Hoshi
4d04413bf9 ui: Move the run loop to internal/ui 2016-05-18 10:46:23 +09:00
Hajime Hoshi
5c68ee4034 ui: Use events in the game loop 2016-05-18 02:03:41 +09:00
Hajime Hoshi
49c156d2b5 ui: Rename DoEvents -> Update 2016-05-18 01:22:01 +09:00
Hajime Hoshi
fbd07b1865 graphics: Simplify the size of pixels 2016-05-16 12:27:28 +09:00
Hajime Hoshi
46cbd0c4a0 graphics: Add a func to delete programs and buffers 2016-05-16 11:54:34 +09:00
Hajime Hoshi
ba6d10dec0 graphics: Remove indexBufferLines 2016-05-16 11:34:41 +09:00
Hajime Hoshi
d6bfa72c5c graphics: Remove openGLState.initialize 2016-05-16 11:32:26 +09:00
Hajime Hoshi
9f2b53d24c graphics: Add InitializeIfNeeded function (preparing for Android) 2016-05-15 04:05:57 +09:00
Hajime Hoshi
ebe6296222 opengl: Remove (*Program).Equals 2016-05-15 02:37:25 +09:00
Hajime Hoshi
a3272d0b49 graphics: Refactoring: Reduce global variables 2016-05-15 02:29:54 +09:00
Hajime Hoshi
295e3c0a0a ui: Bug fixed: there was an error shadowed and not used 2016-05-14 03:25:44 +09:00
Hajime Hoshi
a04ce352f8 opengl: Bug fixed: there were some errors shadowed and not used 2016-05-14 03:24:01 +09:00
Hajime Hoshi
0083fe5df1 Changed the copyright year to 2013 (#216) 2016-05-14 00:20:27 +09:00
Hajime Hoshi
9d569e3e49 graphics: Bug fix: now ebiten.Image can be passed to NewImageFromImage (#213) 2016-05-12 11:23:52 +09:00
Hajime Hoshi
9c2857c15d graphics: Compile error of shaders should panic 2016-05-11 00:49:31 +09:00
Hajime Hoshi
c07f16d9a4 opengl: Prepare for Android 2016-05-11 00:47:54 +09:00
Hajime Hoshi
2fee1fae22 graphics: Dispose now returns errors 2016-05-07 23:34:10 +09:00
Hajime Hoshi
57a9ecd821 ui: Refactoring 2016-05-07 22:27:10 +09:00
Hajime Hoshi
9560824dfc opengl: Add context.go 2016-05-07 19:42:07 +09:00
Hajime Hoshi
df23b57b16 openg: Refactoring 2016-05-07 19:26:35 +09:00
Hajime Hoshi
de541bdd7d opengl: Update context_mobile.go 2016-05-07 19:12:19 +09:00
Hajime Hoshi
e99736d5a5 opengl: Refactoring 2016-05-07 19:07:56 +09:00
Hajime Hoshi
209b4e6864 ui: Add Main for the OS main thread 2016-05-06 21:30:23 +09:00
Hajime Hoshi
5a379cb7cb Reduce panics (#196) 2016-04-11 01:48:40 +09:00
Hajime Hoshi
3ec0020f02 graphics: Bug fix (#201): Remove gl.Flush for performance (this ws added by #161 but no longer needed because of BindZeroFrameBuffer) 2016-04-08 21:45:53 +09:00
Hajime Hoshi
07da7a2348 graphics: Refactoring 2016-04-08 04:39:13 +09:00
Hajime Hoshi
b2c5cb164a graphics: Calculate vertices ahead of locking 2016-04-08 03:18:52 +09:00
Hajime Hoshi
492f471ec3 graphics: Early return when num of vertices is 0 2016-04-08 02:49:53 +09:00
Hajime Hoshi
75ef9a6d47 ui: Add read-write lock 2016-03-26 17:24:40 +09:00
Hajime Hoshi
4a60343fe6 ui: Don't use currentUI directly 2016-03-26 15:17:01 +09:00
Hajime Hoshi
95485441f4 ui: Remove dataset attributes 2016-03-25 01:15:47 +09:00
Hajime Hoshi
fb3bf4e3b4 ui: Add CurrentUI() 2016-03-25 00:38:30 +09:00
Hajime Hoshi
6ac6b8e7c0 input: Make functions goroutine-safe (#192) 2016-03-24 23:51:20 +09:00
Hajime Hoshi
6efead974f ui: Rename ActualScale -> ActualScreenScale 2016-03-23 01:14:28 +09:00
Hajime Hoshi
62dffe5405 Add ebiten.ScreenScale() (#191) 2016-03-23 00:44:16 +09:00
Hajime Hoshi
2157061479 ui: Use actualScale to calc minimum window size 2016-03-22 12:01:53 +09:00
Hajime Hoshi
993a55abde ui: Set window width limitation for Windows (#165) 2016-03-22 11:56:40 +09:00
Hajime Hoshi
b02df7b542 graphics: Bug fix #186 by clearing non-black-or-white color 2016-03-17 03:31:12 +09:00
Hajime Hoshi
8f15978c83 ui: Bug fix: Quit soon after the window is closed (#185) 2016-03-15 00:32:06 +09:00
Hajime Hoshi
b1f856a0e0 Add FPS const 2016-03-13 04:57:31 +09:00
Hajime Hoshi
c6fc5ab865 graphics: CompositionMode -> CompositeMode (#170) 2016-03-01 02:16:32 +09:00
Hajime Hoshi
1eb623cf16 Add example 'masking' (#39) 2016-03-01 02:10:45 +09:00
Hajime Hoshi
321f5e376e opengl: Cache a composition mode 2016-02-29 01:44:09 +09:00
Hajime Hoshi
8ae1e292ab graphics: Introduce CompositionMode (#151) 2016-02-29 01:37:06 +09:00
Hajime Hoshi
3588d0b485 ui: Move vsync to ui.SwapBuffers on JavaScript version 2016-02-28 03:49:57 +09:00
Hajime Hoshi
fc200ec6f2 ui: Bug fix: The default framebuffer must be bound before swapping buffers 2016-02-28 00:56:39 +09:00
Hajime Hoshi
05eaec6dd9 ui: Bug fix: scale for cursor was wrong (#166) 2016-02-27 17:04:35 +09:00
Hajime Hoshi
997539b243 opengl: Unexport Attrib/UniformLocation 2016-02-27 03:13:42 +09:00
Hajime Hoshi
ccf0acf7ca opengl: Reduce global variables 2016-02-27 03:05:12 +09:00
Hajime Hoshi
93f9d9fbb0 opengl: Introduce locationCache struct 2016-02-27 03:01:55 +09:00
Hajime Hoshi
3c4aa7ec1e opengl: Unexport some interfaces 2016-02-27 02:43:00 +09:00
Hajime Hoshi
2bda89709f opengl: Unexport ProgramID 2016-02-27 02:41:38 +09:00
Hajime Hoshi
495d7ca0d1 graphics: NextPowerOf2Int -> NextPowerOf2Int32 2016-02-27 02:35:05 +09:00
Hajime Hoshi
5fe013ddbd graphics: Remove Lines and Rects 2016-02-27 02:30:06 +09:00
Hajime Hoshi
f432c15078 opengl: GetProgramID() -> Program.ID() 2016-02-27 02:27:39 +09:00
Hajime Hoshi
7617a225f6 ui: deviceScaleFactor -> deviceScale 2016-02-27 02:17:31 +09:00
Hajime Hoshi
651d803107 ui: Change how to calc framebuffer scale 2016-02-27 01:53:02 +09:00
Hajime Hoshi
8069c980c3 ui: Refactoring: Add ui.ActualScale() 2016-02-27 01:44:01 +09:00
Hajime Hoshi
138a689382 ui: Refactoring 2016-02-27 01:35:14 +09:00
Hajime Hoshi
e2cf288ed7 ui: Bug fix: Wrong framebuffer scale 2016-02-26 03:50:00 +09:00
Hajime Hoshi
c97cae9598 ui: Remove println :-( 2016-02-26 03:45:52 +09:00
Hajime Hoshi
868eef0c2f ui: Bug fix: Consider that (frame buffer width) / (window width) can be more than 1 (#164) 2016-02-26 03:44:37 +09:00
Hajime Hoshi
fc7be5be3c ui: Bug fix: monitor's size might be 0 e.g. on Linux VM 2016-02-26 03:14:51 +09:00
Hajime Hoshi
4d53cf20da ui: Calculate DPI and set the actual scale based on DPI 2016-02-26 03:09:23 +09:00
Hajime Hoshi
3d79e086a9 opengl: Rename some functions not to be exported 2016-02-26 02:03:24 +09:00
Hajime Hoshi
ce9f957cd8 opengl: Use go-gl/gl again (#162) 2016-02-26 02:01:13 +09:00
Hajime Hoshi
20e9b91336 opengl: Bug fix: Misusage of Texture 2016-02-25 02:21:44 +09:00
Hajime Hoshi
73856a2298 opengl: IsTexture/IsFramebuffer fails on OSX 2016-02-25 02:17:28 +09:00
Hajime Hoshi
06ec244ff3 opengl: Use gl.IsTexture and gl.IsFramebuffer 2016-02-25 01:11:40 +09:00
Hajime Hoshi
6d5e09ad36 opengl: use fmt.Errorf for error messages 2016-02-24 23:30:43 +09:00
Hajime Hoshi
922f392544 ui: Bug fix: Call glFinish before glfwSwapBuffers to make sure all OpenGL tasks are executed (#161) 2016-02-24 22:57:19 +09:00
Hajime Hoshi
888c7dadfd opengl: Bug fix: Use attrib/uniform cache 2016-02-24 01:34:24 +09:00
Hajime Hoshi
2d78d14e83 opengl: Avoid using encoding/binary for speed 2016-02-24 01:32:56 +09:00
Hajime Hoshi
e8a3e04535 opengl: Error prefix 2016-02-24 00:31:28 +09:00
Hajime Hoshi
ffb8a78e37 ui: Error prefix 2016-02-23 03:27:06 +09:00
Hajime Hoshi
59adc6979a ui: Bug fix: Adjust scaling factor on Linux (#157) 2016-02-23 01:41:57 +09:00
Hajime Hoshi
9e161864f6 ui: Bug fix: Make sure current framebuffers rendered (#158) 2016-02-22 03:14:31 +09:00
Hajime Hoshi
18a798f85c ui: Refactoring 2016-02-22 01:30:33 +09:00
Hajime Hoshi
0a07d8531b ui: Bug fix: SetPos should be called after Show at least on Linux 2016-02-21 23:11:39 +09:00
Hajime Hoshi
6e98e0716d ui: SwapBuffer is now done on the rendering context thread 2016-02-21 22:20:33 +09:00
Hajime Hoshi
bb39766873 ui: Bug fix: gl* method should be called after looping starts 2016-02-21 21:53:48 +09:00
Hajime Hoshi
bae6d62067 ui: Refactoring 2016-02-21 18:01:43 +09:00
Hajime Hoshi
60a504543f ui: Add OpenGL version 2016-02-21 17:27:26 +09:00
Hajime Hoshi
6c14c31c55 ui: Remove an unneeded prefix 2016-02-21 17:12:00 +09:00
Hajime Hoshi
591d71b447 ui: Bug fix: Init should always return a opengl context 2016-02-21 04:56:27 +09:00
Hajime Hoshi
46c74ec818 ui: Bug fix: compile error (a return value is required) 2016-02-21 02:19:40 +09:00
Hajime Hoshi
a4092a1bf1 ui: Bug fix: compile error 2016-02-21 02:15:14 +09:00
Hajime Hoshi
408444842a Refactoring: ui.Init now returns gl.Context object 2016-02-20 20:08:53 +09:00
Hajime Hoshi
63f2c3cb9f graphics: Refactoring: remove ExecOnUIThread 2016-02-20 04:39:43 +09:00
Hajime Hoshi
5cfefaf1a2 graphics: Refactoring: remove ui goroutines 2016-02-20 04:08:06 +09:00
Hajime Hoshi
269d94b145 graphics: Add worker consumer 2016-02-19 11:43:16 +09:00
Hajime Hoshi
93450b1664 graphics: Compiled (but can't run yet) 2016-02-19 03:06:23 +09:00
Hajime Hoshi
5c61284c84 graphics: Refactoring: Remove an unsed argument 'signed' 2016-02-18 03:01:41 +09:00
Hajime Hoshi
d99ddab6f8 graphics: Reduce calling TextureQuad.Len() 2016-02-17 00:45:19 +09:00
Hajime Hoshi
169d57936c graphics: Speed improvement by returning single value 2016-02-17 00:21:39 +09:00
Hajime Hoshi
ef4828669c graphics: Bug fix: must skip rendering when 0 vertices are set 2016-02-16 02:45:56 +09:00
Hajime Hoshi
1e9fb05161 graphics: Move makeing vertices from drawTexture to textureQuads to avoid copying 2016-02-16 02:26:40 +09:00
Hajime Hoshi
6d2148f3ea graphics: Remove unneeded 'if' 2016-02-16 01:55:39 +09:00
Hajime Hoshi
f5b4179142 graphics: Avoid calling Len() too many times 2016-02-16 01:51:34 +09:00
Hajime Hoshi
537cfea8a4 graphics: Avoid using append 2016-02-16 01:49:27 +09:00
Hajime Hoshi
1e4f486174 audio: Move files from internal/audio to exp/audio 2016-02-11 17:22:02 +09:00
Hajime Hoshi
84d50f7714 audio: Remove Init 2016-02-11 17:16:34 +09:00
Hajime Hoshi
8e43d1047b audio: Use io.ReadSeeker instead of ReadSeekCloser 2016-02-11 17:07:28 +09:00
Hajime Hoshi
bca9b0d3f1 audio: Remove audioEnabled 2016-02-11 04:02:18 +09:00
Hajime Hoshi
5687d9d0ef go generate 2016-02-11 03:53:36 +09:00
Hajime Hoshi
10650d1c6e audio: Introduce audio.Player 2016-02-11 02:18:39 +09:00
Hajime Hoshi
d52118639d audio: Use IO as source 2016-02-11 02:09:06 +09:00
Hajime Hoshi
c6a431c9ab audio: add sampleRate arg to Queue: implementation turned to be simplified 2016-02-10 02:40:07 +09:00
Hajime Hoshi
e8895d8f35 audio: Use bigger buffer to reduce noise (#149) 2016-02-10 01:04:43 +09:00
Hajime Hoshi
14d28ea122 audio: Use AudioBuffer's duration 2016-02-10 01:04:15 +09:00
Hajime Hoshi
719e5ba6d2 audio: Remove audio.Tick 2016-02-10 00:09:23 +09:00
Hajime Hoshi
c5de32297f audio: Bug fix: isPlaying must consider two buffers in JS 2016-02-09 23:49:33 +09:00
Hajime Hoshi
70fe6d8169 audio: Remove channel argument from audio.Queue 2016-02-09 22:55:18 +09:00
Hajime Hoshi
34691dabbf audio: Reimplement audio for JS with AudioBuffer (#146) 2016-02-09 22:35:55 +09:00
Hajime Hoshi
21e2b1ed7b audio: nit 2016-02-09 03:28:31 +09:00
Hajime Hoshi
1c10d46288 audio: Add comment about #146 2016-02-09 03:27:09 +09:00
Hajime Hoshi
8c23c8ba34 audio: Refactoring 2016-02-08 12:27:09 +09:00
Hajime Hoshi
45329ab32f audio: Bug fix: always fill zero values (#147) 2016-02-08 04:27:21 +09:00
Hajime Hoshi
4b4802419b audio: Remove audio.Tick 2016-02-08 03:26:58 +09:00
Hajime Hoshi
d1f46a92df audio: Refactoring 2016-02-08 01:52:36 +09:00
Hajime Hoshi
debbc19c82 audio: Remove start func 2016-02-08 01:40:27 +09:00
Hajime Hoshi
60c4990555 audio: Change audio.SampleRate to be a const 2016-02-08 00:48:43 +09:00
Hajime Hoshi
b63911e6f7 audio: Remove audio.Play 2016-02-08 00:45:02 +09:00
Hajime Hoshi
0b62a9af74 audio: Use golang.org/x/mobile/exp/audio/al 2016-02-07 23:37:16 +09:00
Hajime Hoshi
a83286accb audio: Move files from exp/audio/inner to internal/audio 2016-02-07 16:03:41 +09:00
Hajime Hoshi
c54b5c4b06 image: Introduce programContext (#144) 2016-02-07 05:13:54 +09:00
Hajime Hoshi
38552f8d9d image: Remove drawing lines and rects (#142) 2016-02-06 17:57:20 +09:00
Hajime Hoshi
ccf7b0c159 Revert an unreasonable change at 633ee409 2016-02-06 15:54:29 +09:00
Hajime Hoshi
9178b488a1 test: Give up using headless-js (#141) 2016-02-06 15:35:21 +09:00
Hajime Hoshi
fb9f133389 graphics: Better error messages for framebuffer creation 2016-02-06 03:48:15 +09:00
Hajime Hoshi
7f43ca2eb7 .travis.yml: Skip gopherjs test 2016-01-20 03:43:13 +09:00
Hajime Hoshi
9a3c6bd8c4 js: Update callers for headless-gl API 2016-01-20 01:18:53 +09:00
Josh Deprez
bbeb103383 Check was missing from context_js
Run calls Check whether or not gopherjs is used, and it was not implemented here.
2016-01-18 21:27:55 +11:00
Hajime Hoshi
633ee4096e #132 Temporal hack to run with Go1.5 2015-07-22 23:28:15 +09:00
Hajime Hoshi
0bc321d3ef Improve GL error messages 2015-06-22 23:14:40 +09:00
Hajime Hoshi
e3608d08eb Use GL 2.1 (for Windows) 2015-06-21 01:33:28 +09:00
Hajime Hoshi
4b9c740ee8 Update the version of GLFW to 3.1 2015-06-20 18:52:17 +09:00
Hajime Hoshi
2b8e98cfbc js: Revert 60 FPS from 30 FPS 2015-06-14 03:50:43 +09:00
Hajime Hoshi
7490bfa4f4 internal: Bug fix: license.txt was changed to LICENSE 2015-05-21 00:03:04 +09:00
Hajime Hoshi
82ea3fa020 #125: Fix import paths (Use go-gl/gl and go-gl/glfw instead of go-gl/glow and go-gl/glfw3 2015-04-13 00:49:30 +09:00
Hajime Hoshi
bca600a093 Update for the latest GopherJS (use *js.Object instead of js.Object) 2015-03-01 01:26:16 +09:00
Hajime Hoshi
246ac055bf ui: Frame skip on JS 2015-02-21 22:19:26 +09:00
Hajime Hoshi
a67a8a03ec graphics: Cache framebuffers 2015-02-20 02:02:23 +09:00
Hajime Hoshi
936942a28d Add comments 2015-02-20 02:01:56 +09:00
Hajime Hoshi
eb0431f117 opengl: Remove Flush() 2015-02-18 23:35:39 +09:00
Hajime Hoshi
2b7617da7a graphics: Cache values for uniformMatrix4fv 2015-02-18 11:30:24 +09:00
Hajime Hoshi
9ec7b13f27 example/piano: Speed up 2015-02-16 10:48:57 +09:00
Hajime Hoshi
8c2301e542 Fix misspelling 2015-02-16 02:49:17 +09:00
Hajime Hoshi
ba3feaf52f ui: More precise clock 2015-02-15 19:30:29 +09:00
Hajime Hoshi
c5fc7ea0ab ui: More precise space calc 2015-02-14 23:23:11 +09:00
Hajime Hoshi
beecf31937 Resolve some TODOs 2015-02-10 10:44:58 +09:00
Hajime Hoshi
cd4188b0a3 Add SetScreenScale (#115) 2015-02-10 00:10:50 +09:00
Hajime Hoshi
249add3979 Add SetScreenSize 2015-02-09 11:02:04 +09:00
Hajime Hoshi
2544d74ba0 Use go-gl/glow instead of go-gl/gl (#112) 2015-01-29 00:58:56 +09:00
Hajime Hoshi
ea78b31414 Move internal/audio -> exp/audio/internal 2015-01-27 22:55:45 +09:00
Hajime Hoshi
3964944deb Move ui_*.go back to internal/ui again 2015-01-27 22:37:00 +09:00
Hajime Hoshi
23b3f1afce Move some files of internal/ui to the root 2015-01-27 01:10:17 +09:00
Hajime Hoshi
ae450433db Move some files of internal to internal/graphics 2015-01-27 00:08:24 +09:00
Hajime Hoshi
e23b0758e5 Merge internal/graphics/internal/shaders into internal/graphics 2015-01-26 23:32:50 +09:00
Hajime Hoshi
346bc53d53 Move internal/opengl -> internal/graphics/internal/opengl 2015-01-26 23:27:28 +09:00
Hajime Hoshi
2aa6ebb471 Move internal/assets -> ebitenutil/internal/assets 2015-01-26 22:09:47 +09:00
Hajime Hoshi
17b7969764 audio: Reduce the buffer size (OpenAL) 2015-01-26 10:14:03 +09:00
Hajime Hoshi
6a0c5dfb03 audio: Change the number of buffers 2015-01-26 03:53:40 +09:00
Hajime Hoshi
205c6f1462 audio: Bug fix: Reduce delay for desktops 2015-01-26 01:58:32 +09:00
Hajime Hoshi
7692cf6a1b audio: Refactoring 2015-01-26 01:39:43 +09:00
Hajime Hoshi
9e7dfa2f16 audio: Bug fix: Multi source (or nodes) should be used to play multi sounds 2015-01-26 01:20:56 +09:00
Hajime Hoshi
701de9f82b audio: Bug fix: half volume of any sound on GopherJS 2015-01-25 23:38:26 +09:00
Hajime Hoshi
e1336c2eba audio: Change API: accept []int16 instead of []float32 2015-01-25 19:17:53 +09:00
Hajime Hoshi
c2313c10c1 audio: Grace returning when audio is not available 2015-01-25 16:04:49 +09:00
Hajime Hoshi
fe91d341ac audio: Implement for desktops with OpenAL (#104) 2015-01-25 01:51:51 +09:00
Hajime Hoshi
a8e3b2b619 audio: Start implementing with OpenAL (not finished yet) 2015-01-24 22:20:09 +09:00
Hajime Hoshi
2d5ac9e987 audio: Add comments, add IsPlaying 2015-01-24 21:46:35 +09:00
Hajime Hoshi
2c7430171d audio: Add comments 2015-01-24 15:48:48 +09:00
Hajime Hoshi
edda664ca8 audio: Refactoring 2015-01-24 14:53:42 +09:00
Hajime Hoshi
b57c675996 Remove internal.RGBA 2015-01-24 14:53:40 +09:00
Hajime Hoshi
4d702f964f audio: CurrentBytes returns the time on inserting new sound chunk 2015-01-24 14:53:33 +09:00
Hajime Hoshi
88ac129dd6 Refactoring: only one nextInsertion is needed 2015-01-23 21:51:21 +09:00
Hajime Hoshi
8d250c6b25 audio: Add channel.nextInsertion 2015-01-23 10:58:18 +09:00
Hajime Hoshi
4b74411922 audio: Introduce channels 2015-01-23 03:02:23 +09:00
Hajime Hoshi
ba3a612ce4 Bug fix: Add 'Add' method for non-js environment 2015-01-21 10:37:15 +09:00
Hajime Hoshi
4c37efd673 Merge branch 'master' into audio 2015-01-21 10:12:14 +09:00
Hajime Hoshi
1fa39e3b8a Fix a variable name 2015-01-21 10:12:05 +09:00
Hajime Hoshi
5b41374ac7 Support touch events (esp. for mobile browsers) (#76) 2015-01-21 02:58:29 +09:00
Hajime Hoshi
d994f34d53 Add image.ReplacePixels; Add example/noise (#89) 2015-01-20 23:58:58 +09:00
Hajime Hoshi
ff020e8b1c example/keyboard: Add a keyboard image 2015-01-18 21:33:59 +09:00
Hajime Hoshi
0bd0a4dbc2 Rename image.FillRect -> DrawFilledRect (FillRect is confusing with Fill) 2015-01-18 04:19:38 +09:00
Hajime Hoshi
26358f3e63 Revert lines' vetices (float64 -> int) 2015-01-17 23:33:57 +09:00
Hajime Hoshi
f0d40b4e1f Revert rectangles' vetices (float64 -> int) 2015-01-17 23:31:09 +09:00
Hajime Hoshi
1659e9abab Bug fix: Line's vertices should be moved by 0.5 2015-01-17 23:04:19 +09:00
Hajime Hoshi
683ffafe8d Bug fix: image.Pixels didn't work on WebGL 2015-01-17 19:06:58 +09:00
Hajime Hoshi
efe7b62745 Refactoring (use math.MaxUint16) 2015-01-17 14:44:47 +09:00
Hajime Hoshi
58e2f27513 Use gl.* types instead of int 2015-01-17 14:21:38 +09:00
Hajime Hoshi
8c15b57d58 Add image.DrawLine / DrawLines 2015-01-17 14:17:42 +09:00
Hajime Hoshi
22e6996f74 Remove rectVertexQuads 2015-01-17 03:51:21 +09:00
Hajime Hoshi
db9f5e0984 example:shapes Bug fix: Structs containing js.Object can't be compared again 2015-01-17 01:11:30 +09:00
Hajime Hoshi
fe69c04f8f Bug fix: Structs containing js.Object can't be compared (for now) 2015-01-17 00:56:38 +09:00
Hajime Hoshi
8564ba8541 Use (un)signed short vertices (#90) 2015-01-16 10:37:26 +09:00
Hajime Hoshi
155be5a88d Add Rect.Color 2015-01-16 01:57:10 +09:00
Hajime Hoshi
037f35b0db Pass color values for each vertex on drawing rects 2015-01-16 01:57:07 +09:00
Hajime Hoshi
b2924d193b Use vertices for DrawTexture 2015-01-16 01:01:52 +09:00
Hajime Hoshi
2ec8c39cdd Remove the first argument of FillFramebuffer 2015-01-15 23:42:08 +09:00
Hajime Hoshi
3e376cae18 Update for the latest GopherJS (js.Object can't be casted to other types) 2015-01-15 23:26:05 +09:00
Hajime Hoshi
59ed15b2f7 Bug fix: Use prevent default properly 2015-01-15 22:28:05 +09:00
Hajime Hoshi
25cf2dab22 sprites: Speed up: use float64 as often as possible 2015-01-14 23:58:34 +09:00
Hajime Hoshi
3200ae58a4 Fix a comment 2015-01-14 23:38:25 +09:00
Hajime Hoshi
cb26342b3d Bug fix (#85): The limit of the size of vertices was wrong 2015-01-14 23:29:14 +09:00
Hajime Hoshi
f27ba0ea03 Enable gopherjs test 2015-01-14 23:16:06 +09:00
Hajime Hoshi
6aef42d6fa Bug fix: limit for the number of vertices 2015-01-14 10:31:09 +09:00
Hajime Hoshi
665ef46064 Add example/sprites (#83) 2015-01-13 23:03:37 +09:00
Hajime Hoshi
0328b049d0 Add image.DrawRects (experimental) 2015-01-13 10:36:19 +09:00
Hajime Hoshi
f0519b8604 Use location cache 2015-01-12 23:16:34 +09:00
Hajime Hoshi
9418d4c577 Change useProgramTexture not to return program 2015-01-12 21:04:52 +09:00
Hajime Hoshi
243208b849 Rename programColorMatrix -> programFragmentShader 2015-01-12 18:34:02 +09:00
Hajime Hoshi
02dbeef1b9 Add docs for gamepad API (I checked it worked on Chrome) 2015-01-12 14:59:12 +09:00
Hajime Hoshi
8987f7a645 Implement Gamepad API for JavaScript (working on Firefox so far) 2015-01-12 14:36:13 +09:00
Hajime Hoshi
a500d3a3f8 Improve example/gamepad 2015-01-12 13:33:21 +09:00
Hajime Hoshi
a6b7eab71b Add Gamepad API 2015-01-12 02:29:56 +09:00
Hajime Hoshi
a220251716 Play music at example/audio 2015-01-11 19:52:11 +09:00
Hajime Hoshi
355da1bcbc Add Experimental Audio API 2015-01-11 18:03:51 +09:00
Hajime Hoshi
3b02993a5d Modify comments 2015-01-10 19:59:47 +09:00
Hajime Hoshi
15c7341816 Replace .on* = func -> addEventListener = func 2015-01-10 15:51:07 +09:00
Hajime Hoshi
e656b607f6 Add TODO comment 2015-01-10 01:02:26 +09:00
Hajime Hoshi
6dbe57ec11 Change test import paths 2015-01-10 00:55:53 +09:00
Hajime Hoshi
e7599a6d85 docs: Move example *.js and *.js.map files to another repository 2015-01-10 00:45:21 +09:00
Hajime Hoshi
d96de18074 Remove TODOs 2015-01-09 12:13:29 +09:00
Hajime Hoshi
1dd1403aac Bug fix: opengl.NewBuffer may accept integer value (glfw) 2015-01-09 02:28:16 +09:00
Hajime Hoshi
636ae84ad5 Resolve TODOs 2015-01-09 02:02:56 +09:00
Hajime Hoshi
eb325c9684 Update docs 2015-01-08 23:45:30 +09:00
Hajime Hoshi
5dade52621 Bug fix: Use document.hidden (focus/blue event is not reliable when using <iframe>) 2015-01-08 11:56:21 +09:00
Hajime Hoshi
d933c54e20 Bug fix: Check window.top's focus in case that game is in <iframe> 2015-01-08 02:24:05 +09:00
Hajime Hoshi
a1214ff735 Stop the game when the window is not active (#69) 2015-01-08 01:35:09 +09:00
Hajime Hoshi
6efb806cc2 Stabilize FPS for JS 2015-01-08 00:44:41 +09:00
Hajime Hoshi
9915e6764a Bug fix: blurred canvas in Retina display (#68) 2015-01-08 00:01:18 +09:00
Hajime Hoshi
27cd0610d1 Add 'auto-generated' notices (#66) 2015-01-07 23:21:52 +09:00
Hajime Hoshi
4eaa16b8d1 Rename mod key names 2015-01-07 23:18:40 +09:00
Hajime Hoshi
6bdc875596 Bug fix: Ignore unknown keys 2015-01-07 23:02:58 +09:00
Hajime Hoshi
f78c79a5dd Bug fix: onkeydown function should return false to prevent browser shortcuts 2015-01-07 23:01:23 +09:00
Hajime Hoshi
a710db4c9e Bug fix: invalidate function keys, backspace on browsers 2015-01-07 11:22:48 +09:00
Hajime Hoshi
9f40da41fc Add backspace (not tested) 2015-01-07 11:22:25 +09:00
Hajime Hoshi
62d1395670 Arrange key's order 2015-01-07 11:00:15 +09:00
Hajime Hoshi
74e3c40740 Yield focus to canvas on clicking body 2015-01-07 04:39:33 +09:00
Hajime Hoshi
795e7c8eb2 Focus canvas on start (#64) 2015-01-07 04:34:47 +09:00
Hajime Hoshi
03cf0a7069 Bug fix: glfw.MouseButton should be converted to MouseButton 2015-01-07 04:04:04 +09:00
Hajime Hoshi
7677d885a2 Remove MouseButtonMax 2015-01-07 03:08:33 +09:00
Hajime Hoshi
bc26690b14 Add genkey.go 2015-01-07 03:05:59 +09:00
Hajime Hoshi
9d12a23172 Bug fix: preventDefault may prevent other events 2015-01-07 02:24:47 +09:00
Hajime Hoshi
a9f1b4f0e9 Add keys_glfw.go and keys_js.go 2015-01-07 00:05:46 +09:00
Hajime Hoshi
0ab90197a3 Implement IsMouseButtonPressed / CursorPosition in JS (#53) 2015-01-06 23:41:03 +09:00
Hajime Hoshi
b85bae38e9 Change the way to generate assets not to use unsafe; Unsafe doesn't work in GopherJS at least 2015-01-06 22:59:15 +09:00
Hajime Hoshi
c98631a703 Add input_glfw.go; Rename ui.go -> ui_glfw.go 2015-01-06 21:54:42 +09:00
Hajime Hoshi
324e8653fb Update docs to use GopherJS (#54) 2015-01-06 00:44:39 +09:00
Hajime Hoshi
3f45685136 Centering <canvas> 2015-01-05 22:22:47 +09:00
Hajime Hoshi
1a4b25b23f Change <title> on ui.Start (#56) 2015-01-05 22:08:22 +09:00
Hajime Hoshi
cdc29210db Introduce ImageParts 2015-01-05 09:32:27 +09:00
Hajime Hoshi
8994ffad9b Avoid copying arrays 2015-01-04 22:26:20 +09:00
Hajime Hoshi
265a85e922 Update for newer gopherjs 2015-01-04 22:25:58 +09:00
Hajime Hoshi
abed162e91 Bug fix: initial capacity of vertices 2015-01-03 16:25:17 +09:00
Hajime Hoshi
f80850ef14 Reduce calling gl.Flush 2015-01-03 16:21:09 +09:00
Hajime Hoshi
52e610845b Avoid using struct key 2015-01-03 16:16:43 +09:00
Hajime Hoshi
3ad8d8ea2c Use attrib location cache 2015-01-03 15:56:54 +09:00
Hajime Hoshi
13a94d3446 Avoid type switch 2015-01-03 15:52:02 +09:00
Hajime Hoshi
71d463c102 Avoid copying for performance; Use location caches 2015-01-03 15:21:47 +09:00
Hajime Hoshi
1117862d19 Avoid copying for performance 2015-01-03 14:23:31 +09:00
Hajime Hoshi
447bda7d68 Remove calling gl.checkFramebufferStatus 2015-01-03 02:01:30 +09:00
Hajime Hoshi
091cc215fb Remove NextPowerOf2 (for uint64) 2015-01-03 01:46:25 +09:00
Hajime Hoshi
62f47ed02f Change the body's background color black 2015-01-03 01:19:25 +09:00
Hajime Hoshi
ae04bb17f6 Reduce calling glFlush 2015-01-03 01:14:36 +09:00
Hajime Hoshi
47227139db Implement keyboard events for js 2015-01-03 00:52:49 +09:00
Hajime Hoshi
5c755f2f31 Fix BindFramebuffer to pass JS null object explicitly 2015-01-02 23:52:40 +09:00
Hajime Hoshi
24c39bcd18 Fix shaders for WebGL 2015-01-02 23:31:32 +09:00
Hajime Hoshi
bd4434c62c Add loadimage_js.go 2015-01-02 16:48:07 +09:00
Hajime Hoshi
cadb3fffdf Add ui_js.go and input_js.go 2015-01-02 15:20:05 +09:00
Hajime Hoshi
c95390801a Add keys.go 2015-01-02 03:29:51 +09:00
Hajime Hoshi
c4e104a5d2 Remove ui.ActualScale() 2015-01-02 03:28:43 +09:00
Hajime Hoshi
3d01084a2a Hide structs in internal/ui 2015-01-02 03:25:31 +09:00
Hajime Hoshi
a9e323d02c Rename input -> Input 2015-01-02 02:44:00 +09:00
Hajime Hoshi
8994bf4fad Rename RealScale -> ActualScale 2015-01-02 02:23:47 +09:00
Hajime Hoshi
96f5315c49 Add internal/ui module 2015-01-02 02:13:27 +09:00
Hajime Hoshi
bcbaf2e674 Bug fix: opengl.Program can't take 0 (in gopherjs) 2014-12-31 23:53:54 +09:00
Hajime Hoshi
438380bb6e Add context_js.go 2014-12-31 23:34:50 +09:00
Hajime Hoshi
25fb0a9e31 Unify Uniform* methods 2014-12-31 20:07:27 +09:00
Hajime Hoshi
e10bcb3dd8 Move some methods to opengl.Context 2014-12-31 19:27:41 +09:00
Hajime Hoshi
4e3beb65f0 Rename Framebuffer.framebuffer -> Framebuffer.native 2014-12-31 18:00:53 +09:00
Hajime Hoshi
cdcc46543b Remove all dependencies on go-gl/gl from internal/graphics 2014-12-31 17:54:29 +09:00
Hajime Hoshi
f88154f380 Add opengl.Context.NewBuffer 2014-12-31 17:45:23 +09:00
Hajime Hoshi
7597268e85 Remove dependency on go-gl/gl in framebuffer.go 2014-12-31 17:04:03 +09:00
Hajime Hoshi
37828c452f Add opengl.AttribLocation 2014-12-31 17:01:08 +09:00
Hajime Hoshi
b8dde70b03 Add opengl.UniformLocation 2014-12-31 16:48:25 +09:00
Hajime Hoshi
dc6a153c65 Add opengl.Context.NewShader 2014-12-31 16:12:13 +09:00
Hajime Hoshi
a4a4c91eb1 Add opengl.Framebuffer.Fill 2014-12-31 15:26:06 +09:00
Hajime Hoshi
fbcd04cda8 Add opengl.Framebuffer.SetAsViewport 2014-12-31 15:22:15 +09:00
Hajime Hoshi
b1d4ce2120 Add opengl.Texture.Pixels 2014-12-31 15:11:19 +09:00
Hajime Hoshi
cc9b874dd0 Add opengl.NewTexture 2014-12-31 15:00:28 +09:00
Hajime Hoshi
efb759d23c Add package internal/opengl 2014-12-31 03:04:52 +09:00
Hajime Hoshi
450a8da267 Rename internal/opengl -> internal/graphics 2014-12-31 02:55:17 +09:00
Hajime Hoshi
0f569807e2 Bug fix: rename short32Size -> float32Size 2014-12-31 02:46:37 +09:00
Hajime Hoshi
957b4d392f Refactoring: Hide some functions of opengl 2014-12-31 02:06:08 +09:00
Hajime Hoshi
22035e79fe Reduce panics (#16) 2014-12-29 00:21:40 +09:00
Hajime Hoshi
7dd9368ad7 Compress text.png 2014-12-27 23:09:52 +09:00
Hajime Hoshi
4a07c6f0df Refactoring: gl bug fix 2014-12-27 17:58:39 +09:00
Hajime Hoshi
48f639db02 Bug fix: glfw's framebuffer might be lately changed after consuming some events 2014-12-26 20:44:35 +09:00
Hajime Hoshi
ce81251730 Bug fix: gl.EnableClientState should not be called 2014-12-26 20:13:57 +09:00
Hajime Hoshi
f2fbd991d2 Rename ImageDrawOptions -> DrawImageOptions (#43) 2014-12-26 01:39:48 +09:00
Hajime Hoshi
389b2b75f2 Remove currentVBO 2014-12-26 01:19:08 +09:00
Hajime Hoshi
c156cb1e66 Use VBO for vertices, tex coords (#2) 2014-12-26 01:11:42 +09:00
Hajime Hoshi
7f6e440d97 Use VBO for indices (#2) 2014-12-25 23:16:18 +09:00
Hajime Hoshi
373371d1b2 Change license comments style to use magic comments (magic comments like +build should be placed before a general comment) 2014-12-24 11:04:10 +09:00
Hajime Hoshi
27fe3d9ab8 Reduce depndencies on go-gl/gl 2014-12-23 04:32:36 +09:00
Hajime Hoshi
cd9efd3932 Implement image.Image at ebiten.Image (#35) 2014-12-23 01:27:11 +09:00
Hajime Hoshi
095c3ca380 Rename opengl.Image (that is originally wrong) -> opengl.Framebuffer 2014-12-23 00:01:22 +09:00
Hajime Hoshi
1663ad2250 Remove shader programColorFinal 2014-12-22 22:49:14 +09:00
Hajime Hoshi
2620414409 Simplify shaders 2014-12-22 21:51:58 +09:00
Hajime Hoshi
a3b0831472 Change the texture pixel format to premultiplied alpha (#36) 2014-12-22 21:39:25 +09:00
Hajime Hoshi
0f8ac49055 Unify RenderTarget and Image into Image (#34) 2014-12-22 11:10:08 +09:00
Hajime Hoshi
89c6e7c371 Add comments 2014-12-22 01:54:07 +09:00
Hajime Hoshi
99434fa9d3 Bug fix: Consider color.Color.RGBA returns alpha-premultiplied values 2014-12-22 01:05:21 +09:00
Hajime Hoshi
79b67db0d8 Rename AdjustSizeForTexture -> NextPowerOf2Int 2014-12-21 02:05:08 +09:00
Hajime Hoshi
59270a6b54 Refactoring 2014-12-21 01:04:49 +09:00
Hajime Hoshi
aed317649f Rename members of TextureQuad 2014-12-21 00:59:32 +09:00
Hajime Hoshi
991adb7449 Change RenderTexture to interface 2014-12-21 00:36:27 +09:00
Hajime Hoshi
01e0d42451 Remove GraphicsContext; Add rendering methods to RenderTarget (#26) 2014-12-20 23:24:15 +09:00
Hajime Hoshi
d4cd858eeb Improve alphablending example 2014-12-20 19:11:06 +09:00
Hajime Hoshi
df35a0ce1e Bug fix: the default framebuffer can't bind a texture 2014-12-20 18:57:00 +09:00
Hajime Hoshi
02660346c3 Call gl.Flush in DrawTexture 2014-12-20 15:36:31 +09:00
Hajime Hoshi
ccef1b5e65 Remove unneeded shaders 2014-12-20 05:59:07 +09:00
Hajime Hoshi
6673a39fa2 Introduce Photoshop-like alpha blending 2014-12-20 05:57:18 +09:00
Hajime Hoshi
f3e4d1703d Add Texture.Width, Height and RenderTarget.Width, Height 2014-12-17 22:50:44 +09:00
Hajime Hoshi
1c460d80c3 Add examples/image 2014-12-17 17:10:38 +09:00
Hajime Hoshi
c1fa38ebed Remove panic 2014-12-14 21:38:54 +09:00
Hajime Hoshi
60aad4326e Hide members of RenderTarget (again) 2014-12-14 18:34:47 +09:00
Hajime Hoshi
8319e0d41d Remove package glfw (once) 2014-12-14 17:00:11 +09:00
Hajime Hoshi
76b7da090c Remove dependencies on ebiten from opengl 2014-12-14 15:26:10 +09:00
Hajime Hoshi
d264d7a06b Remove dependencies on ebiten from shader 2014-12-13 14:53:54 +09:00
Hajime Hoshi
4addf8f9af Rename PushOffscreen -> PushRenderTarget 2014-12-13 14:53:53 +09:00
Hajime Hoshi
54509e42cf Add GraphicsContext.PushOffscreen / PopOffscreen (#21) 2014-12-11 03:50:35 +09:00
Hajime Hoshi
f388a48d52 Add go:generate gofmt 2014-12-11 02:03:13 +09:00
Hajime Hoshi
d5529d4351 Add ebitenutil/debugprint.go 2014-12-11 01:59:38 +09:00
Hajime Hoshi
a39f0e904d Remove some methods; Add Game.Initialize 2014-12-11 01:12:46 +09:00
Hajime Hoshi
343916ad29 Add GameContext; Remove Input and TextureFactory 2014-12-10 23:52:37 +09:00
Hajime Hoshi
b313578a24 Add ebiten/runner; Move glfw -> internal/glfw 2014-12-10 22:55:34 +09:00
Hajime Hoshi
ab47f14124 Move opengl -> internal/opengl 2014-12-10 00:25:54 +09:00