Commit Graph

205 Commits

Author SHA1 Message Date
Hajime Hoshi
a3eddeb50f Improve panic messages 2019-02-06 23:43:03 -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
1f4e593099 graphics: Add comments 2019-01-25 03:04:25 +09:00
Hajime Hoshi
18daa04173 Reland: graphics: Use math.Ceil for the screen framebuffer size (#622)
This is reland of 0b60471ac0.

I thought this didn't take any effect, but I confirmed this
actually fixed (part of) the blinking-line problem on Xperia XZ.
This fixes the upper side thin line. I'm not sure this fixes the
lower side thin line, which is reported but I couldn't reproduce.

I expect this and e829e650f2 will
fix the reported problem, and I am going to confirm this.
2019-01-25 02:50:55 +09:00
Hajime Hoshi
837571d05c graphics: Refactoring 2019-01-22 02:07:20 +09:00
Hajime Hoshi
4ce850df70 graphics: Bug fix: Resolve pixels before the screen is cleared
Fixes #792

Clearing the screen is so special on some environments (like macOS
Metal) that other operations on other images can be invalidated.

This fixes the issue by resolving the pixels of the offscreen that
is used as a render source for the screen before the screen is
cleared. We are not sure this is a correct way, but this actually
fixes the problem on macOS.
2019-01-22 01:44:51 +09:00
Hajime Hoshi
e829e650f2 graphics: Always clear the screen framebuffer
This fixes the issue on Xperia Z3, but not on Xperia XY
2019-01-18 12:21:01 +09:00
Hajime Hoshi
9da54db1d9 Revert "graphics: Use math.Ceil for the screen framebuffer size"
This reverts commit 0b60471ac0.

Reason: This doesn't have any effect.
2019-01-17 11:21:03 +09:00
Hajime Hoshi
0d84d8dccb Revert: graphics: Use an even number for screen height offset
This reverts a82201cfe8.

I think this change does not make sense.
2019-01-16 23:50:11 +09:00
Hajime Hoshi
0b60471ac0 graphics: Use math.Ceil for the screen framebuffer size
There are glitches on some mobile devices like Xperia. As the
screen framebuffer size might not fit with the actual GL surface
size, we guessed that is the cause of the glitches.

By using math.Ceil, the screen framebuffer will be a little bigger
and can cover the GL surface.
2019-01-16 23:41:52 +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
d5e6e6893e graphics: Refactoring 2019-01-13 00:56:33 +09:00
Hajime Hoshi
ff62876552 Add Metal implementation
Fixes #621
2018-12-20 02:37:10 +09:00
Hajime Hoshi
bc3ca38f76 opengl: Rename ResetGLState -> Reset and other functions 2018-11-01 03:02:08 +09:00
Hajime Hoshi
ce60f44490 graphics: Add (*mipmap).original() 2018-10-25 02:11:54 +09:00
Hajime Hoshi
15cad6ed9a graphics: Rename shareableImages -> mipmap 2018-10-25 02:05:25 +09:00
Hajime Hoshi
7494b19dea graphics: Refactoring: Add shareableImages struct 2018-10-24 01:09:59 +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
8827520d4a graphics: Bug fix: avoid jaggy rendering on macOS by adjusting texels (#669) 2018-08-30 00:17:03 +09:00
Hajime Hoshi
a82201cfe8 graphics: Use an even number for screen height offset
Fixes #622
2018-08-12 20:12:05 +09:00
Hajime Hoshi
9e9a05ee54 graphics: Remove redundant disposing images 2018-07-30 00:25:51 +09:00
Hajime Hoshi
c720c8e1cb graphics: Dispose mipmap images for the offscreen every frame 2018-07-30 00:03:34 +09:00
Hajime Hoshi
8a221a5774 graphics: Use mipmap images for minifying images with linear filter
Fixes #578
2018-07-29 23:33:49 +09:00
Hajime Hoshi
c98ec30c10 graphics: Add comments 2018-07-18 03:05:09 +09:00
Hajime Hoshi
0593b77eb8 ui: Implement CurrentTPS 2018-07-18 02:11:00 +09:00
Hajime Hoshi
e99f2f9f69 ui: Rename TPS -> MaxTPS 2018-07-17 22:41:27 +09:00
Hajime Hoshi
a7a1f6b4c6 ui: Rename SetTPS -> SetMaxTPS, Introduce UncappedTPS 2018-07-17 22:33:53 +09:00
Hajime Hoshi
3a8ca5ad73 ui: Implement TPS/SetTPS
Fixes #605
Fixes #321
2018-07-17 01:58:00 +09:00
Hajime Hoshi
1626e40822 Refactoring: Avoid using const FPS 2018-07-17 00:53:00 +09:00
Hajime Hoshi
18ec1d8265 internal/clock: Update takes FPS 2018-07-16 01:03:23 +09:00
Hajime Hoshi
aed0bf4a37 graphics: Check error at the end of the frame
The error should be raised as soon as possible.
2018-07-12 03:16:31 +09:00
Hajime Hoshi
6c8b7f8e9c graphics: Refactoring: Reduce error propagations 2018-07-12 03:08:50 +09:00
Hajime Hoshi
3cd9dfd800 Rename IsRunningSlowly to IsDrawingSkipped
Fixes #643
2018-07-10 22:31:26 +09:00
Hajime Hoshi
3136ef5fbd graphics: More exact scaling
This is related to #622
2018-06-08 00:07:39 +09:00
Hajime Hoshi
c62e63f874 graphics: Remove 'filter' argument from newVolatileImage (#503) 2018-04-06 03:34:14 +09:00
Hajime Hoshi
7b5ad46e49 shareable: NewImage* now returns a cleared image 2018-04-06 02:08:12 +09:00
Hajime Hoshi
87daa82ad9 graphics: Replace emptyImage with dummyImage (not initialized) 2018-04-06 00:49:49 +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
1b0e71765f internal/hooks: Rename Update -> BeforeUpdate 2018-03-15 02:50:10 +09:00
Hajime Hoshi
a2d6ae7eee shareable: Rename ImagePart -> Image 2018-03-11 00:05:06 +09:00
Hajime Hoshi
1556db74fa graphics: Rename sharedImage -> shareableImage 2018-03-10 23:39:06 +09:00
Hajime Hoshi
afda41a5ed graphics: Refactoring: Remove (*Image).restorable 2018-03-10 23:18:50 +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
5bfdc6d29a graphics: The screen filter might be heavy 2018-03-05 11:09:06 +09:00
Hajime Hoshi
f1d97a7758 graphics: Refactoring 2018-03-05 10:53:42 +09:00
Hajime Hoshi
dcb05fb9ad graphics: Remove unneeded 'Clear' on the screen framebuffer 2018-03-05 10:53:09 +09:00
Hajime Hoshi
d523229d9f graphics: Skip clearing the screen framebuffer 2018-03-05 02:59:52 +09:00
Hajime Hoshi
d0592d30e0 graphics: Improve clearing the offscreen performance 2018-03-02 01:55:40 +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
1c0f5e09d5 Revert "graphics: Bug fix: a too old frame was rendered at least on Android"
Reason: #525

This reverts commit deab21fad1.
2018-03-01 22:42:31 +09:00