Commit Graph

7110 Commits

Author SHA1 Message Date
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
f7072d7ee5 Clean up .gitignore 2018-05-30 03:13:01 +09:00
Hajime Hoshi
351c048e2f graphics: Add TestSprites 2018-05-29 02:20:50 +09:00
Hajime Hoshi
5f3a42aab9 examples/flappy: Add license comment 2018-05-28 02:38:55 +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
bbe6926f9c Fix .travis.yml 2018-05-25 02:11:34 +09:00
Hajime Hoshi
cc748f15e4 examples/contextlost: Use gopherwasm 2018-05-25 02:08:32 +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
9b7f5f7273 ebitenutil: Use gopherwasm 2018-05-25 01:23:09 +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
22ca490b6e Fix comments in .travis.yml 2018-05-22 11:15:22 +09:00
Hajime Hoshi
f5a0ec320d Use gjbt on TravisCI (#615) 2018-05-22 10:43:49 +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
176b80cc83 docs: Update 2018-05-14 02:09:04 +09:00
Hajime Hoshi
5bbdb67a65 Update version to 1.8.0-alpha 2018-05-14 02:08:27 +09:00
Hajime Hoshi
da5430e4b1 inpututil: Package inpututil is no longer experimental 2018-05-14 01:32:55 +09:00
Hajime Hoshi
569639d485 examples/contextlost: Bug fix: don't crash on Edge
Fixes #613
2018-05-14 00:35:40 +09:00
Hajime Hoshi
a92cc0f4b3 examples/drag: Bug fix: nil error
Fixes #612
2018-05-14 00:06:03 +09:00
Hajime Hoshi
b9cd7afff5 graphics: Add TestImageStretch (#611) 2018-05-13 23:47:59 +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
b69d564d89 examples/life: Refactoring 2018-05-13 00:38:33 +09:00
Hajime Hoshi
f7c19ef517 examples/drag: Put the moving sprites frontend 2018-05-12 23:22:50 +09:00
Hajime Hoshi
62c5511314 docs: Add 'autoplay' attribution on iframes
Fixes #609
2018-05-12 17:46:44 +09:00
Hajime Hoshi
ff200e735f docs: Bug fix: add drags example 2018-05-12 17:46:03 +09:00
Hajime Hoshi
63467ed700 docs: Add 'drag' example 2018-05-12 17:26:37 +09:00
Hajime Hoshi
07009501f9 examples: Move resource files 2018-05-12 17:09:42 +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
59dc58a74c inpututil: Bug fix: prevGamepadButtondDurations was not copied correctly 2018-05-11 02:45:09 +09:00
Hajime Hoshi
252f4430d8 examples/drag: Add touches (#506) 2018-05-11 02:02:33 +09:00
Hajime Hoshi
5677c8a916 inpututil: Bug fix: prevTouchDurations was not updated correctly 2018-05-11 01:44:29 +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
df048d9bf6 audio: Don't use nosync GopherJS
nosync package is good in terms of performance, but this assumes
that duplicated lock never happens. As audio package runs multiple
goroutines, theoretically duplicated lock can happen, and it looks
like this is an actual case (#603).

This change replaces nosync usages with regular sync usages.

Probably I'll deprecate nosync usages via internal/sync package
everywhere in Ebiten.

This might fix #603.
2018-05-09 12:14:20 +09:00