What I am saying is that a good support of low level graphic is usually 
necessary to be able to build high level stuff (=components) that are 
appealing. 
For instance, if I take the example of an OnOffSwitch component, even if it 
is quite a simple component in its composition (it is just two elements: a 
track and a thumb), if you want to apply some transparency to the global 
component, you need to support porter-duff alpha composing operations. 
Indeed, if you draw a semi-transparent thumb on top of a semi-transparent 
track, with the default "src-over" operation, you will see the track under 
the thumb. So you need to support the "src" operation so that, when 
painting the tumb, the track behind would be erased by the pixels of the 
thumb covering it. This is just an example and the support of porter-duff 
operations can be really usefull when you start to compose components a bit 
complex.
So, OK, spending time improving the low level graphics may not seem a 
priority for the default CN1 user/client but I think it is worth it. The 
time you would have spent developping support of low level graphics would 
be rewarded a 100 times when you will developp higner level stuff (by 
easing the devlopement of complex components or alowing you to implement 
subtle graphic rendering that makes all the difference). The support of low 
level graphics can even have direct benefit to the standard CN1 user like 
the case of color transforms that I mentionned previously (beeing able to 
have all the icons of your app as greyscale image assets and to color them 
on the fly to match your theme is really convenient and much more poverfull 
than the support of fontimages that users already took as a great step 
forward I think)
As for the impact of low level stuff on the CN1 traction, I think you are 
underestimating it. Experienced developpers that might be attracted to try 
CN1 probably don't take the plunge because they saw UI capabilities of CN1 
are quite limited compared to the alternatives for the moment. As for 
default users, they are probably mostly convinced by the showcase section 
of a Framework. They mostly base their choice on the "Wow" effect of the 
few apps they may have seen developped with this Framework (even if they 
don't necessarily need to achieve the same UI level in their app). So you 
just need a few developpers using the full capabilities of your Framework 
to create beautifull apps to gain a lot of traction. But like I already 
said, it is really difficult if the set of Tools at their disposal is 
limited ;)
Bytheway, apps are using more and more graphical effects that where 
previously only used in games (2.5D for components with light effects and 
shape/color transform animations, 3D for augmented reality, non rectangular 
components with custom shape clipping and so on...) so closing the gap 
beetwin game developpement frameworks and app oriented frameworks in terms 
of low level graphics support make a lot of sense in my opinion
In what concerns porter-duff most speciffically, fully supporting it might 
not even be that complicated. Most targeted platforms already support it 
natively (Android, IOS, HTML/javascript: 
https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation
 
(even if I didn't implemented it yet personally as I don't target 
javascript)) and the most problematic target is actually JavaSE wich has a 
limited support with AlphaComposite on awt graphics (but that requiere the 
graphics to use ARGB color encoding which isn't the encoding used by 
default). But libGDX (yes I know it is a gaming Framework ;) ), which 
target the same platforms as CN1 has a full support for it so it must be 
possible.



 



On Tuesday, September 25, 2018 at 7:30:14 AM UTC+2, Shai Almog wrote:

> What I'm saying is that this doesn't get tested because these features are 
> used mostly for things like transitions in "non-gaming" cases. If you don't 
> use the component model you are walking a path that most of the existing 
> users don't tread so you'll run into bugs.
>
> When I said UI I meant good design by default. Mostly high level stuff 
> such as the Picker component, on-off-switch and default native themes. 
> While I agree it's nice to have good low level graphics I don't agree that 
> this is a high priority. If I'd invest time in low level graphics I'd 
> invest it in a Metal rewrite of the OpenGL iOS code, not in additional 
> features. Either way none of this is something that's actively keeping 
> users away. The look & feel of the default applications/builtin widgets is 
> something that impacts our traction far more than low level stuff.
>
> I think porter duff would be nice, but we need to run on iOS, Android, 
> JavaSE, UWP & JavaScript. And still be performant... Since modern UI's are 
> mostly flat and "simple" I'm not sure how important that would be for the 
> typical developer using the system. Something far more important would be 
> on-device-debugging which we have in prototype but don't have the 
> time/resources to bring to production.
>

-- 
You received this message because you are subscribed to the Google Groups 
"CodenameOne Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to codenameone-discussions+unsubscr...@googlegroups.com.
Visit this group at https://groups.google.com/group/codenameone-discussions.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/codenameone-discussions/eac069c3-92c3-4407-a376-b0625fb07614%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to