summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Hermet Park [Sun, 17 May 2020 11:52:58 +0000 (20:52 +0900)]
test: update samples
fix some broken test code.
Change-Id: I42b0dd8b4c599ea59e0860a40b828936dca1e54d
Hermet Park [Sun, 17 May 2020 11:34:58 +0000 (20:34 +0900)]
test: update transform sample
Change-Id: I7f1416d9e32b241e50b7e2132764cac28d590a93
Hermet Park [Sun, 17 May 2020 07:50:19 +0000 (16:50 +0900)]
common: support Scene Transform
this contains testSceneTransform example
Change-Id: I460b05dc8bc4a842e26e950c800c5c35f8d3da7f
Hermet Park [Sun, 17 May 2020 05:54:55 +0000 (14:54 +0900)]
common shape: revise RenderTransform for Scene Transformation
This RenderTransform takes over all transform information.
Change-Id: I21b6a55de05feca56c40f3ff402d18445417463c
Hermet Park [Wed, 6 May 2020 02:56:17 +0000 (11:56 +0900)]
fix wrong flag operation.
just correct mistakes.
Change-Id: I8de0fe68cd298cacf3bdc951f67657095c5fa5fe
Hermet Park [Tue, 5 May 2020 16:37:50 +0000 (01:37 +0900)]
common shape: introduce transformation matrix
Paint supports translate, rotate, scale functions for transformation
The origin of these transformation is center of the paint,
thus you have to consider the center-aligned vertices if you'd like to use
these transformation functions.
This policy has been considered for scene transformation.
Change-Id: I78b63d7965faec0ec5b9a98a7776993744534b54
Hermet Park [Tue, 5 May 2020 11:38:26 +0000 (20:38 +0900)]
common scene: support bounds() method
this method returns boundary of a scene.
Change-Id: I1a32c8e034f53822008048f1d8ae7062fb72cca3
Hermet Park [Tue, 5 May 2020 01:20:50 +0000 (10:20 +0900)]
common scene: implement basic scene behaviors and testScene sample.
Scene is a group(list) of paints.
This class is designed for vector data set which is prepared before canvas.
If a set of vector data is loaded from other resources such as files,
they can construct these data set using Scene.
This then can be pushed into canvas as one completed image.
Scene is supposed to be used in svg loading and storing to tvg specific data format(tvg)
Change-Id: Ie2ffebf74e79c59d99a77880630a54b6baad7eec
Hermet Park [Mon, 4 May 2020 12:23:42 +0000 (21:23 +0900)]
common canvas: hide engine() interface
this engine() is not necessary by users,
we can hide this by moving out CanvasImpl class.
Change-Id: Iaf47dbd3c523e96d6af0bd1fd4caa11a7fd3778a
Hermet Park [Mon, 4 May 2020 12:10:04 +0000 (21:10 +0900)]
common shape: refactored interfaces.
hide engine() interface of shape that's not friendly one by users.
instead canvas would access shape internal data to update/draw it.
Now Paint cannot update itself but has to request to Canvas for it.
Change-Id: Ibafd0864a65c3c33238789d1a3e06c49c4378349
Hermet Park [Sun, 3 May 2020 06:14:01 +0000 (15:14 +0900)]
test: updated test samples.
1. added testTransform
2. replaced testShape with testMergeShapes
Change-Id: I1f7b25a1d2f62ac682f7a19e75fc3a44db7c52f0
Hermet Park [Sat, 2 May 2020 17:02:43 +0000 (02:02 +0900)]
common shape: revise scale/rotate approach.
Come to think of it, this optimized method is not so useful,
it could just bring the user misunderstanding and
not to efficient as I expected in the most cases.
So, changed policy for transformation behaviors.
it keeps the properties as others but leaves it to the backend implementation.
Plus, this change contains the correct RenderUpdateFlag.
You can refer the flag in the backend to figure out which kinds of properites has been updated
Change-Id: Ibe0494712598a8161950b9ae2e22ac45bed1c47b
Hermet Park [Sat, 2 May 2020 13:30:48 +0000 (22:30 +0900)]
common shape: support scale/rotate transform
rotate(), scale() won't be retained.
When you call reset() for the shape, these values will be reset as well.
These are working in fire & forget method,
it actually modify the path data for avoiding compuatation every frames.
Thus user needs to keep the last values to understand the final accumulated values.
Change-Id: I41f260271cdefc977eea01a778d49632440c777f
Hermet Park [Sat, 2 May 2020 09:16:45 +0000 (18:16 +0900)]
common: redesigned interfaces
PaintNode -> Paint
ShapeNode -> Shape
SceneNode -> Scene
We can keep clean and neat shorter names.
Change-Id: Ic8521d456d947985e5fbe1ba2bde06faa1f52469
Hermet Park [Sat, 2 May 2020 09:06:06 +0000 (18:06 +0900)]
common shape: renamed the method clear() to reset()
Also, added one more showcase how to update only necessary properties of a shape
while retaining other properties...
Change-Id: If165bc7f8147cad0437e3ca2f7c007614c256248
Hermet Park [Sat, 2 May 2020 08:44:49 +0000 (17:44 +0900)]
sw_engine: code refactoring.
renamed internal variables for better readibility.
Change-Id: I1ba7938401e8b7249c8bcc396be1ba3c109716cd
Hermet Park [Sat, 2 May 2020 08:28:18 +0000 (17:28 +0900)]
canvas: migrate render target clear call into draw();
Obivously, we need to clear target before drawing.
Thus canvas request to renderers to clear buffer.
the implementation is upto backend engines.
Change-Id: Ib80da7f2260b021bcfed9fa13fb91c20218f9da0
Hermet Park [Sat, 2 May 2020 02:14:14 +0000 (11:14 +0900)]
canvas: code refactoring
accept an extra argument in the clear() to clear paints node
and clear buffer selectively.
Change-Id: I83721e74358f546f325bb03fd1f36c7565174dd7
Hermet Park [Sat, 2 May 2020 01:55:33 +0000 (10:55 +0900)]
test: added testUpdate
this shows a moving shape:
how to update canvas every frames.
Change-Id: I373e39757f4511d4e676f36d76e468d03b185a0c
Hermet Park [Fri, 1 May 2020 08:15:31 +0000 (17:15 +0900)]
sw_engine: support anti-aliasing
Change-Id: I9b79c8b4022ddf2ae4fe980f480ba3ec140750d3
Hermet Park [Fri, 1 May 2020 04:59:02 +0000 (13:59 +0900)]
sw_engine: support color blending
this contains testBlending as well
Change-Id: Ia0aadea804a973cfe8ec981ed1b21c1b44512ef2
Hermet Park [Fri, 1 May 2020 03:46:54 +0000 (12:46 +0900)]
test: rename testPath to testPathCopy
Change-Id: I8cf2a26437a804d2cd061d61d3a99b3c6f3aa0e6
Hermet Park [Thu, 30 Apr 2020 14:40:35 +0000 (23:40 +0900)]
test: updated comments
Change-Id: I92fccb5a9de088f837a768a2f1d60ac94eac9410
Hermet Park [Thu, 30 Apr 2020 10:11:04 +0000 (19:11 +0900)]
common shape: added path commands interfaces for user convenient.
+lineTo()
+moveTo()
+cubicTo()
+close()
These interfaces might not perfect optmizied,
but you can build path commands easier than manual data set.
Change-Id: Icb934ca256d3107ca0c938d28015d767fb93355e
Hermet Park [Thu, 30 Apr 2020 09:38:34 +0000 (18:38 +0900)]
common shape: remove unnecessary log
Change-Id: Ie85153afdc01270ed282d9ff87607ee1a882be31
Hermet Park [Thu, 30 Apr 2020 09:31:51 +0000 (18:31 +0900)]
common shape: support path appending
it's usage may require a little handy but
The path data is very low manipulated, its usage may require a little handy,
but appedingPath() is designed for performance.
Also added testPath.
Change-Id: Ifd929d48506926e3f529198c0b40ee8f922835d4
Hermet Park [Thu, 30 Apr 2020 06:41:16 +0000 (15:41 +0900)]
sw_engine: fix crash at merge shape test
increased spare cell memory for rasterizing.
Change-Id: I391dfbfae0ef028d213c55fe1ceca023e272e676
Hermet Park [Wed, 29 Apr 2020 15:54:41 +0000 (00:54 +0900)]
sw_engine: case cover out of surface boundary.
Also added surface boundary test code.
Change-Id: Ib4c327d12ce52d506f1b8a566ffa48e5b5b8c03e
Hermet Park [Sun, 26 Apr 2020 17:00:38 +0000 (02:00 +0900)]
canvas: correct convention
add missing noexcept option.
Change-Id: I14eacb0fdb2c9bd40e365bf81bb5cc0b73239ffe
Hermet Park [Sun, 26 Apr 2020 16:59:49 +0000 (01:59 +0900)]
update gitignore file
Change-Id: I0b245f1177e3df04ddc6f345213bbb1207d3e950
Hermet Park [Sun, 26 Apr 2020 16:52:44 +0000 (01:52 +0900)]
canvas: add reserve() method.
This allocates nodes slots in advance to avoid memory grow & copy.
it will be benefit if you know how many shapes will be used in your canvas.
Change-Id: I7d93d166c9c054078bd86593d3471a2ade3671ee
Hermet Park [Sun, 26 Apr 2020 16:45:52 +0000 (01:45 +0900)]
common: code refactoring.
introduce Canvas class to replace the CanvasBase.
now, SwCanvas, GlCanvas inherits this Canvas for polymorphism
and remove duplicated interfaces.
Change-Id: I65a87e3aa2289d04997930a54aeccd14f57dd73a
Hermet Park [Sun, 26 Apr 2020 09:47:34 +0000 (18:47 +0900)]
test: close the window at exit button
Change-Id: Idf46d7132ae97356637816e54dc6c267be7122e6
Hermet Park [Sun, 26 Apr 2020 09:41:27 +0000 (18:41 +0900)]
test: add merge shapes
Change-Id: I2dc91d3514aed1cbb1bd3490ea5d91debeab662a
Hermet Park [Sun, 26 Apr 2020 09:18:52 +0000 (18:18 +0900)]
common shape: support ellipse
Now, you can pass separate width radius and height radius in circle.
Change-Id: Ie1e2b58fbb399d8ef74d55d83ec48d8f4323f21e
Hermet Park [Sun, 26 Apr 2020 06:00:29 +0000 (15:00 +0900)]
common shape: support rounded rectangle.
Also remove arcTo implementation since curveTo could covers it.
Change-Id: Icc63eca55e51622fc80b57672f308f25f2301f85
Hermet Park [Sun, 26 Apr 2020 05:57:14 +0000 (14:57 +0900)]
sw_engine: fix wrong comparison that brings broken shapes.
These implementation is still at hot coding,
we still need to improve a lot.
Change-Id: I61398bff75395ff5e692ca48f4d62243f74bed85
Hermet Park [Sat, 25 Apr 2020 12:40:40 +0000 (21:40 +0900)]
common shape: implement appendCircle body.
Change-Id: Ib8507366f84532db3119f04c8d55e0d4e8206f9f
Hermet Park [Sun, 19 Apr 2020 04:13:27 +0000 (13:13 +0900)]
sw_engine: concrete shape rendering sequence.
Succeed first sw backend screen up!
Change-Id: I882fb1726ed1f45e92e73fbc36170e93645dfbd2
Hermet Park [Sun, 19 Apr 2020 03:17:48 +0000 (12:17 +0900)]
test: update test code for the first showcase.
To show the result, we use efl library.
Most linux distribution supports efl library from their package repo,
you can easily install efl from its package repo:
Ubuntu:
$ apt-get install libelementary-dev
Or, please visit efl site to install EFL libarary manually:
https://www.enlightenment.org/download
Change-Id: I696ac72e4ec7ea3258161a15b58171d74c16830d
Hermet Park [Sun, 19 Apr 2020 02:55:19 +0000 (11:55 +0900)]
sw_engine: tag one optimization point for future work.
Change-Id: Ib41b18c097d24636efbba633972e1c8b7f9a63ef
Hermet Park [Sun, 19 Apr 2020 02:13:28 +0000 (11:13 +0900)]
sw_engine: optimization++
Adjust rle span generation size to reduce memory allocation.
This span growing is experimentally increased, undeterministic.
Thus We need too increase them every requests, if we increase their
size x 4, we can avoid a lot of memory copy in advance.
Change-Id: Idd24024204a69fa3b6857728b95aa63a3ac26c5e
Hermet Park [Sat, 18 Apr 2020 14:21:22 +0000 (23:21 +0900)]
code refactoring.
separate Renderer interfaces to RenderCommon.
Change-Id: I682b20db6cc8a058efee7dd4f519277d86306153
Hermet Park [Sat, 18 Apr 2020 14:07:15 +0000 (23:07 +0900)]
code refactoring.
revise internal class & variable names for better code readibility.
Change-Id: I7f1b4474f3129c3be04444350496485f000afd15
Hermet Park [Sat, 18 Apr 2020 13:59:27 +0000 (22:59 +0900)]
rename class names.
RasterMethod -> RenderMethod
SwEngine -> SwRenderer
GlEngine -> GlRenderer
Change-Id: Ic2ded698e49c4373fe21fe31fa34baca01bf43a2
Hermet Park [Sat, 18 Apr 2020 04:48:37 +0000 (13:48 +0900)]
sw_engine: implement line and curve raster
Change-Id: I22a77892544cd510cfe646aee60093cebb848806
Hermet Park [Sat, 18 Apr 2020 03:43:30 +0000 (12:43 +0900)]
replace backend class names.
SwRaster to SwEngine
GlRaster to GlEngine
Change-Id: I3cf70e168b78c64754807a62c221e13c11b95c35
Hermet Park [Tue, 14 Apr 2020 17:11:18 +0000 (02:11 +0900)]
implement rle path parts.
Change-Id: I7200d80320404d6e7fb722042b8f330961bee76d
Hermet Park [Sat, 11 Apr 2020 06:23:37 +0000 (15:23 +0900)]
implement rle raster.
Change-Id: Ie21dfbf0ff1aed43bfa750eeef3b8c033a986416
Hermet Park [Fri, 3 Apr 2020 16:14:11 +0000 (01:14 +0900)]
implement shape basics sw engine.
Change-Id: I93788f40f7c4f59bcc9ab4dff9127bcb4e6c1466
Hermet Park [Fri, 3 Apr 2020 07:09:09 +0000 (16:09 +0900)]
implement sw engine basic sequence.
Change-Id: Ide27c9b191088109f95e03fcd1c80ad3ecc058cd
Hermet Park [Wed, 1 Apr 2020 10:48:37 +0000 (19:48 +0900)]
implement basic interfaces
major functions are added for Path specification.
added backend engine infra skeleton.
Change-Id: Ia923b02649cff545fa768ab8538ad7187195826f
Hermet Park [Mon, 30 Mar 2020 11:51:26 +0000 (20:51 +0900)]
Update sample prototypes.
This is still a hard work and under the intensive settle up stage.
Change-Id: Ibfbeaabe8a51dc5edeeccf8fe75e65e60b91f703
Hermet Park [Wed, 25 Mar 2020 04:54:29 +0000 (13:54 +0900)]
build up base infra code for prototype.
Change-Id: I117a798caf4d9fedfe5c467471dee2f0150c2630
Hermet Park [Tue, 24 Mar 2020 06:07:51 +0000 (15:07 +0900)]
+ Initial draft
Introduce project skeleton such as build envrionment and interfaces
to build up code further cooperatively.
Change-Id: Ie9ac38991f609d33637283134906d7cc3f2ac19e
Tizen Infrastructure [Tue, 24 Mar 2020 02:52:35 +0000 (02:52 +0000)]
Initial empty repository