Hajime Hoshi
8063f2050c
internal/graphicscommand: Optimize flush
2021-09-23 00:03:41 +09:00
Hajime Hoshi
7675e2735b
internal/graphicscommand: Refactoring: Do not you 'int' as a variable name
2021-09-22 23:39:56 +09:00
Hajime Hoshi
f79acf9569
internal/mipmap: Bug fix: nil should be meaningful for a mipmap map
2021-09-21 00:46:11 +09:00
Hajime Hoshi
81fd7ab8f6
internal/mipmap: Create a mipmap map lazily
2021-09-20 23:27:14 +09:00
Hajime Hoshi
9dbff2cddd
internal/uidriver/glfw: Make SetFullscreen more responsive on macOS
2021-09-20 21:01:17 +09:00
Hajime Hoshi
0ac4c7323f
internal/uidriver/glfw: Bug fix: Potential crash when xgb.NewConn fails
2021-09-19 18:23:51 +09:00
Hajime Hoshi
8ed55ef42d
internal/uidriver/glfw: Use the window size on a native fullscreen
...
Updates #1745
2021-09-19 00:35:18 +09:00
Hajime Hoshi
f0395dd329
internal/uidriver/glfw: Skip adjusting the view size with OpenGL
2021-09-18 23:59:37 +09:00
Hajime Hoshi
188e80d2f7
internal/uidriver/glfw: Bug fix: FPS is dropped when pressing the green button
...
Updates #1745
2021-09-18 22:16:21 +09:00
Hajime Hoshi
1a7cf7b3b8
internal/glfw/glfw: Modify GLFW for Windows to make the window non-floating
...
Closes #1506
2021-09-18 20:47:26 +09:00
Hajime Hoshi
7be00d79e8
internal/uidriver/glfw: Fix unstable FPS on fullscreen on macOS
...
FPS was unstable on fullscreen mode i.e., when the view size is the
same as the monitor size.
By using a little different size view, FPS becomes stable.
Updates #1745
2021-09-18 19:22:09 +09:00
Hajime Hoshi
11b9a4b161
internal/graphicsdriver/metal: Refactoring
2021-09-18 17:24:03 +09:00
Hajime Hoshi
e98e371bb4
internal/uidriver: Bug fix: Compile error on Linux/UNIX
2021-09-18 16:58:30 +09:00
Hajime Hoshi
428c079e52
internal/uidriver/glfw: Make a 'native' fullscreen on macOS
...
This is a breaking change. On macOS, `SetFullscreen` creates a new
independent space and maximize the size of the window there.
Updates #1506
Closes #1579
2021-09-18 16:31:22 +09:00
Hajime Hoshi
2a390c18c1
internal/uidriver/glfw: Do not iconify the fullscreen window on Linux
...
Updates #1506
2021-09-18 00:52:04 +09:00
Hajime Hoshi
ec2f823420
internal/uidriver/glfw: Clear the device scale cache when monitors are changed
2021-09-15 13:04:38 +09:00
divVerent
5bc7b93e6f
Move VideoModeScaleAt into internal/uidriver/glfw. ( #1812 )
...
It's only used by GLFW, and has been in devicescale only to ease migration
to separate video mode vs content scaling.
Updates #1774
2021-09-15 12:47:04 +09:00
divVerent
923c84a3d6
Split the concept of device scale and screen scale ( #1811 )
...
We now set deviceScale to always the mapping from logical window system pixels
to device independent pixels (which is what Ebiten API users expect), and
introduce a new concept of videoModeScale that maps from video mode to logical
window system pixels.
videoModeScale is now only used for computing full-screen resolutions, while
deviceScale is used for any other conversion.
Fixes window sizes on X11, should be a NOP otherwise.
Closes #1774 .
2021-09-15 01:03:04 +09:00
divVerent
60df512352
Switch out the devicescale implementation by one that relies on glfw/xrandr. ( #1800 )
...
This should fix fullscreen mode on Linux/X11 systems in general,
while not affecting other systems.
Note that this deletes a bunch of OS X specific and Windows specific code,
as GLFW already provides this functionality.
This change is not expected to cause regressions, however,
the current behavior is still wrong and leads to wrong/unintended window sizes.
To be fixed in further PRs.
Updates #1774
2021-09-14 12:35:02 +09:00
Hajime Hoshi
cc1ac47387
internal/uidriver: Fix comments
2021-09-13 21:53:02 +09:00
Hajime Hoshi
64a0577c26
internal/affine: Optimize Scale and Translate
2021-09-13 02:18:07 +09:00
Hajime Hoshi
39e7f71ccb
internal/uidriver/glfw: Bug fix: Forbide Maximize/MinimizeWindow on the native fullscreen on macOS
...
Closes #1810
2021-09-12 23:38:44 +09:00
Hajime Hoshi
ea12ede127
ebiten: Add StandardGamepadButtonValue
...
Closes #1721
2021-09-12 21:00:48 +09:00
Hajime Hoshi
f23dadb8ae
Add internal/gamepaddb ( #1805 )
...
This is basically a revert of 93a156a718
.
This implements parsing the SDL gamepad mappings by Ebiten instead
of GLFW, so that Ebiten can handle parsing errors completely.
Closes #1802
2021-09-11 22:46:05 +09:00
Hajime Hoshi
28963a66ee
internal/uidriver/glfw: Update the game controller DB
2021-09-11 19:12:48 +09:00
Hajime Hoshi
37771717cc
internal/uidriver: Bug fix: Potential memory leak by [:0]
...
Updates #1803
2021-09-10 02:17:29 +09:00
Hajime Hoshi
dbe101a8ef
internal/restorable: Remove draw-triangles-history items explicitly
...
Updates #1803
2021-09-09 12:57:50 +09:00
Hajime Hoshi
106ff7a84b
internal/ui: Reduce calls of glfw.GetMonitors
...
Updates #1803
2021-09-09 11:14:08 +09:00
Hajime Hoshi
5ac357959c
internal/graphicscommand: Bug fix: memory leak at q.commands
...
Apparently, the part of a slice between len and cap-1 still holds
references. Release them explicitly.
Closes #1803
2021-09-09 04:28:31 +09:00
Hajime Hoshi
8f857daf3e
internal/restorable: Bug fix: Forbid NewImage before the graphics driver is ready
2021-09-09 03:58:58 +09:00
Hajime Hoshi
a3570331dd
internal/restorable: Delay initializing emptyImage
...
Now NeedsRestorable can always return a correct value.
2021-09-09 03:27:22 +09:00
Hajime Hoshi
65943d4bad
internal/graphicsdriver/metal: Disable presentsWithTransaction on iOS
...
Closes #1799
2021-09-07 00:02:58 +09:00
Hajime Hoshi
f7738b812b
internal/mipmap: Skip color scaling when possible
2021-09-06 12:11:52 +09:00
Hajime Hoshi
7f3bd1bbd5
internal/jsutil: Remove unused functions
2021-09-04 21:01:21 +09:00
Hajime Hoshi
64ec626ca6
internal/uidriver/js: Optimize isFocused() by using bind
2021-09-04 19:20:24 +09:00
Hajime Hoshi
58ea710a84
internal/affine: Rename UnsafeElements -> Elements as this is no longer unsafe
2021-09-04 18:08:27 +09:00
Hajime Hoshi
8c9ec8fc9f
interna/affine: Avoid UnsafeElements at At
...
Updates #1796
2021-09-04 17:55:51 +09:00
Hajime Hoshi
df710a5c63
internal/affine: Change UnsafeElements to take arguments
...
This will enable to suppress unnecessary array allocations in the
future.
Updates #1796
2021-09-04 17:38:30 +09:00
Hajime Hoshi
65e148700f
internal/jsutil: Optimize byteLength calls by using bind
2021-09-04 16:51:35 +09:00
Hajime Hoshi
e5c051a437
internal/affine: Refactoring: UnsafeScaleElements -> scaleElements
2021-09-03 23:56:55 +09:00
Hajime Hoshi
d5ce0dbd90
internal/uidriver/glfw: Bug fix: Disable the sticky mode on FPSModeVsyncOffMinimum
...
Closes #1791
2021-08-31 11:43:11 +09:00
Hajime Hoshi
0e5dca9453
.github/workflows, internal/uidriver/glfw: Use curl's --remote-name
2021-08-28 16:37:10 +09:00
Hajime Hoshi
eae40c90bb
internal/uidriver/glfw: Enable to update gamecontrollerdb.txt
2021-08-28 16:09:14 +09:00
Hajime Hoshi
fa0efea4a4
internal/png: Regenerate
2021-08-28 03:14:54 +09:00
Hajime Hoshi
91a7288027
internal/atlas: Better pixel allocations
...
Updates #1681
Updates #1788
2021-08-26 03:35:21 +09:00
Hajime Hoshi
40d2dd3ba7
internal/uidriver/glfw: Update comments
...
Updates #1787
2021-08-26 02:05:30 +09:00
Hajime Hoshi
9c321375c9
internal/atlas: Bug fix: pix was reset at a wrong timing
...
Closes #1788
2021-08-25 22:10:57 +09:00
Hajime Hoshi
d1c764640d
internal/glfw, internal/graphicsdriver/opengl/gl: Use the last byte to detect a bool
...
When a C function returns a bool value, only the first byte of a
uintptr value matters. When we want to get a bool value from a C
function, filter this for sefety.
2021-08-25 02:09:55 +09:00
divVerent
7b11377bce
ebiten: Support updating the gamepad mapping ( #1775 )
...
This is only supported on desktops yet (on mobile standard layout isn't
implemented yet, and on the web this is the browser's responsibility).
Closes #1723
2021-08-23 21:44:49 +09:00
Hajime Hoshi
35deb53624
internal/graphicsdriver/metal: Rename files to remove +build comments
2021-08-23 02:06:09 +09:00
Hajime Hoshi
aec74aa39b
Remove flock from the tests
2021-08-22 18:34:35 +09:00
Hajime Hoshi
d5150a194c
internal/shaderir/glfw: Insert a dummy function to touch uniform array variables
...
Closes #1754
2021-08-15 18:06:41 +09:00
Hajime Hoshi
6c8a7d1079
internal/graphicsdriver/opengl: Bug fix: A location cache map must be reset when a program is deleted
...
Closes #1753
2021-08-15 04:54:20 +09:00
Hajime Hoshi
7586f1ca5e
internal/atlas: Bug fix: Disable a test resetting the backend
...
Closes #1756
2021-08-15 00:02:59 +09:00
Hajime Hoshi
1e062a4245
internal/atlas: Bug fix: Fix test
2021-08-14 23:07:27 +09:00
Hajime Hoshi
8a6302f9dc
internal/atlas: Add tests to call DrawTriangles twice
...
Updates #1755
2021-08-14 21:42:07 +09:00
Hajime Hoshi
da08577095
internal/graphicsdriver/opengl: Refactoring
2021-08-14 04:05:18 +09:00
Hajime Hoshi
ce8fc39451
internal/graphicsdriver/opengl: Bug fix: the current program must be reset
...
Updates #1751
2021-08-13 23:44:30 +09:00
Hajime Hoshi
797f42b839
internal/glfw: Use a more stable version of MinGW
...
Closes #1750
2021-08-13 03:35:51 +09:00
Hajime Hoshi
c6dd349338
internal/glfw: Refactoring
2021-08-09 14:55:10 +09:00
Hajime Hoshi
4482301882
internal/uidriver/glfw: Better implementation of isNativeFullscreen
...
The old implementation can return false when the window is not active.
2021-08-08 17:45:48 +09:00
Hajime Hoshi
15ac69b8d5
internal/graphicsdriver/metal: Bug fix: Disable presentsWithTransaction on fullscreen
...
Closes #1745
2021-08-08 17:40:37 +09:00
Hajime Hoshi
ec26b1a43b
internal/graphicsdriver/metal: Refactoring: Remove vsyncInited
2021-08-08 15:30:13 +09:00
Hajime Hoshi
cc1accc32a
internal/uidriver/glfw: Bug fix: Disable vsync when resizing the window
...
Closes #1740
2021-08-06 03:08:04 +09:00
Hajime Hoshi
0bc5166a36
driver: Refactoring: Rename functions
2021-08-05 01:29:45 +09:00
Hajime Hoshi
60b8f82bfd
graphicscommand: Dump internal image info on the debug mode
...
Closes #1714
2021-08-05 01:16:42 +09:00
Hajime Hoshi
8967384dac
internal/graphicsdriver: Bug fix: getting a WebGL2 context might fail even though WebGL2RenderingContext exists
...
Closes #1738
2021-08-01 22:00:47 +09:00
Hajime Hoshi
4e6a5a9fa2
internal/atlas: Bug fix: Wrong screenshot size
...
Updates #1736
2021-07-29 16:33:54 +09:00
Hajime Hoshi
18903db1c6
internal/atlas: Bug fix: Unexpected padding in screenshots
...
Closes #1736
2021-07-29 16:09:29 +09:00
Hajime Hoshi
59aa41a3c2
internal/affine: Improve ColorM Scale's performance
...
The benchmark result comparing the previous commit and this commit is this:
```
name old time/op new time/op delta
ColorMScale-8 9.75µs ± 6% 1.30µs ±22% -86.67% (p=0.000 n=10+9)
name old alloc/op new alloc/op delta
ColorMScale-8 1.34kB ±100% 1.19kB ±19% ~ (p=0.421 n=10+8)
name old allocs/op new allocs/op delta
ColorMScale-8 3.00 ± 0% 2.00 ± 0% -33.33% (p=0.000 n=10+10)
```
Updates #1658
2021-07-27 13:45:09 +09:00
Hajime Hoshi
bcb30f8595
Update go-gl/glfw for GLFW 3.3.4
2021-07-27 12:54:11 +09:00
Hajime Hoshi
e4329d0349
internal/driver: Refactoring: Reduce dependencies on affine
2021-07-27 12:19:50 +09:00
Hajime Hoshi
21aa96f9f5
internal/affine: Refactoring: Make ColorM interface
2021-07-27 12:10:22 +09:00
Hajime Hoshi
5f03f4f195
internal/affine: Add coloMImpl interface and colorMImplScale
...
Closes #1658
2021-07-26 22:18:10 +09:00
Hajime Hoshi
7e5b259dd2
internal/affine: Use a pointer of an array for UnsafeElements
2021-07-26 21:19:53 +09:00
Hajime Hoshi
2c26e85183
internal/affine: Replace isInited with isIdentity
2021-07-26 21:07:51 +09:00
Hajime Hoshi
d0ae73084b
internal/affine: Separate ColorM implementation
...
Updates #1658
2021-07-26 15:21:12 +09:00
Hajime Hoshi
e84506dfc3
internal/affine: Add String
2021-07-26 14:26:59 +09:00
Hajime Hoshi
18757cff16
internal/affine: Refactoring
2021-07-25 22:10:38 +09:00
Hajime Hoshi
1706d9436a
ebiten: Add FPSModeType, FPSMode, SetFPSMode, and ScheduleFrame
...
This change adds these APIs:
* type FPSModeType
* func FPSMode
* func SetFPSMode
* func ScheduleFrame
and deprecates these APIs:
* func SetVsyncEnabled
* func IsVsyncEnabled
Closes #1556
2021-07-24 16:09:13 +09:00
Hajime Hoshi
fee004c28d
internal/uidriver/js: Remove unnecessary event handlers
2021-07-23 11:23:01 +09:00
Hajime Hoshi
0ec5b7b857
internal/uidriver/js: Bug fix: Suppress warnings on SetFullscreen
...
Closes #1727
2021-07-23 02:15:46 +09:00
Hajime Hoshi
2503323557
internal/driver: Add FPSMode
...
Updates #1556
2021-07-23 00:47:09 +09:00
Hajime Hoshi
c28bcc26fc
internal/clock: Rename UncappedTPS -> SyncWithFPS
...
Closes #1726
2021-07-22 22:46:24 +09:00
Hajime Hoshi
50320eeb5b
internal/glfw: Bug fix: Crash after disconnecting a gamepad on Windows (Wine)
2021-07-21 17:50:47 +09:00
Hajime Hoshi
d7bedd165a
internal/driver: Bug fix: Compile error for browsers
2021-07-21 17:20:09 +09:00
Hajime Hoshi
93a156a718
internal/uidriver/glfw: Use glfwGameGamepadState
...
This change replaces the usage of gamepaddb package with glfwGetGamepadState.
Updates #1557
2021-07-21 16:09:30 +09:00
Hajime Hoshi
ee4ec5047e
internal/gamepaddb: Support general XInput devices
2021-07-21 14:38:47 +09:00
Hajime Hoshi
1fce527414
internal/uidriver/js: Use the same gamepad API on go2cpp
2021-07-20 23:10:56 +09:00
Hajime Hoshi
8656786721
internal/uidriver/js: Refactoring: Detect the standard layout at update
2021-07-20 21:56:15 +09:00
Hajime Hoshi
f192971080
ebiten: Rename HasGamepadStandardLayoutMapping -> IsStandardGamepadLayoutAvailable
...
Updates #1557
2021-07-20 02:46:12 +09:00
Hajime Hoshi
aa694be6f6
ebiten: Add the standard gamepad layout
...
This change introduces the standard gamepad layout. This changes adds
these APIs:
* func HasGamepadStandardLayoutMapping
* func IsGamepadStandardButtonPressed
* func GamepadStandardAxisValue
* type StandardGamepadButton
* type StandardGamepadAxis
The standard gamepad layout is based on the web standard. See
https://www.w3.org/TR/gamepad/#remapping .
On desktops, the SDL's gamecontrllerdb.txt is used. If the gamepad is
listed in the text file, the mapping works. GLFW's mapping featrue is
not used.
On browsers, the property of a gamepad 'mapping' is used. When the
mapping value is 'standard', the gamepad is recognized to have the
standard mapping.
On mobiles, the implementation is still WIP.
Updates #1557
2021-07-20 01:32:28 +09:00
Hajime Hoshi
fcfdf9b2ba
Update URLs
2021-07-19 23:09:27 +09:00
Hajime Hoshi
a6fe7801ff
internal/uidriver/glfw: Rename gamePad -> gamepad
2021-07-19 22:25:43 +09:00
Hajime Hoshi
dbcb220742
ebiten: Add GamepadAxisValue replacing GamepadAxis
...
Updates #1718
Closes #1719
2021-07-19 01:22:35 +09:00
Hajime Hoshi
342bf6ae7e
Update GLFW: suppress joystick issue at PollEvents
...
Updates #1229
2021-07-15 11:19:39 +09:00
Hajime Hoshi
ec5b034cbf
Update GLFW: suppress joystick issue (again)
...
Updates #1229
2021-07-15 01:02:57 +09:00
Hajime Hoshi
66dbca7fdd
Update GLFW: suppress joystick issue
...
Updates #1229
2021-07-14 23:54:48 +09:00
Hajime Hoshi
50d2d7ed61
internal/graphicsdriver/opengl: Remove unused code using PBO
...
Updates #1678
2021-07-14 21:51:27 +09:00
Hajime Hoshi
99a6b1b03e
internal/driver: Change some functions to Append*
...
Updates #1692
2021-07-10 01:52:21 +09:00
Hajime Hoshi
5d2c8ad9be
internal/uidriver/mobile: Bug fix: Use mutex at RuneBuffers
2021-07-10 01:39:32 +09:00
Hajime Hoshi
853c1f2b92
internal/shaderir/glsl: Bug fix: Remove uncalled functions
...
Some built-in functions like dFdx is not available in a vertex shader,
then a function that calls such built-in function should not be in
a vertex shader.
Closes #1701
2021-07-09 20:22:40 +09:00
Hajime Hoshi
b0106e95b9
internal/restorable: Bug fix: Test failed on macOS (Metal)
2021-07-09 20:21:04 +09:00
Hajime Hoshi
4573883b03
internal/graphicsdriver/metal: Make FPS stable by 'presentsWithTransaction'
...
Closes #1196
2021-07-08 18:11:19 +09:00
Hajime Hoshi
ae0e30196b
internal/graphicsdriver/metal: Bug fix: The store action must always be 'store'
...
Closes #1700
2021-07-08 17:39:37 +09:00
Hajime Hoshi
337d8d5113
internal/graphicsdriver/metal: Separate GCing the buffers
...
Updates #1196
2021-07-08 02:10:26 +09:00
Hajime Hoshi
edc2f8b961
internal/graphicsdriver/metal: Delay to get a texture for nextDrawable
...
See https://developer.apple.com/documentation/quartzcore/cametallayer
> To avoid stalls in your app, request a new drawable only when you
> need it, and release any references to it as quickly as possible
> after you’re done with it.
Updates #1196
2021-07-08 01:56:14 +09:00
Hajime Hoshi
b314b6b9b6
Revert "internal/graphicsdriver/metal: Do not retain MTLCommandBuffer for MTLBuffer"
...
This reverts commit e0fbfc2bb0
.
Reason: Rendering issue
Closes #1699
2021-07-08 00:27:33 +09:00
Hajime Hoshi
6213c17abc
internal/driver: Add Graphics.Initialize
2021-07-07 13:58:42 +09:00
Hajime Hoshi
519363930a
internal/uidriver/glfw: Bug fix: Memory leak in Objective-C code
...
Use an autorelease pool block.
Closes #1698
2021-07-07 04:34:21 +09:00
Hajime Hoshi
e0fbfc2bb0
internal/graphicsdriver/metal: Do not retain MTLCommandBuffer for MTLBuffer
...
Before this change, a command buffer is retained indirectly by
a buffer, and this might extend the life of drawable unexpectedly.
This change stops using command buffers as a key of the buffers pool,
and use a counter increated by nextDrawable calls.
Updates #1196
2021-07-07 02:52:04 +09:00
Hajime Hoshi
80ac0646d5
internal/graphicsdriver/metal: Optimize the screen writing
2021-07-07 02:07:09 +09:00
Hajime Hoshi
5e83f409e6
internal/graphicscommand: Add a missing colon to a command string
2021-07-07 01:54:22 +09:00
Hajime Hoshi
38ce325958
internal/graphicsdriver/metal: Skip clearing the screen on Metal
2021-07-07 01:45:51 +09:00
Hajime Hoshi
9cb1ff9cea
internal/graphicsdriver/metal: Set framebufferOnly true
...
Updates #1196
2021-07-07 00:38:55 +09:00
Hajime Hoshi
bd3f16dbba
internal/graphicsdriver/metal: Change the order of GCed buffers
...
As a big buffer is likely reused, we should remove smaller buffers
first.
Updates #1196
2021-07-06 21:56:27 +09:00
Hajime Hoshi
09bd8b6f4a
internal/graphicsdriver/metal: Remove println
...
Updates #1196
2021-07-06 21:51:57 +09:00
Hajime Hoshi
ee2f891fcc
internal/graphicsdriver/metal: Reuse MTLBuffer objects
...
In Metal, MTLBuffer objects are not 'transient' and are expensive
to create. Reuse them whenever possible.
See also: https://developer.apple.com/library/archive/documentation/Miscellaneous/Conceptual/MetalProgrammingGuide/Cmd-Submiss/Cmd-Submiss.html
Updates #1196
2021-07-06 21:48:54 +09:00
Hajime Hoshi
be1a0e90e7
internal/graphicsdriver/metal: Bug fix: TestImageEvenOdd failed
...
RenderCommandEncoder must be reset whenever the stencil mode is
'prepareStencil' in order to clear the stencil buffer.
2021-07-06 15:11:23 +09:00
Hajime Hoshi
3670b7dd62
internal/graphicsdriver/metal: Reuse DepthStencilState objects
...
In Metal, *State objects are not 'transient' and are expensive to
create. Reuse them whenever possible.
See also: https://developer.apple.com/library/archive/documentation/Miscellaneous/Conceptual/MetalProgrammingGuide/Cmd-Submiss/Cmd-Submiss.html
2021-07-06 15:10:05 +09:00
Hajime Hoshi
ab26312108
internal/graphicsdriver/metal: Release objects appropriately
2021-07-06 14:20:19 +09:00
Hajime Hoshi
17d8cb5311
internal/graphicsdriver/metal: Bug fix: Crashed with METAL_DEVICE_WRAPPER_TYPE=1
...
Closes #1697
2021-07-06 14:06:06 +09:00
Hajime Hoshi
59fa689f22
internal/graphicscommand: Misspelling
2021-07-05 23:32:19 +09:00
Hajime Hoshi
5e1d6c06f1
internal/graphicscommand: Merge even-odd draw-triangles commands when possible
...
Closes #1685
2021-07-05 23:28:33 +09:00
Hajime Hoshi
63a00f6171
internal/graphicsdriver/metal/mtl: Bug fix: Test failure
...
Closes #1696
2021-07-05 21:28:25 +09:00
Hajime Hoshi
92b3dab33c
internal/graphicscommand: Refactoring: Use type assesion instead of interface
...
This was an optimization in GopherJS era. This change removes this
to simplify the implementation.
2021-07-05 21:16:04 +09:00
Hajime Hoshi
b2d4521e22
internal/graphicscommand: Log 'even-odd' property
2021-07-05 19:35:34 +09:00
Hajime Hoshi
674802d2f5
ebiten: Bug fix: Draw commands with EvenOdd should not be merged
...
Updates #1684
2021-07-05 18:08:55 +09:00
Hajime Hoshi
daa883d799
ebiten: Bug fix: Stencil buffers should not be cleared until all the vertices are rendered
...
Updates #1684
2021-07-05 17:41:06 +09:00
Hajime Hoshi
b466a0cbd7
ebiten: Add EvenOdd to DrawTrianglesOptions and DrawShaderTrianglesOptions
...
Updates #844
Closes #1684
2021-07-05 03:35:55 +09:00
Hajime Hoshi
5c4d3325f6
internal/graphicsdriver/opengl: Add APIs for stencil buffers
...
Updates #1684
2021-07-05 00:24:44 +09:00
Hajime Hoshi
b8bf277825
internal/graphicsdriver/metal/mtl: Add APIs for stencil buffers
...
Updates #1684
2021-07-05 00:11:25 +09:00
Hajime Hoshi
19f034e818
internal/graphicsdriver/metal: Refactoring
2021-07-04 20:35:56 +09:00
Hajime Hoshi
3ec02f767b
internal/graphicsdriver/metal: Refactoring
2021-07-04 18:37:14 +09:00
Hajime Hoshi
7f86761dde
internal/graphicsdriver/metal: Reuse RenderCommandEncoder when possible
2021-07-04 18:13:18 +09:00
Hajime Hoshi
7668052a6b
internal/graphicsdriver/metal: Update the view only when necessary
2021-07-04 17:24:39 +09:00
Hajime Hoshi
f6e210e086
internal/graphicsdriver/opengl: Refactoring: Remove redundant conversions
2021-07-03 22:39:48 +09:00
Hajime Hoshi
b0b7a24f89
internal/uidriver: Remove invalid comments
2021-07-03 19:49:12 +09:00
Hajime Hoshi
56f4e6b2d0
internal/graphicsdriver/opengl: Refactoring: Rename a variable
2021-07-03 02:41:37 +09:00
Hajime Hoshi
269ea7c489
internal/graphicsdriver/opengl: Refactoring: Reorder functions
...
glPixelStorei affects the result of glTexImage2D. This change makes
this fact more explicit.
2021-07-03 02:09:47 +09:00
Hajime Hoshi
6b95dd0d4d
internal/graphicsdriver/metal: Refactoring: Unify two drawTriangles* functions
2021-07-02 00:25:43 +09:00
Hajime Hoshi
ff2dd6fe7e
internal/graphicsdriver/opengl: Refactoring: Unify two drawTriangles* functions
2021-07-02 00:02:21 +09:00
Hajime Hoshi
e9b6237f61
internal/driver: Refactoring: Merge two Draw* functions
2021-07-01 15:55:48 +09:00
Hajime Hoshi
b9d52c0267
internal/driver: Change InvalidImageID/InvalidShaderID to 0
2021-07-01 14:58:55 +09:00
Hajime Hoshi
73bf1f36e5
internal/driver: Define InvalidImageID / InvalidShaderID
2021-07-01 13:56:42 +09:00
Enrico
3ef1d04935
internal/uidriver/glfw: Bug fix: do not execute loop function if init failed ( #1689 )
...
In `internal/uidriver/glfw/run_notsinglethread.go`, if the `UserInterface.init()` function returns an error, the `loop` is
executed regardless and the error is discarded. This behavior will hide the error returned by `init()` and might trigger
some crashes (see #1688 ).
A partial fix was implemented in 6c4edf8
, however that commit alone is not enough: the code now is correctly returning
the error via the `ch` channel, but it still executes the `loop()` function. This merge request skips `loop()` call if `init()`
had an error.
Updates #1688
2021-06-29 23:51:25 +09:00
Hajime Hoshi
6c4edf8605
internal/uidriver/glfw: Bug fix: Abort the game immediately on error
...
Updates #1688
2021-06-29 02:23:17 +09:00
Hajime Hoshi
9c5b7b56b2
internal/graphics: Reafctoring
2021-06-28 23:28:43 +09:00
Hajime Hoshi
817d176994
internal/graphicscommand: Misspelling at newShaderCommand.String
2021-06-27 23:20:27 +09:00
Hajime Hoshi
c725937cc6
internal/graphics: Reuse the vertices backend
...
This is basically a reland of 9cb631e30f
.
This change locks the vertices backend at the end-frame phase to
protect from vertices usages by other goroutines.
Updates #1546
Closes #1681
2021-06-27 02:31:01 +09:00