Commit Graph

843 Commits

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