Hajime Hoshi
0c70823f27
graphics: Delay draw commands and execute them only when needed
...
This change introduces a queue for delayed graphics commands.
When an image's pixels are retrieved or the screen is rendered,
Ebiten calculates the set of the necessary draw commands and
execute them.
This reduces the number of draw calls especially for the launching
phase.
Fixes #921
2019-09-19 01:09:48 +09:00
Hajime Hoshi
464713f19d
graphics: Refactoring
2019-08-25 22:06:20 +09:00
Hajime Hoshi
3646e7930d
graphics: Bug fix: the flag and the enqueueing operation must be protected by a same mutex
...
It was theoretically possible that an item was enqueued even
though the flag said it should not.
2019-08-25 21:22:54 +09:00
Hajime Hoshi
fc939fabb8
graphics: Bug fix: Copy variables out of the closures
2019-08-25 21:06:44 +09:00
Hajime Hoshi
d2312f1450
shareable: Lock before BeginFrame
...
This make package shareable more consistent. The mutex is lock
after EndFrame and before BeginFrame, and the similar rule will be
applied at launching (BeginFrame unlocks the lock in any cases).
Instead, package ebiten queues image operations if BeginFrame and
doesn't create provisional non-shared images. This should improve
performance at launching since this reduces the number of draw
calls, especifally for creating new images.
Updates #879 .
Updates #921 .
2019-08-25 18:12:04 +09:00
Hajime Hoshi
3960a4bbdf
restorable: Add (*Image).Fill
...
This resets the infomation for restoring if possible. This makes
it more efficient to use offscreens.
2019-08-25 02:57:44 +09:00
Hajime Hoshi
b8eeded538
graphics: Remove 'resetRestoringState'
...
This is basically a revert of 2d079b123f
As filling can happen on a part of a shared image, resetting the
restoring state was wrong.
2019-08-25 02:18:51 +09:00
Hajime Hoshi
e931494c66
shareable: Allocate the screen framebuffer image lazily
...
This improves consistency.
2019-08-25 00:43:29 +09:00
Hajime Hoshi
ef56d0a535
Refactoring: isRunning -> isImageAvailable
2019-08-25 00:14:37 +09:00
Hajime Hoshi
c49815a2b2
docs: Update the link
2019-08-22 23:16:44 +09:00
Hajime Hoshi
07c484fa49
graphics: Fix documentation
2019-08-21 01:43:08 +09:00
Hajime Hoshi
42d7cce989
graphics: Update docs about (*Image).Dispose
...
Updates #920
2019-08-19 22:41:45 +09:00
Hajime Hoshi
215e9e5c66
graphics: Fix wrong comments
2019-07-31 01:58:54 +09:00
Hajime Hoshi
fc42af208d
graphics: Use 1x1 image for empty images
...
This change leaves some empty images for DrawTriangles.
2019-07-30 23:11:06 +09:00
Hajime Hoshi
b210339786
graphics: Use 'negative' mipmap when enlarging a too small image
...
This is a hack to render edges correctly.
This works only when the filter is nearest.
Fixes #611
2019-07-30 23:03:55 +09:00
Hajime Hoshi
2d079b123f
restorable: Add ResetRestoringState to reset the state
...
After Fill command, the image doesn't have to keep the restoring
information. Now Fill command is as same as DrawTriangles, there
is no way for restorable.Image to know whether it can reset the
state or not. ResetRestoringState clears the state explicitly.
2019-07-20 14:04:02 +09:00
Hajime Hoshi
0dc1d0eba5
graphics: Clear/Fill is now implemented with DrawImage
...
Only clearing the screen still requires the special method.
2019-07-20 04:34:42 +09:00
Hajime Hoshi
801e0c4d47
graphics: Refactoring
2019-07-15 03:10:37 +09:00
Hajime Hoshi
e499535728
graphics: Move functions to the package ebiten
2019-06-26 22:23:09 +09:00
Hajime Hoshi
f40798b586
graphics: Move const definitions to driver package
...
Let's keep 'graphics' package as a package for utility functions
or testable functions as much as possible.
2019-06-26 01:05:13 +09:00
Hajime Hoshi
f48a72a43e
shareable: Refactoring: Remove PutQuadVertices
2019-06-22 21:13:44 +09:00
Hajime Hoshi
f3cdb0537b
graphics: Move the vertices backend to ebiten package
...
Now restorable/sharable packages cannot use the same vertices
backend, but I think this won't affect the performance
significantly.
2019-06-22 00:02:22 +09:00
Hajime Hoshi
3eee4754c5
graphics: Use the common vertices backend for PutVertex
2019-06-21 02:30:58 +09:00
Hajime Hoshi
008de78cec
graphics: Refactoring: Change QuadVertices -> PutQuadVertices for consistency
2019-06-21 02:20:31 +09:00
Hajime Hoshi
5c93462a9d
graphics: Refactoring: Merge DrawImage and drawImage
2019-06-12 23:54:59 +09:00
Hajime Hoshi
cc8e8aef19
graphics: Bounds doesn't work when the image is disposed
2019-05-11 22:44:52 +09:00
Hajime Hoshi
6022d8856e
graphics: Bug fix: level must be >= 0
...
There was a cache that level can be negative. This change fixes
this.
2019-04-25 02:49:59 +09:00
Hajime Hoshi
cce41e8152
graphics: Rename DrawImage -> DrawTriangles for consistency
2019-04-22 23:12:36 +09:00
Hajime Hoshi
c8cc98e307
graphics: Fix documents about At
2019-04-11 14:12:22 -07:00
Hajime Hoshi
61156dd90e
graphics: Rename pixelsToSet -> pendingPixels
2019-04-11 14:02:41 -07:00
Hajime Hoshi
3cb9d18fc4
graphics: Bug fix: Too small mipmap
...
Bug: #839
2019-04-07 05:29:46 +09:00
Hajime Hoshi
5195161253
graphics: Remove SetFinalizer at Image
...
Package shareable should take care of this.
Finalizers are called at arbitrary timing in a different goroutine
and might cause tough problems. This might be related to #821 .
2019-02-22 11:08:34 +09:00
Hajime Hoshi
6c47e31f49
graphics: Do nothing at Dispose of a subimage
2019-02-22 00:08:19 +09:00
Hajime Hoshi
9595f7ae26
graphics: Refactoring: Use a value type of bounds instead of a pointer
2019-02-21 23:51:05 +09:00
Hajime Hoshi
5ed6565d1d
graphics: Bug fix: SubImage's SubImage's bounds was wrong
2019-02-21 23:44:57 +09:00
Hajime Hoshi
8f133c443e
graphics: Change the definition of isSubImage
2019-02-21 23:27:40 +09:00
Hajime Hoshi
75a0d109be
graphics: Rename isSubimage -> isSubImage
2019-02-21 23:24:02 +09:00
Hajime Hoshi
8934f8296f
graphics: Bug fix: Don't touch pixelsToSet when disposing a subimage
...
This change also removes finalizer for subimages since this is not
necessary.
Fixes #823
2019-02-21 23:07:11 +09:00
Hajime Hoshi
ef31a6bb21
graphics: Update comments about makeVolatile
2019-02-13 09:47:30 +09:00
Hajime Hoshi
83da4ea112
graphics: Forbid mipmap for a volatile image explicitly
2019-02-13 01:58:08 +09:00
Hajime Hoshi
5990da4844
graphics: Add makeVolatile instead of newVolatileImage
2019-02-13 00:41:26 +09:00
Hajime Hoshi
5fed3d3bed
shareable: Add MakeVolatile
2019-02-13 00:41:24 +09:00
Hajime Hoshi
b962d58097
graphics: Fix comments
2019-02-12 14:36:06 +09:00
Hajime Hoshi
a3eddeb50f
Improve panic messages
2019-02-06 23:43:03 -10:00
Jake Bentvelzen
4cb79888fe
graphics: Clear mipmap map to avoid unnecessary allocation ( #799 )
...
This change uses a pattern that Go 1.11+ compilers can optimize to a clear operation
https://github.com/golang/go/blob/master/doc/go1.11.html#L447
2019-01-27 21:30:30 +09:00
Hajime Hoshi
b5ee209e0b
graphics: Bug fix: Filter was not used when SourceRect is used
2019-01-24 14:22:53 +09:00
Hajime Hoshi
15b13c8b62
graphics: Fix comments to be more precise
2019-01-22 00:18:32 +09:00
Hajime Hoshi
8f3ef39d74
graphics: Fix some comments to adjust 80 chars in one line
2019-01-21 11:58:41 +09:00
Hajime Hoshi
29211238d3
graphics: Misspelling again
2019-01-21 11:24:43 +09:00
Hajime Hoshi
234f29e5f6
graphics: Misspelling
2019-01-21 11:22:35 +09:00
Hajime Hoshi
92d6c6bc58
graphics: Fix documents about DrawImage and ColorM
2019-01-21 11:19:23 +09:00
Hajime Hoshi
aa2919ada4
graphics: Add comments about DrawImage
2019-01-20 03:27:02 +09:00
Hajime Hoshi
10cb0bba5f
graphics: Add documentation about texture atlas size
2019-01-19 22:14:50 +09:00
Hajime Hoshi
c1c0306471
graphics: Update the document about DrawImage
2019-01-19 22:14:04 +09:00
Hajime Hoshi
58cc5cb105
graphics: Better error message for At and Set ( #790 )
2019-01-19 02:59:22 +09:00
Hajime Hoshi
dd59d8ae6e
Fix comments
2019-01-19 02:30:06 +09:00
Hajime Hoshi
107dfe5074
graphics: Improve Set speed
...
On GopherJS, copying a struct is very heavy. This change avoids
copying (color) structs when possible.
2019-01-14 04:25:43 +09:00
Hajime Hoshi
6b110bf99e
graphics: Better implementation of Set
2019-01-14 04:07:26 +09:00
Hajime Hoshi
128e99b6af
graphics: Implement (*Image).Set
2019-01-14 02:25:36 +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
ea9eac0461
graphics: Add explicit types for documents (godoc.org)
2018-12-24 19:36:41 +09:00
Hajime Hoshi
f1582c2d73
graphics: Add Address representing a sampler address mode
...
Fixes #761
2018-12-24 17:29:31 +09:00
Hajime Hoshi
529cd3376b
graphics: Fix comments about Vertex
2018-12-23 06:14:35 +09:00
Hajime Hoshi
189b8a17e9
graphics: Use source-border check even at DrawTriangles
...
DrawTriangles can now take a sub-image.
2018-12-23 03:24:39 +09:00
Hajime Hoshi
1a54ff34e6
graphics: Forbid nil at ReplacePixels explicitly
2018-11-28 22:26:34 +01:00
Hajime Hoshi
b48d501bc0
graphics: Explicit limitation of indices at DrawTriangles
...
Fixes #728
2018-11-23 19:02:10 +09:00
Hajime Hoshi
7586c660d5
graphics: Change the number of floats for a vertex from 10 to 12
...
This is a preparation for Metal, that forces 4 floats for a vertex
position.
2018-11-17 15:30:11 +09:00
Hajime Hoshi
dfb63852c2
graphics: Refactoring
2018-11-09 01:40:05 +09:00
Hajime Hoshi
9f0d14dd05
graphics: Add tests for #732
2018-11-09 00:48:21 +09:00
Hajime Hoshi
f54bdfa159
Reland: graphics: Bug fix: a sub image's Size was wrong
...
Size() usages are also fixed.
Fixes #732
2018-11-08 12:58:14 +09:00
Hajime Hoshi
27331024af
Revert "graphics: Bug fix: a sub image's Size was wrong"
...
This reverts commit 76ac850f6b
.
Reason: This breaks many examples
2018-11-08 12:19:38 +09:00
Hajime Hoshi
76ac850f6b
graphics: Bug fix: a sub image's Size was wrong
...
Fixes #732
2018-11-08 04:22:19 +09:00
seebs
74e204d952
graphics: Speed up DrawTriangles ( #723 )
...
DrawTriangles is expensive and slow because of massive memory
allocation and garbage collection costs. This patch moves from ~47TPS
on my laptop (with ~24k triangles) to 60TPS. The first part
is just allocating the right size of vertex buffer up front; that
got to about 55TPS. The second part replaces the frequent
allocations of []float32 in Vertex() calls with writing the
desired values into a provided destination slice.
Time spent in drawing triangles for 1,000 frames:
13.07s baseline
11.09s preallocate whole buffer to avoid resizing
6.13s use new PutVertex function
This might need some cleanup, but I think it's good evidence that
the design change is viable.
2018-10-31 10:53:17 +09:00
Hajime Hoshi
ec92f61a3e
graphics: Misspelling
2018-10-29 02:05:59 +09:00
Hajime Hoshi
27ee54b008
graphics: Forbid using a subimage at DrawTriangles ( #727 )
2018-10-29 01:37:59 +09:00
Hajime Hoshi
ce1c616f69
Merge graphics and graphicsutil
2018-10-28 23:03:06 +09:00
Hajime Hoshi
ff54d3b681
Move CompositeMode to graphics package
2018-10-28 21:49:47 +09:00
Hajime Hoshi
06f2052817
Add graphics package and move Filter to graphics
2018-10-28 20:25:52 +09:00
Hajime Hoshi
2da5192510
Rename graphics -> graphicscommand
2018-10-28 20:10:05 +09:00
Hajime Hoshi
3349a2c520
graphics: Add comments
2018-10-28 19:41:39 +09:00
Hajime Hoshi
781554ecb9
graphics: Refactoring
2018-10-28 19:35:01 +09:00
Hajime Hoshi
710f56531f
graphics: Experimental: (*image.Image).SubImage
...
Fixes #722
2018-10-28 02:19:14 +09:00
Hajime Hoshi
41877bba0b
graphics: Add image state check at DrawTriangles
2018-10-28 01:43:28 +09:00
Hajime Hoshi
170f0fcaa9
graphics: Refactoring
2018-10-28 01:39:58 +09:00
Hajime Hoshi
5f04f05cb1
graphics: Add comments
2018-10-26 03:29:20 +09:00
Hajime Hoshi
d3bd858aba
graphics: Bug fix: Mipmap was not invalidated at DrawTriangle
...
Fixes #725
2018-10-26 02:08:18 +09:00
Hajime Hoshi
8b82667df1
graphics: Bug fix: Violating edge pixels with linear filter
...
Fixes #724
2018-10-26 00:48:51 +09:00
Hajime Hoshi
58f4feda8d
graphics: Refactoring (preparing SubImage)
2018-10-25 12:48:24 +09:00
Hajime Hoshi
765af5a7af
gofmt -s -w
2018-10-25 12:47:27 +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
022c40aa17
graphics: Move creating mipmap logic to shareableImages
2018-10-25 01:35:34 +09:00
Hajime Hoshi
4cd3e3ae30
Update go.mod/go.sum
2018-10-24 01:16:17 +09:00
Hajime Hoshi
7494b19dea
graphics: Refactoring: Add shareableImages struct
2018-10-24 01:09:59 +09:00
Hajime Hoshi
5e09da1298
graphics: Bug fix: don't apply color matrix when creating mipmap images
...
TODO: Add tests.
Fixes #710
2018-10-11 02:34:07 +09:00
Yuval Langer
8ba787522f
Fix minor typo ( #706 )
2018-10-09 03:19:27 +09:00
Hajime Hoshi
8772d310fe
Revert "Revert "graphics: Fix documentation about DrawImage""
...
This reverts commit f16c7cb90d
.
Reason: Oops, I reverted a wrong commit
2018-08-14 12:27:18 +09:00
Hajime Hoshi
f16c7cb90d
Revert "graphics: Fix documentation about DrawImage"
...
This reverts commit 610bf6e39f
.
Reason: This caused a new black line at the bottom (macOS).
2018-08-14 12:26:28 +09:00
Hajime Hoshi
2360b2930f
graphics: Add DrawTriangles
...
Fixes #624
2018-08-14 01:23:14 +09:00
Hajime Hoshi
610bf6e39f
graphics: Fix documentation about DrawImage
2018-08-11 02:14:37 +09:00
Hajime Hoshi
690c3cf981
graphics: Embed 'scale' part of the color matrix
...
If the color matrix includes only 'scale' part, they are embedded
into vertices in order to reduce draw calls.
Fixes #662
2018-08-10 23:20:55 +09:00
Hajime Hoshi
3daaef2cab
restorable: Refactoring: Use ReplacePixels(nil, ...) for clearing an image
2018-08-09 01:16:46 +09:00
Hajime Hoshi
c68c36b0b7
restoreable: Add ClearState to clear the state explicitly
...
Fixes #566
2018-08-09 00:12:45 +09:00
Hajime Hoshi
77e905eb25
Revert "graphics: Embed color matrices values to vertices ( #655 )"
...
This reverts commit 5a9235aaf9
.
2018-08-06 01:44:31 +09:00
Hajime Hoshi
bf19f902af
Revert "graphics: Fix DrawImage comment"
...
This reverts commit 8e6314f856
.
2018-08-06 01:44:31 +09:00
Hajime Hoshi
bac0431c9f
graphics: Simplify mipmap calculation
2018-08-03 00:02:49 +09:00
Hajime Hoshi
5c201af311
graphics: Bug fix: compile error
2018-07-31 01:56:59 +09:00
Hajime Hoshi
0956ca0ea6
graphicsutil: Add MipmapLevel
2018-07-31 01:47:03 +09:00
Hajime Hoshi
b8ab1363d2
graphics: Bug fix: mipmap level calculation
2018-07-31 01:02:09 +09:00
Hajime Hoshi
d7d02e6d6a
Reland: graphics: mipmap images should be volatile when the base image is volatile
...
This is not a bug fix, but should improve performance.
2018-07-30 00:26:36 +09:00
Hajime Hoshi
20c8d7317c
graphics: Add comments
2018-07-30 00:02:03 +09:00
Hajime Hoshi
5be58086b5
Revert "graphics: Bug fix: mipmap images should be volatile when the base image is volatile"
...
This reverts commit 0f82330009
.
2018-07-29 23:58:46 +09:00
Hajime Hoshi
0f82330009
graphics: Bug fix: mipmap images should be volatile when the base image is volatile
2018-07-29 23:54:46 +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
8e6314f856
graphics: Fix DrawImage comment
2018-07-26 11:40:01 +09:00
Hajime Hoshi
5a9235aaf9
graphics: Embed color matrices values to vertices ( #655 )
...
Fixes #531
2018-07-26 11:37:27 +09:00
Hajime Hoshi
5249afc06b
graphicsutil: Add QuadIndices
2018-07-21 03:40:37 +09:00
Hajime Hoshi
2e7745044d
shareable: Fix Image.DrawImage to accept vertices and indices
2018-07-21 03:30:27 +09:00
Hajime Hoshi
6c8b7f8e9c
graphics: Refactoring: Reduce error propagations
2018-07-12 03:08:50 +09:00
Hajime Hoshi
840c4d24df
graphicsutil: Accept matrix parameters directly for performance
2018-06-19 00:19:32 +09:00
Hajime Hoshi
ac24a8382f
graphicsutil: Extract matrix applying for performance
2018-06-17 19:45:09 +09:00
Hajime Hoshi
95561bbf6b
affine: Use float32 values for GeoM
...
float32 was slow on GopherJS, but not slow on Wasm.
2018-06-17 15:38:10 +09:00
Hajime Hoshi
b4ace53596
affine: Remove GeoM to avoid GeoM allocations on the heap
2018-06-17 00:59:50 +09:00
Hajime Hoshi
e53fa53f7d
graphics: Prefer ReplacePixels to DrawImage for small images
2018-05-03 11:52:04 +09:00
Hajime Hoshi
4d3d407205
graphics: Add comments to At
2018-05-01 18:07:52 +09:00
Hajime Hoshi
63c33b24df
graphics: Refactoring
2018-04-16 01:51:32 +09:00
Hajime Hoshi
008ed26276
graphics: Check isDisposed at (*Image).Clear and Fill
2018-04-08 01:39:06 +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
abdfb3b713
graphics: Initialize (*Image).addr asap not to rely on the fact that fill is called
2018-04-06 00:35:18 +09:00
Hajime Hoshi
af0d6d7a48
graphics: Remove GuaranteedMaxImageSize
2018-04-03 22:59:19 +09:00
Hajime Hoshi
a36ea971b4
examples/airship: Improve z values
2018-03-12 03:18:07 +09:00
Hajime Hoshi
a335b0c5a3
graphics: Fix comments about MaxImageSize
2018-03-12 02:01:30 +09:00
Hajime Hoshi
ee7ef75b8b
graphics: Add explanation to SourceRect
2018-03-11 21:33:55 +09:00
Hajime Hoshi
a2d6ae7eee
shareable: Rename ImagePart -> Image
2018-03-11 00:05:06 +09:00
Hajime Hoshi
df3960a97c
Add internal/shareable
2018-03-10 23:59:26 +09:00
Hajime Hoshi
1556db74fa
graphics: Rename sharedImage -> shareableImage
2018-03-10 23:39:06 +09:00
Hajime Hoshi
9d0ea5c241
graphics: Refactoring: Remove (*sharedImagePart).region() usages from *Image
2018-03-10 23:36:07 +09:00
Hajime Hoshi
26f4999ddd
graphics: Refactoring: Remove (*sharedImagePart).image()
2018-03-10 23:27:16 +09:00
Hajime Hoshi
afda41a5ed
graphics: Refactoring: Remove (*Image).restorable
2018-03-10 23:18:50 +09:00
Hajime Hoshi
df9c67d5db
graphcis: Refactoring: (*Image).Size()
2018-03-10 19:46:46 +09:00
Hajime Hoshi
75049c4048
graphcis: Refactoring
2018-03-10 19:40:18 +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
0418ce0761
graphics: Refactoring: Remove duplication of checking image size
2018-03-09 11:04:02 +09:00
Hajime Hoshi
00d8e793d9
restorable: Remove MaxImageSize
2018-03-09 02:50:38 +09:00
Hajime Hoshi
bc8a96eda7
graphicsutil: Avoid duplicated copying
...
Fixes #521
2018-03-09 01:00:23 +09:00
Hajime Hoshi
24dcaf7f28
graphcis: Fix comments
2018-03-04 03:07:06 +09:00
Hajime Hoshi
d944d51c14
graphics: Now images from NewImage also shares a texture
2018-03-03 21:01:25 +09:00
Hajime Hoshi
4b4404bc7e
graphics: Ensure the image is not disposed when restorableImage() is called
2018-03-03 20:36:33 +09:00
Hajime Hoshi
caf4e9504f
graphics: ReplacePixels should work on shared textures
2018-03-03 20:35:44 +09:00
Hajime Hoshi
4ae9d5780c
graphics: Implement shared texture ( #514 )
2018-03-03 19:54:53 +09:00
Hajime Hoshi
d5bca2d499
graphics: Bug fix: (*Image).At must return color.RGBA type value
2018-03-03 18:51:52 +09:00
Hajime Hoshi
046a6cd014
graphics: Swap error checking
2018-03-02 23:59:04 +09:00
Hajime Hoshi
247cd6e1c3
Add graphicsutil package
2018-03-02 12:34:56 +09:00
Hajime Hoshi
d4112004b0
graphics: Move calculating source region from restorable package
2018-03-02 12:20:44 +09:00
Hajime Hoshi
127f6c09c8
graphics: Specify rect to glTexSubImage2D
2018-03-01 01:58:09 +09:00
Hajime Hoshi
9f6fd0db9a
graphics: Use the original width/height for glTexSubImage2D
2018-03-01 00:47:37 +09:00
Hajime Hoshi
9db042ae9e
graphics: Refactoring: easier way to clear framebuffer
2018-02-28 22:46:57 +09:00
Hajime Hoshi
8c8e512059
affine: User nillable pattern for ColorM
2018-02-28 02:14:06 +09:00
Hajime Hoshi
adbd0db765
restorable: Accept source rect and geom instead of vertices
2018-02-27 01:35:30 +09:00
Hajime Hoshi
2bd099014b
affine: Remove geoMImpl and use nillable pattern
2018-02-27 01:02:53 +09:00
Hajime Hoshi
9031a989ec
graphics: Add (*Image).isDisposed
2018-02-26 11:35:55 +09:00
Hajime Hoshi
ccfa8f7ef8
graphics: Refactoring: call (*Image).Size() funciton as much as possible
2018-02-26 02:46:30 +09:00
Hajime Hoshi
85b133dad0
graphics: Remove NewImageFromImage command
2018-02-25 23:22:49 +09:00
Hajime Hoshi
9adc1ac6a0
Revert "graphics: Refactoring: clearing framebuffer"
...
This reverts commit 58f5c9c1d0
.
Fixes #515
2018-02-25 22:04:04 +09:00
Hajime Hoshi
94c4cc35ab
graphics: Forbid copying Image objects
2018-02-25 21:55:46 +09:00
Hajime Hoshi
c7a733fb16
graphics: Refactoring: remove drawWithFittingScale
2018-02-25 03:12:33 +09:00
Hajime Hoshi
58f5c9c1d0
graphics: Refactoring: clearing framebuffer
2018-02-24 23:51:05 +09:00
Hajime Hoshi
a644e92298
restorable: Better calculation to clear restorable.Image
2018-02-24 21:16:30 +09:00
Hajime Hoshi
556b2ec31b
graphics: Implement Image.Fill with DrawImage
2018-02-24 05:28:50 +09:00
Hajime Hoshi
cf333775f2
Add examples/filter
2018-02-14 03:07:17 +09:00
Hajime Hoshi
6ef4bbde2d
graphics: Add FilterDefault; Make DrawImageOptions specify Filter ( #453 )
2018-02-14 02:59:44 +09:00
Hajime Hoshi
80596820cf
graphics: Replace []uint8 with []byte
2018-01-28 22:40:36 +09:00
Hajime Hoshi
94d54b7d2c
graphics: Add comments
2017-12-16 18:35:25 +09:00
Hajime Hoshi
d6878d6887
graphics: Remove one bound check from fragment shader ( #461 )
2017-12-16 01:33:35 +09:00
Hajime Hoshi
98532d8983
graphics: Add TestImageOutside
2017-12-14 00:25:35 +09:00
Hajime Hoshi
723d153800
Reland(2): graphics: Appropriate rendering of edges on linear filter
2017-12-12 00:03:01 +09:00
Hajime Hoshi
362d1c417f
Revert 'graphics: Appropriate rendering of edges on linear filter (Reland)' ( #458 )
2017-12-11 20:30:54 +09:00
Hajime Hoshi
1152439e65
graphics: Appropriate rendering of edges on linear filter (Reland)
...
Fixes #456
2017-12-07 02:26:16 +09:00
Hajime Hoshi
8091aa5190
Revert 'graphics: Appropriate rendering of edges on linear filter' #456
2017-12-06 23:40:29 +09:00
Hajime Hoshi
bc0432f310
graphics: Appropriate rendering of edges on linear filter
...
Fixes #315
2017-12-06 21:40:24 +09:00
Hajime Hoshi
626b772b25
doc: Improve comments
2017-10-01 17:24:30 +09:00
Hajime Hoshi
a7fc463d91
doc: Improve comments
2017-10-01 03:15:50 +09:00
Hajime Hoshi
1995219b55
graphics: Add performance tips on DrawImage
2017-09-24 01:14:16 +09:00
Hajime Hoshi
e8acd9b6a2
graphics: Fix document
2017-09-23 18:15:31 +09:00
Hajime Hoshi
fc125eb531
graphics: Add comments
2017-09-16 15:49:29 +09:00
Hajime Hoshi
ccddf3c4ac
restorable: Refactoring: Remove arguments from NewImageFromImage
2017-09-15 00:51:17 +09:00
Hajime Hoshi
1fb7e123c2
Remove dependencies on internal/graphics from ebiten
2017-08-06 21:34:24 +09:00
Hajime Hoshi
c0ecb7a386
graphics: Move CopyImage to restorable
2017-08-06 21:21:38 +09:00
Hajime Hoshi
631264fce1
Add 'internal/math' package
2017-08-06 20:05:14 +09:00
Hajime Hoshi
d2d19d0764
doc: Fix comments
2017-07-23 05:46:32 +09:00
Hajime Hoshi
3a3a4af035
graphics: Avoid type assertions for Fill
2017-07-02 21:32:07 +09:00
Hajime Hoshi
c694851765
ui: Center the screen on fullscreen mode ( #374 )
2017-07-01 04:12:09 +09:00
Hajime Hoshi
1d60c009ed
ui: Bug fix: fullscreen scale calculation was wrong ( #267 )
2017-06-30 02:08:12 +09:00
Hajime Hoshi
b526aed817
graphics: VRAM -> GPU
2017-06-06 00:57:14 +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
c6c8ff22d7
graphics: Panic first when drawing the same image
2017-05-30 00:56:01 +09:00
Hajime Hoshi
de7215f3fc
graphics: Add DrawImageOptions.SourceRect
2017-05-28 00:49:44 +09:00
Hajime Hoshi
1b1b996817
graphics: Avoid copying ColorM
2017-05-27 16:17:49 +09:00
Hajime Hoshi
8b48d010ed
restorable: Refactoring
2017-05-03 23:24:00 +09:00
Hajime Hoshi
aa5c278445
restorable: Unexport add
2017-05-03 23:15:18 +09:00
Hajime Hoshi
ed4cd67fb3
graphics: finalizers must be reset when disposing
2017-05-03 23:15:03 +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
e8b155fefe
graphics: Remove duplicated runtime.SetFinalizer
2017-05-03 03:15:50 +09:00
Hajime Hoshi
f30b274c1f
graphics: Bug fix: Keep a restorable.Image before disposing
2017-05-03 03:13:22 +09:00
Hajime Hoshi
e8e502cc26
graphics: Bug fix: disposing check must be done before any operations
2017-05-03 03:07:45 +09:00
Hajime Hoshi
6be25d3297
graphics: Remove imageImpl
2017-05-03 02:52:42 +09:00
Hajime Hoshi
16b0c9186e
graphics: Refactoring: Reduce imageImpl's functions
2017-05-03 02:45:33 +09:00
Hajime Hoshi
858824821f
doc: Remove 'concurrent-safe' comments from most of non-global functions
2017-04-18 01:33:03 +09:00
Hajime Hoshi
a7d844ce5e
graphics: Add doc about error to struct Image ( #331 )
2017-03-04 02:30:10 +09:00
Hajime Hoshi
a3e14c9ddb
graphics: Image.ReplacePixels/Dispose always returns nil ( #331 )
2017-03-04 02:23:39 +09:00
Hajime Hoshi
b567a07d5f
graphics: DrawImage always returns nil ( #331 )
2017-03-04 01:33:43 +09:00
Hajime Hoshi
6ca71c6931
graphics: Errors of NewImage* are always nil ( #331 )
2017-03-04 01:22:51 +09:00
Hajime Hoshi
2c5ee99769
Simplify internal API not to return errors
2017-03-04 01:00:18 +09:00
Hajime Hoshi
7ba18a5d0d
graphics: Image.Clear/Fill now always return nil ( #331 )
2017-03-04 00:53:49 +09:00
Hajime Hoshi
1c7ce07edf
Simplify internal API not to return errors
2017-03-04 00:44:41 +09:00
Hajime Hoshi
147798e14d
Simplify internal API not to return errors
2017-03-03 23:59:44 +09:00
Hajime Hoshi
2b1dc69497
graphics: Document bug fix: DrawImage
2017-02-27 23:53:21 +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
07294a98b6
Move internal/graphics/opengl -> internal/opengl
2016-11-03 23:31:25 +09:00
Hajime Hoshi
2b2d6157c7
graphics: Skip resetPixelsIfDependingOn if possible
2016-10-28 02:54:09 +09:00
Hajime Hoshi
43e8349567
graphics: Remove imageImpl.width/height
2016-09-04 01:25:02 +09:00
Hajime Hoshi
02151e48ea
restorable: Remove Image()
2016-09-04 00:53:30 +09:00
Hajime Hoshi
fb3724a40e
graphics: Remove imageImpl.image member
2016-09-03 23:08:51 +09:00
Hajime Hoshi
8855df40e4
gprahics: Bug fix: Check if an image is disposed before resetting pixels (examples/windowsize crashes)
2016-07-28 01:17:57 +09:00
Hajime Hoshi
4ad5c65efe
graphics: Rename s/ensure/resolveStale/
2016-07-27 23:08:28 +09:00
Hajime Hoshi
5c56058d6e
pixels Rename s/history/dependency/
2016-07-27 01:28:16 +09:00
Hajime Hoshi
c5f3eaf925
graphics: Refactoring
2016-07-26 12:28:05 +09:00
Hajime Hoshi
0fc61ed568
pixels: Rename fuctions
2016-07-26 10:51:48 +09:00
Hajime Hoshi
c0eb01d69e
pixels: Rename s/flush/reset/
2016-07-25 09:10:51 +09:00
Hajime Hoshi
95dae4ad45
pixels: Remove 'inconsistent' property
2016-07-25 09:01:00 +09:00
Hajime Hoshi
3ea6033c3d
graphics: Don't ref *Image in pixels. Ref *graphics.Image instead
2016-07-24 06:22:33 +09:00
Hajime Hoshi
9bbd5e89c3
graphics: Bug fix: GL context is not available until graphics context is initialized
2016-07-24 06:02:04 +09:00
Hajime Hoshi
8d074ecc20
graphics: Add Pixel's 'inconsistent' state
2016-07-24 01:28:39 +09:00
Hajime Hoshi
75916490b7
graphics: Better name functions
2016-07-24 00:46:24 +09:00
Hajime Hoshi
2ba835373b
graphics: Refactoring: passing a GL context from the top level
2016-07-14 01:20:45 +09:00
Hajime Hoshi
1627176d59
graphics: Restoring by recording drawing-images history
2016-07-13 12:38:59 +09:00
Hajime Hoshi
ebe7f10af1
graphics: Make NewVolatileImage unexported
2016-07-12 01:58:10 +09:00
Hajime Hoshi
0c611d875b
graphics: Bug fix: glTexSubImage2D on Android now works ( #211 )
2016-07-10 05:59:21 +09:00
Hajime Hoshi
c7783b2ecf
graphics: Clear volatile images at the start of a frame
2016-07-06 01:30:49 +09:00
Hajime Hoshi
1fdfa5707a
graphics: Fix a comment
2016-07-05 11:43:47 +09:00
Hajime Hoshi
31d1af9740
graphics: Add NewVolatileImage ( #235 )
2016-07-05 03:40:40 +09:00
Hajime Hoshi
11e67d0eed
graphics: Refactoring
2016-07-05 03:15:32 +09:00
Hajime Hoshi
793aad2681
graphics: Rename restorePixels -> restore
2016-07-05 03:01:32 +09:00
Hajime Hoshi
7e296b1aae
graphics: Bug Fix: The screen image should be recreated
2016-07-05 02:57:41 +09:00
Hajime Hoshi
6cb1c929b5
graphics: Bug fix: Reset finalizer of *Image
2016-07-05 02:16:49 +09:00
Hajime Hoshi
760e1aa288
graphics: Add newImageImplFromImage; Rename theImages -> theImagesForRestoring
2016-07-05 01:34:40 +09:00
Hajime Hoshi
eac816ca47
graphics: Remove imageImpl.screen
2016-07-05 01:23:29 +09:00
Hajime Hoshi
085336d50f
graphics: Add newImageImpl
2016-07-05 00:24:06 +09:00
Hajime Hoshi
006f918b8e
graphics: Bug fix: Call theImages.add after initializing ( #242 )
2016-07-04 23:41:57 +09:00
Hajime Hoshi
d70bf66a59
graphics: Reduce imageM usages
2016-07-03 23:23:57 +09:00
Hajime Hoshi
86144a1cd6
opengl: Move members to variables
2016-07-03 18:23:19 +09:00
Hajime Hoshi
89fe69d564
graphics: Separate image.go into image.go and imageimpl.go
2016-07-03 14:42:28 +09:00
Hajime Hoshi
22655682fb
graphics: Smaller scope for the lock
2016-07-03 03:08:41 +09:00
Hajime Hoshi
5826a958e1
graphics: Add a comment
2016-07-03 02:47:12 +09:00
Hajime Hoshi
0519c69c13
graphics: Add Image.noSave
2016-07-03 01:08:47 +09:00
Hajime Hoshi
fb8b6e93e5
graphics: Add TestNewImageFromSubImage (not bug fix)
2016-07-02 23:24:43 +09:00
Hajime Hoshi
5e892b3887
graphics: Add a comment about bug #211
2016-07-01 18:27:01 +09:00
Hajime Hoshi
5eb77d2fb5
Remove 'default framebuffer' and add 'screen framebuffer' for iOS
2016-06-18 04:56:13 +09:00
Hajime Hoshi
3f18096e95
graphics: Refactoring: Remove unneeded function
2016-06-13 00:01:01 +09:00
Hajime Hoshi
a1fbf2cd2d
graphics: Remove 'Resume'
2016-06-12 23:54:36 +09:00
Hajime Hoshi
854fa6f32c
graphics: Bug fix: double disposing
2016-06-12 23:13:41 +09:00
Hajime Hoshi
2a0ca3c393
graphics: Set pixels at NewImageFromImage
2016-06-12 21:29:25 +09:00
Hajime Hoshi
ea440f5b17
graphics: Bug fix: Don't touch interface after locking
2016-06-12 21:19:54 +09:00
Hajime Hoshi
d99bfaf034
graphice: Dispose old images before restoring
2016-06-12 20:57:02 +09:00
Hajime Hoshi
bd60f6eb9b
graphics: Move locks before manipulating theImages
2016-06-12 17:48:08 +09:00
Hajime Hoshi
15e85398e2
graphics: Save pixels more aggressively
2016-06-12 17:12:37 +09:00
Hajime Hoshi
eca175e0f4
graphics: Add Image
2016-06-12 01:34:21 +09:00
Hajime Hoshi
32e773cf10
Refactoring
2016-06-12 00:47:44 +09:00
Hajime Hoshi
fabed66b4a
graphics: Remove delayedImageTasks
2016-06-12 00:32:35 +09:00
Hajime Hoshi
32c2cb3ead
graphics: Add commands to create textures/framebuffers
2016-06-12 00:23:26 +09:00
Hajime Hoshi
2a58c095b8
graphics: Add disposeCommand
2016-06-11 22:52:07 +09:00
Hajime Hoshi
b59206b777
graphics: Move command flushing to ebiten package
2016-06-11 21:50:13 +09:00
Hajime Hoshi
dfd4bc89ed
graphics: Revert FlushCommand execution
2016-06-11 20:21:14 +09:00
Hajime Hoshi
912d498cdf
graphics: Remove unused arguments
2016-06-11 05:48:09 +09:00
Hajime Hoshi
f897c3958e
graphics: Fix restoring logic
2016-06-11 01:25:03 +09:00
Hajime Hoshi
127cd4cab6
graphics: Remove 'evacuated' state
2016-06-11 01:13:38 +09:00
Hajime Hoshi
f71dcd3466
Remove 'Pause'
2016-06-11 00:57:10 +09:00
Hajime Hoshi
66e78922f8
graphics: Fix a comment
2016-06-07 23:50:01 +09:00
Hajime Hoshi
8d17d1876c
graphics: Revert transitionImageParts since this didn't affect the speed
2016-06-06 00:23:18 +09:00
Hajime Hoshi
33b50ed294
graphics: Reduce calls of glUniformMatrix4fv
2016-06-05 23:32:25 +09:00
Hajime Hoshi
1ccdfd9a35
graphics: Reduce a space line
2016-06-05 03:17:24 +09:00
Hajime Hoshi
4812f2e76e
graphics: Reduce calls of glUniformMatrix4fv
2016-06-05 00:35:58 +09:00
Hajime Hoshi
f6fd8f9c6d
graphics: Reduce calling glUseProgram
2016-05-29 22:40:51 +09:00
Hajime Hoshi
6d06b01cae
gomobile bind works
2016-05-22 04:25:15 +09:00
Hajime Hoshi
dbd6ed8139
graphics: Move theDelayedImageTasks.exec() to newImageWithZeroFramebuffer
2016-05-18 22:45:15 +09:00
Hajime Hoshi
a35064db7d
ui: Add ui.GLContext()
2016-05-18 11:10:03 +09:00
Hajime Hoshi
063ed564fd
Move the run loop to internal/loop
2016-05-18 10:59:37 +09:00
Hajime Hoshi
4d04413bf9
ui: Move the run loop to internal/ui
2016-05-18 10:46:23 +09:00
Hajime Hoshi
49a0fc839e
graphics: Fix a wrong comment
2016-05-17 01:38:31 +09:00
Hajime Hoshi
75b7a9134d
graphcis: Bug fix: Evacuating/Restoring pixels must be ignored on a disposed image
2016-05-17 01:30:40 +09:00
Hajime Hoshi
18c14f8897
graphics: Refactoring
2016-05-17 01:09:33 +09:00
Hajime Hoshi
7ab2efaa3f
graphics: Add imageImpl and change Image to be a wrapper (emulating weak refs)
2016-05-17 01:03:28 +09:00
Hajime Hoshi
23863d5a2f
graphics: Add Image.evacuatePixels and restorePixels and introduce images
2016-05-17 00:22:32 +09:00
Hajime Hoshi
fbd07b1865
graphics: Simplify the size of pixels
2016-05-16 12:27:28 +09:00