Commit Graph

726 Commits

Author SHA1 Message Date
Hajime Hoshi
2fb5108bbe shader: Rename viewportSize to textureDstSize
Updates #1239
2020-07-26 00:03:55 +09:00
Hajime Hoshi
c6282e1cfc examples/polygons: Bug fix: Inserted an experimental code 2020-07-25 23:30:01 +09:00
Hajime Hoshi
2bdbcd724d ebiten: Rename Draw*WithShader -> Draw*Shader
Updates #1168
2020-07-25 23:15:11 +09:00
Hajime Hoshi
a159f55520 examples/airship: Bug fix: z could be a too small number
Fixes #1256
2020-07-21 00:34:06 +09:00
Hajime Hoshi
c567a7b507 ebiten: Add DrawRectangleWithShader
Updates #1168
2020-07-20 22:48:22 +09:00
Hajime Hoshi
1217db3b1e ebiten: Remove user-defined vertex shaders
Fixes #1253
2020-07-20 10:07:55 +09:00
Hajime Hoshi
a3f62559c6 examples/shader: Add lighting example
Fixes #1234
2020-07-19 15:42:35 +09:00
Hajime Hoshi
e0d5763a60 shader: Use the fixed number of images for shaders
This changes uses arrays rather than slices in order to avoid heap
allocations.

Updates #1193
2020-07-18 18:27:47 +09:00
Hajime Hoshi
7f70797a6d ebiten: Rename DrawTriaglesWithShaderOptions.Textures to Images 2020-07-15 03:49:05 +09:00
Hajime Hoshi
d217bc6033 ebiten: Sparate textures from uniforms at DrawTrianglesWithShader
Updates #1193
Updates #1239
2020-07-09 01:59:21 +09:00
Hajime Hoshi
4021c24534 shader: Separate uniform variables and texture variabls
Textures cannot be treated as a regular variable, then they should
be treated differently from other uniform variables.

Add a new function texture0At replacing texture2D.

Updates #1239
2020-07-08 01:12:07 +09:00
Hajime Hoshi
f7757ae025 ebiten: Add AddressUnsafe
Fixes #1219
2020-07-03 00:33:07 +09:00
Hajime Hoshi
dcba380827 examples/audiopanning: Remove intro loop 2020-07-01 23:14:45 +09:00
Gabriel Ochsenhofer
9942d5bac2
example: Stereo audio panning example (#1227)
This example simulates an audio source (sprite) and an audio listener (camera).
The panning is relative to the sprite's position.

Fixes #1224
2020-07-01 23:03:47 +09:00
Hajime Hoshi
5d092ae022 examples/raycasting: Adjust the position of the message 2020-07-01 01:52:49 +09:00
João Wiciuk
c57e569aea
examples/raycasting: Fixed duplicated points, plotting ray count (#1225) 2020-07-01 01:47:42 +09:00
Hajime Hoshi
aee5d6d708 examples/sprites, examples/spriteshd: Misspelling 2020-06-28 22:22:52 +09:00
Hajime Hoshi
ebb3bcfeb5 examples/shader: Refactoring 2020-06-24 02:47:51 +09:00
Hajime Hoshi
545342262f examples/shader: Show an image 2020-06-24 01:41:27 +09:00
Hajime Hoshi
1f9cc53ce4 examples/keyboard/keyboard: Use RunGame
Updates #1111
2020-06-22 03:44:40 +09:00
Hajime Hoshi
841085863b examples/shader: Embed the shader file 2020-06-22 01:07:00 +09:00
Hajime Hoshi
d0df5950b5 examples/shader: Add mouse cursor 2020-06-22 00:47:53 +09:00
Hajime Hoshi
40e581c19f shader: Allow to mix an int and a float in a binary expression
Updates #1190
2020-06-21 03:34:55 +09:00
Hajime Hoshi
1785b6a670 examples/moire: Add a smaller scale, and remove AdjustTexel function from shaders
This can reproduce the bug reported at #669.

Apparently, the fix (8827520d4a) is
no longer required after 3550abef7a.
That's pretty odd, but examples/moire proves this fact.

Updates #669
Updates #759
2020-06-15 00:29:34 +09:00
Hajime Hoshi
d98713728a uidriver/glfw: Bug fix: SetVsyncEnabled(false) did not work before the main loop
Fixes #1197
2020-06-14 11:50:58 +09:00
Hajime Hoshi
f39c591252 shader: Enable more Go syntax 2020-06-11 01:13:03 +09:00
Hajime Hoshi
b64dc627e9 shader: Add a builtin function viewportSize 2020-06-10 23:07:57 +09:00
datosh
f3d0a71eba
Example for an orthogonal 2D camera (#1188) 2020-06-10 23:01:25 +09:00
loig
63677e0e50
examples: Use RunGame (#1183)
Fixes #1111
2020-06-07 21:36:46 +09:00
loig
e117086ca1
examples/wheel: Use RunGame (#1182)
Updates #1111
2020-06-07 19:23:25 +09:00
Hajime Hoshi
ba36d5a8e9 shader: Reland: Add a predefined uniform variable: __viewportSize 2020-06-07 00:14:09 +09:00
Hajime Hoshi
fe308f1971 Revert "shader: Add a predefined uniform variable: Internal_ViewportSize"
This reverts commit 6f411842f0.

Reason: Test failures on internal/restorable
2020-06-05 04:36:09 +09:00
Hajime Hoshi
6f411842f0 shader: Add a predefined uniform variable: Internal_ViewportSize 2020-06-05 03:00:43 +09:00
Hajime Hoshi
d0aa18ddb9 Add shader public APIs experimentally
Updates #1168
2020-06-04 01:40:50 +09:00
Hajime Hoshi
1da6dbcb29 examples: Use RunGame
Updates #1111
2020-05-30 21:47:36 +09:00
Hajime Hoshi
bab3288a37 examples: Use RunGame
Updates #1111
2020-05-30 21:20:26 +09:00
Hajime Hoshi
47f415fe5a examples/raycasting: Use RunGame
Updates #1111
2020-05-24 00:12:44 +09:00
Hajime Hoshi
0bbf0d5291 examples: Use RunGame
Updates #1111
2020-05-23 23:36:53 +09:00
Hajime Hoshi
837f767f45 examples: Use RunGame
Updates #1111
2020-05-15 03:55:28 +09:00
Hajime Hoshi
dc3ed76e3e examples: Use RunGame
Updates #1111
2020-05-12 02:35:26 +09:00
Hajime Hoshi
b71fa0b59b examples: Use RunGame
Updates #1111
2020-05-10 05:40:50 +09:00
Hajime Hoshi
a1e65a5e90 examples/hue: Use RunGame
Updates #1111
2020-05-10 05:29:18 +09:00
Hajime Hoshi
ce965077d8 examples/hsv: Use Game interface and RunGame
Updates #1111
2020-05-07 16:55:42 +09:00
Hajime Hoshi
9c1b99bd26
examples/audioinfiniteloop: Fix a wrong comment 2020-04-22 21:57:15 +09:00
Hajime Hoshi
29ef737413 examples/gamepad: Use RunGame
Updates #1111
2020-04-20 01:36:12 +09:00
Hajime Hoshi
ff271493e2 examples/fullscreen: Use RunGame
Updates #1111
2020-04-20 01:10:05 +09:00
Hajime Hoshi
de8707f6a1 examples/highdpi: Use RunGame
Updates #1111
2020-04-12 20:49:52 +09:00
Hajime Hoshi
6529629d29 examples: Use RunGame
Updates #1111
2020-04-12 20:30:51 +09:00
Hajime Hoshi
e16a4cd85c examples: Use RunGame
Updates #1111
2020-04-12 19:03:04 +09:00
Hajime Hoshi
cd4a0ba489 examples/rotate: Use RunGame
Updates #1111
2020-04-12 18:05:35 +09:00
Hajime Hoshi
9302160486 examples/flappy: Use RunGame
Updates #1111
2020-04-01 15:59:49 +09:00
Hajime Hoshi
01a1334639 examples/blocks: Use RunGame
Updates #1111
2020-04-01 15:57:49 +09:00
Hajime Hoshi
a70d6a314e examples/2048: Use RunGame
Updates #1111
2020-04-01 15:51:54 +09:00
Hajime Hoshi
7ac6b0bfa3 Update dependencies 2020-03-31 03:32:38 +09:00
Hajime Hoshi
161d8aae8f ui: Forbid RestoreWindow when the window is not maximized nor minimized
Fixes #1124
2020-03-31 02:48:22 +09:00
Hajime Hoshi
b470dace1a examples/windowsize: Bug fix: Nothing was rendered with -legacy mode 2020-03-31 02:22:21 +09:00
Hajime Hoshi
f01f5045ba examples/mascot: Use RunGame
Updates #1111
2020-03-31 01:06:47 +09:00
Hajime Hoshi
569f684d9b examples/windowsize: Improve messages 2020-03-29 02:36:14 +09:00
Hajime Hoshi
b7d555e724 examples/blocks: Bug fix: ESC key caused crashing 2020-03-29 02:35:58 +09:00
Hajime Hoshi
231edfbd3f example/contextlost: Bug fix: Compilie error on Go 1.14, Should use WebGL2 2020-03-29 02:03:14 +09:00
Hajime Hoshi
4fe5acd711 ui: Panic on MaximizeWindow when the window is not resizable
On Windows, the window could be maximized even when the window was
not resizable. This behavior is confusing. Forbid it so that the
behavior will be clearer.
2020-03-28 22:08:48 +09:00
Hajime Hoshi
7b5fb0a0d0 ui: Bug fix: The window was not shown on the secondary monitor on launching
This change changes the behavior of WindowPosition /
SetWindowPosition. The window position is now a relative position
and the origin position is the left-upper of the current monitor.

Fixes #1115
2020-03-28 19:51:47 +09:00
Hajime Hoshi
eb5f5485b3 examples/mascot: Add comments 2020-03-28 16:40:00 +09:00
Hajime Hoshi
e9508f8fbd examples/windowsize: Bug fix: Key I was assigned for multiple purposes 2020-03-28 15:29:02 +09:00
Hajime Hoshi
844dbc4a9b examples/windowsize: Better instruction message 2020-03-28 15:27:31 +09:00
Hajime Hoshi
237498e51f
ui: Add an optional function Draw function to Game interface (#1107)
This change adds an optional function Draw to the Game interface.
With Draw function, the game logic and rendering are separate.
There are some benefits:

  * The API is clearer and easier to understand.
  * When TPS < FPS, smoother rendering can be performed without
    changing the game logic depending on TPS.
  * Porting to XNA, which has separate functions Update and Draw,
    would be a little easier.

Draw is optional due to backward compatibility. Game interface was
already used before v1.11.x in mobile packages, and adding a
function would break existing code unfortunately. Then, we adopted
switching the behavior based on whether Draw is implemented or not
by type assertions.

IsDrawingSkipped will always return false when Draw is implemented.

Fixes #1104
2020-03-24 12:01:37 +09:00
Hajime Hoshi
37a8ae06c5 example/mascot: Use vx16 instead of dir 2020-03-22 17:31:46 +09:00
Hajime Hoshi
77b7e961ff example/mascot: Remove unused variable 'state' 2020-03-22 16:48:55 +09:00
Hajime Hoshi
4eedeb6ab7 example: Add mascot
This change also revert ScreenSizeInFullscree from the deprecated
state.

Fixes #1108
2020-03-22 16:30:48 +09:00
Hajime Hoshi
f317f3b5fd ui: Add fuctions to maximize or minimize the window
This change adds these functions:

  * MaximizeWindow
  * IsWindowMaximized
  * MinimizeWIndow
  * IsWindowMinimized
  * RestoreWindow

Fixes #994
2020-03-21 22:13:58 +09:00
Hajime Hoshi
978ee26898 ui: Add function aliases *OnUnfocused for *InBackground
Now a window can be floating with SetWindowFloating, the functions
that have suffix 'IsBackground' seems misleading. However, we
cannot rename them due to backward compatibility. Then, let's add
aliases and revisit them when updating the major version of Ebiten.

Fixes #1102
2020-03-21 00:42:00 +09:00
Hajime Hoshi
56358fd0c4 ui: Rename IsForeground -> IsFocused
Updates #1102
2020-03-21 00:12:47 +09:00
Hajime Hoshi
4ef3b3e804 ui: Add SetWindowFloating / IsWindowFloating
Fixes #880
2020-03-20 22:16:27 +09:00
Hajime Hoshi
f272da2980 examples/platformer: Add jumps
Fixes #1062
2020-03-19 02:11:03 +09:00
Hajime Hoshi
c6559f4f8e examples/platformer: Adjust screen size 2020-03-19 01:26:34 +09:00
Hajime Hoshi
1fdab58ff5 vector: Add FillOptions 2020-03-16 23:49:55 +09:00
Hajime Hoshi
099ce1b3b4 Revert "ui: Add SetInitFocused"
This reverts commit bb04fc8a29.

Reason: glfw.Focused / glfw.FocusOnShow did not work

Updates #769
2020-02-10 01:10:40 +09:00
Hajime Hoshi
bb04fc8a29 ui: Add SetInitFocused
Updates #769
2020-02-09 23:45:59 +09:00
Hajime Hoshi
67b166f732 examples/rotate: Revert resizeable window
This was accidentally introduced at 9ed8279fc8.
2020-02-06 03:05:31 +09:00
Hajime Hoshi
d6d17a7e85 uidriver/js: Implement GamepadSDLID
Fixes #1053
2020-02-05 00:00:00 +09:00
Sam Oen
69dc54232c
examples/raycasting: fix bug, swap height and width (#1067) 2020-02-01 17:28:23 +09:00
Hajime Hoshi
db40554715 examples/windowsize: Add usage of IsForeground
Updates #1037
2020-01-21 23:34:03 +09:00
Hajime Hoshi
bfa7e42368 docs: Use pkg.go.dev instead of godoc.org (Go files) 2020-01-19 04:52:12 +09:00
Hajime Hoshi
31482ebbbd docs: Use pkg.go.dev instead of godoc.org 2020-01-19 04:47:48 +09:00
dericmiller
7ee8d1aa5f examples/life: Fix initial world randomization (#1045)
Because golang executes the init function after establishing
the variables in the var block, the random number seed wasn't
initializing until after the initial world state had gotten
established (leading to an identical game of Life on every run).
To fix this, we establish an empty world in the var block,
and then populate it in the init function after the random
number generator has been seeded.
2020-01-06 13:09:51 +09:00
Hajime Hoshi
e725c7ee78 vector: Rename functions
Updates #844
2019-12-30 16:14:49 +09:00
Hajime Hoshi
17e16e5759 examples/vector: Add FPS 2019-12-29 23:02:28 +09:00
Hajime Hoshi
cee11bd822 vector: Add BezierCurveTo
Updates #844
2019-12-29 00:06:55 +09:00
Hajime Hoshi
6edb586f52 example/vector: Add the logo
There is a known issue in the logo rendering.
2019-12-28 18:12:27 +09:00
Hajime Hoshi
f1a788801c examples/vector: Add letters 2019-12-28 15:20:05 +09:00
Hajime Hoshi
d39dbc6a88 vector: Add QuadraticCurve
Updates #741
2019-12-28 14:58:29 +09:00
Hajime Hoshi
18b267fd4f vector: Add Fill by triangulation
Updates #845
2019-12-28 02:51:09 +09:00
Hajime Hoshi
9ed8279fc8 driver: Add interface Window 2019-12-25 00:24:21 +09:00
Hajime Hoshi
f8d47e5c6a examples/moire: Make the window resizable 2019-12-23 04:45:49 +09:00
Hajime Hoshi
049aa552d4 ui: Add SetWindowResizable
This change also fixes example/windowsize.

Fixes #320
2019-12-22 19:26:04 +09:00
Hajime Hoshi
4aa80de34d examples/windowsize: Bug fix: screenScale can be 0 on browsers 2019-12-22 19:20:31 +09:00
Hajime Hoshi
7d56e4335e ui: Add RunGame, WindowSize and SetWindowSize
This change introduces the new APIs RunGame, WindowSize and
SetWindowSize. These new APIs hides the notion of 'scale', and is
more flexible with the outside size change. This means that we can
introduce a resizable window.

This change also adds -legacy flag to examples/windowsize. If the
flag is off, the new APIs are used.

This change deprecates these functions since the notion of 'scale'
is deprecated:

  * ScreenScale
  * ScreenSizeInFullscreen
  * SetScreenScale
  * SetScreenSize

Fixes #943, #571
Updates #320
2019-12-22 03:35:31 +09:00
Hajime Hoshi
aad5db8939 examples/windowsize: Change the delta of moving the window 2019-12-21 17:08:04 +09:00
Hajime Hoshi
bda11b0e17 driver: Add UI.SetWindowSize and UIContext.Layout
This is a preparation to introduce RunGame function.

Updates # 943 (Fix this line before committing)
2019-12-15 02:29:43 +09:00
Hajime Hoshi
0ec447e0d0 ui: Add SetScreenTransparent / IsScreenTransparent
Fixes #1001
2019-12-01 03:31:32 +09:00
Hajime Hoshi
d78b4d7ffd examples/windowsize: Add messages about moving the window 2019-11-30 23:59:45 +09:00
Hajime Hoshi
9b2f864fc8 ui: Add SetWindowPosition(x, y int)
Fixes #936
2019-11-30 23:22:39 +09:00
Hajime Hoshi
c021d6be6a ui: Add WindowPosition()
Fixes #936
2019-11-30 22:37:56 +09:00
Hajime Hoshi
e0d780b029 uidriver/glfw: Enable to call SetWindowDecorated after Run
Fixes #556
2019-11-26 11:46:18 +09:00
Hajime Hoshi
32c04767da examples/audio: Switchable to MP3 from Ogg 2019-10-30 00:33:29 +09:00
Hajime Hoshi
49a5a2bf4e uidriver/js: Bug fix: Needed to initialize pseudoScale with the given scale
Updates #960, #973
2019-10-27 17:16:49 +09:00
Hajime Hoshi
b8da9cf041 examples/moire: Bug fix: Crash on browsers
Fixes #973
2019-10-27 17:00:14 +09:00
Hajime Hoshi
f34e94ff2c examples/squiral: Fix title 2019-10-22 23:18:16 +09:00
Hajime Hoshi
00ae15082d examples/flappy: Change the spelling: Gameover -> Game over 2019-10-18 02:15:37 +09:00
Hajime Hoshi
87bc2e6f02 examples/sprites: Accept touches 2019-10-18 01:56:54 +09:00
Hajime Hoshi
75721e6fc1 ui: Auto scaling on browsers
This change forces Ebiten apps on browsers 'fullscreen' mode.
After this change, 'scale' value is no longer used on browsers.

Note that this breaks backward compatibility, but as long as the
game works in an iframe, this should not be problematic.

Fixes #960
2019-10-15 00:02:02 +09:00
Hajime Hoshi
726de29f36 examples/windowsize: Remove Q key to terminate
Not having a way to terminate the app is more portable. Browsers
and mobiles don't have the notion of 'termination'.
2019-10-14 23:49:42 +09:00
Hajime Hoshi
c30918261b gofmt -s -w 2019-10-12 01:09:42 +09:00
David Linus Briemann
9082edf03f Add new example: squirals (#952) 2019-10-09 00:54:23 +09:00
Hajime Hoshi
5b22a1218e examples: Fix warnings in the examples
Updates #889
2019-10-07 03:05:26 +09:00
Hajime Hoshi
fcca95dfa8 examples/set: Add FPS to see the performance 2019-10-04 01:51:26 +09:00
Hajime Hoshi
83b2d4b112 input: driver.Key now distinguishes left/right modifier keys
This is a preparation for event package, that will have key enum.

Updates #926
2019-09-01 23:49:00 +09:00
Hajime Hoshi
d25d184ed7 graphics: Bug fix: wrong for loops in TestImageMipmap* 2019-07-30 19:19:30 +09:00
Hajime Hoshi
80ae508d29 examples/contextlost: Bug fix: Add 'js' build tag
Importing 'syscall/js' requires 'js' environment.
2019-05-01 17:55:12 +09:00
Hajime Hoshi
10fb5e33be Replace GopherWasm with syscall/js
Fixes #857
2019-05-01 17:28:00 +09:00
Hajime Hoshi
020cba22c5 vector: Implement miter limit
Fixes #843
2019-04-20 23:08:20 +09:00
Hajime Hoshi
5487dd9ea8 examples/vector: Add rotating points and lines by them 2019-04-14 23:15:03 +09:00
Hajime Hoshi
edbb5b4e0d vector: Better line joints
Bug: #842
2019-04-14 15:48:20 +09:00
Hajime Hoshi
6bd9ef6abd vector: Bug fix: wrong color value 2019-04-14 02:11:25 +09:00
Hajime Hoshi
8d912a402f examples/vector: Render more texts 2019-04-14 01:58:20 +09:00
Hajime Hoshi
d7bd89d32b Add vector package (Work in progress) 2019-04-14 00:37:38 +09:00
Hajime Hoshi
f56c3bd096 ui: Unexport SetWindowResizable (#320) 2019-02-25 02:19:47 +09:00
Hajime Hoshi
fc43868f21 examples/sprites: Rotate sprites 2019-02-24 02:09:38 +09:00
Hajime Hoshi
f7e7598567 examples/particles: Reduce emittion 2019-02-24 01:26:07 +09:00
Hajime Hoshi
0a35efbba9 Add examples/particles
Fixes #826
2019-02-24 01:20:06 +09:00
Hajime Hoshi
6906ea1c4f examples/raycasting: Refactoring 2019-02-19 00:03:35 +09:00
Hajime Hoshi
b7c1d8db3c examples/doomfile: Skip renderFire when possible 2019-02-15 00:54:11 +09:00
Hajime Hoshi
17daf99c3c examples/airship: Show FPS 2019-02-12 13:03:32 +09:00
Cesar Gimenes
f361bb05dd examples: Add doom fire algorithm example (#808) 2019-02-09 14:39:11 -10:00
Hajime Hoshi
5be567d58f ui: Implement restoring context lost on browsers correctly
Fixes #734
2019-02-01 01:20:40 +09:00
Hajime Hoshi
7dafbb2e4e examples/sinewave: Bug fix: Sinewave volume was too small 2019-01-20 02:17:10 +09:00
Hajime Hoshi
79b5712410 examples/sinewave: Refactoring (return the copied bytes) 2019-01-19 18:42:39 +09:00
Hajime Hoshi
808f512a7d examples/sinewave: Refactoring 2019-01-19 18:36:03 +09:00
Hajime Hoshi
5cd66b6d6b examples/audio: Remove unused functions 2019-01-15 02:13:18 +09:00
Hajime Hoshi
5a612f60b6 examples/audio: Bug fix: Do not close after Run
Now Run can return immediately on GopherJS.

In general, graceful shutdown should not be expected since there
is no 'end' phase on some environments.

Fixes #784
2019-01-15 02:11:23 +09:00
Hajime Hoshi
ea29637fda examples/set: Use color.RGBA 2019-01-14 20:04:58 +09:00
Hajime Hoshi
67ce6c57c4 Add examples/set 2019-01-14 19:31:07 +09:00
Hajime Hoshi
1f277f7a2c example/raycasting: Refactoring 2019-01-12 23:54:15 +09:00
Magnus
4a4f45ffd7 example/shadow-raycasting (#780) 2019-01-12 23:46:03 +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
aadfbc3e70 examples/blur: Fix comments about #694 2019-01-06 19:22:27 +09:00
Hajime Hoshi
348e50c5e7 examples/audio: Show the current volume (#730) 2019-01-05 01:43:22 +09:00
Hajime Hoshi
f1582c2d73 graphics: Add Address representing a sampler address mode
Fixes #761
2018-12-24 17:29:31 +09:00