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