On Fri, 08 Jul 2016 10:24:20 +0900 sidein <sid...@samsung.com> wrote:
> Hi All, > > > > I 'm preparing to support SDL on Tizen. > > For that, we make tizen backend in SDL 2. > > It is similar to the other platforms as windows, iOS. > > Current status is the below. > > 1. Work with tizen Application framework > > 2. Support Tizen ISF, dlog and rotation > > > > To support Tizen specific functions, Tizen backend uses some Tizen > APIs as a eocre_wl. is this for things like client-side rotation, rotation protocols, indicator stuff etc.? > If you want to see current source code, check the below that, plz. > > https://review.tizen.org/gerrit/gitweb?p=platform/upstream/SDL.git;a=tree;h= > refs/heads/tizen;hb=refs/heads/tizen oh cool. btw. thanks for the mail shout out. i wish more people would do this. > Thank you > > Wonsik > > ------- Original Message ------- > > Sender : huanhuan zhu<huanhuan....@samsung.com> Senior > Engineer/SRC-Nanjing-Advanced 2 Lab/Samsung Electronics > > Date : Jun 03, 2016 11:41 (GMT+08:00) > > Title : Re: Dev Digest, Vol 33, Issue 19 > > > > Hi All > > This is Zhu huanhuan who worked NDK project in TV before. > > Let me give my personal opinion, > > A. Why we need NDK ? > > It is not used for application development directly, it is used for > game engine porting their module over Tizen. > > So we do not need to care about UI/FW or language, 3rd developers do > not care. > > > > B. Why NDK need SDL ? > > 1. Not exactly, we can also refer Android to supply Surface and EGL > init & OpenGLES call directly ( I think it is also good) > > > > C. Analysis SDL. > > 1. SDL similar as windows application, application side hold main-loop > itself. > > SDL does not care how to integrate platform's appframework who is > incharge of lifecycle management. > > For example all application in windows need a X button and close > itself. TaskManager just do kill one process works. > > main() is the entrance of application directly. > > 2. Android / Tizen which has internal glib's g_main_loop to handle the > main-loop. > > The AppManager want to handle to launch and terminate works by OS > directly and front-ground/back-ground case. > > So application need register render callback based main-loop and app > manager is handled in OnXXX callback. > > > > For android case, it use one thread to handle lifecycle and render. > > For EFL case, it is same but it has a problem of integrate EGL > inside.(which is a issue I will talk latter) > > For Dali case, it divides two thread for lifecycle and render , which > I think is a waster of performance. > > > > So SDL has issue now in Tizen. > > 1. How to integrate to AppFW if main-loop conflict exist. > > Let's see how android do for SDL, it create similar structure as > dali, event thread(main thread) for applifecycle and inputs, render > thread for SDL to handle SDL main-loop. So two thread is needed > ( Somehow a waste) One is for Ecore, another is for SDL main > > > > > > Is there other solution ? > > Yes, we can refer Android NDK case directly, but issue exist that > evasGL is conflict pure EGL > > that we can not use EFL window, so it will be look like that: > > Ecore+ EcoreX/EcoreWayland window create > > Get surface and pass to user, > > User do EGL init and call OpenGLES api directly > > Handle inputs from XInput or Wayland inputs. > > > > BR > > Zhu huanhuan > > > > > > > > ------- Original Message ------- > > Sender : dev-requ...@lists.tizen.org > <mailto:dev-requ...@lists.tizen.org%3cdev-requ...@lists.tizen.org> > <dev-requ...@lists.tizen.org> > > Date : May 30, 2016 20:00 (GMT+08:00) > > Title : Dev Digest, Vol 33, Issue 19 > > > > Send Dev mailing list submissions to > dev@lists.tizen.org > > To subscribe or unsubscribe via the World Wide Web, visit > https://lists.tizen.org/listinfo/dev > or, via email, send a message with subject or body 'help' to > dev-requ...@lists.tizen.org > > You can reach the person managing the list at > dev-ow...@lists.tizen.org > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of Dev digest..." > > > Today's Topics: > > 1. Re: ??SDL?support?on?Tizen (Carsten Haitzler (The Rasterman)) > 2. Re: ??SDL?support?on?Tizen (Peter) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Mon, 30 May 2016 16:26:37 +0900 > From: Carsten Haitzler (The Rasterman) > To: Peter > Cc: "dev@lists.tizen.org" > Subject: Re: [Dev] ??SDL?support?on?Tizen > Message-ID: <20160530162637.1b33c172124636a55bf9e...@rasterman.com> > Content-Type: text/plain; charset=UTF-8 > > On Mon, 30 May 2016 16:41:41 +1000 (AEST) Peter said: > > > ? > > Thanks Carsten, > > > > Yes java jni code generation. ?Thanks for the references this helps > > a lot. > > :) On the same page then. > > > It's a shame Eolian use doesn't extend to Tizen api's, perhaps > > Samsung may reconsider?? > > I have suggested it many times. Evenm if all it was was a simple eo > wrapper on top of existing native API's, then we'd get "binding auto > generation" for free. The more languages eolian supports, tyhen the > more languages come "fore > free". (someone has to run the generator to generate bindings - EFL > runs it just as part of "make", tizen native API's could do whatever > they wanted as long as it is run). > > > Samsung: Automation trumps manual editing every time, the parser and > > Absolutely. That is the premise behind doing auto-generation. We have > done manual bindings many times for EFL. The Python bindings are > still manually maintained and they are always behind the C API and > lacking features. It's manual effort. It's boring work. It's painful. > It's error-prone. Auto-generation takes longer to get right (we've > been working on this for a while to get it right and to get it to fit > multiple targets), but in the long > run it saves much more time. Slow to start, fast to finish. The big > plus is indeed "no maintenance". If the generator has a bug, it gets > fixed there once > for all languages and API's, so at worst the maintenance is this. > > > generators will end up being thoroughly tested in the long run, > significantly > > reducing bugs and saving many wasted development hours that could > > be spent > on > > more important work. ? > > Yup. Bingo. > > > Having the worlds most popular programming language running on > > Tizen makes > a > > lot of sense too (It's the language of Android). ?Tiobe index: > > > > Java 21% > > C 13.2% > > C++ 6.7% > > JavaScript 2.3% > > Swift 1.6% > > Objective-C 1.6% > > I would happen to agree. Though you missed Python, C#, PHP. :) I > think PHP is > inappropriate for Tizen EXCEPT perhaps for making remote UI's that > serve HTML5. > Swift I just am not sure about and is too new. C, C++ and Java have > been long-standing top-languages for the last 2 decades for just > about as long as I've seen popularity comparison charts. Even if C > were not popular, it's the lowest level "lingua franca" that just > about every runtime, vm, language etc. > relies on (be it just to build on or as the basic ABI), so it's a > good base. > > Then offer API's in higher level languages so you can include as many > programmers as possible. Personally me and Java have had... not so > great interactions, but I'll definitely say that it's one of the > long-standing popular languages out there. > > Objective-C seems to be rapidly on the way out thanks to swift and > other forces. > > C# I'm just neutral on. I hear good things, but otherwise have no > opinion other > than it having been traditionally not accepted among open source > circles for various reasons (some of them good). > > JS I'm neutral on too - but of my preferred languages for "dynamic > quick and dirty development" It'd be in my top 2. Lua would be right > up there just due to > size and speed. > > Python is just incredibly popular especially among learners who are > still getting started. > > > Java and C are the only languages with market share in double > > digits, > these > > two together have more than one third of total developer market > > share.? > > > > The increase in Java last year alone (+4%) was almost twice the > > total for JavaScript. ? > > > > Increasing available apps is more likely to occur if you double the > > number > of > > developers who can write programs for your platform. > > I would agree, though we need to do much more than that. We need to > have a "WOW" factor for Tizen, and frankly... we have never had it. > Something that makes people (developers, users, someone) go "WOW ... > that's amazing. I WANT THAT". I can go on all day about things that > would have the WOW factor... things i know by studying of market > (developers at least) would make them go WOW and turn up, but this is > not the time or thread for that. :) > > > It would make it a lot easier for developers to create native ports > > of Android apps, provided the presentation and application layers > > are cleanly separated. > > Agreed. > > > Most recent UI's can be defined using xml, including Android, > > JavaFX and Apache Pivot, among many others, which does make me > > wonder if generators > can > > be written to transform these into enlightenment ui components for > > simple applications, the parsers already exist and are open? ?Far > > superior to android emulation. > > Possibly. > > > The jvm and libs can be stripped down using compact profiles and > > jvms can share class files to reduce start up time ?The jvm is 2x > > faster than > Android, > > although I believe startup can be slower for Java. > > TBH I think we need to stand back and re-think how we deal with the > OS + apps. > > As time goes on, more and more apps bundle libraries, runtimes etc. > into the apps. this just duplicates and creates a mess. Apps bloat > out horribly in size. > > I think we should split things into 3 groups > > 1. Core OS. > 2. Runtimes/middleware > 3. Apps > > Runtimes would include the Tizen Web App Runtime. They would include > Java if there. Each runtime would be versioned with a new install per > version. Apps simply indicate which runtime and which version they > want. Runtimes would be installed as package dependencies > automatically (and uninstalled when zero apps > reference them after removal). > > This would allow runtimes to be updated rapidly where the core os can > only be > slowly updated. It would allow new communities to turn up and support > specific > runtimes themselves. Enough people want Python - sure. add it to the > runtime "store" and support it. This would by design de-duplicate all > the installs inside every app. It'd keep memory footprint low as > mmap()ing the same file for > the same code, since it's shared, uses only one piece of memory > rather than 2 or > 3 or 4 apps shipping copies of the same code buried in their > shipped-with-app > runtimes using many peices multiplying the footprint and I/O needed > to load the data into RAM. It'd keep Tizen efficient AND flexible. > > The only thing to really argue is how much should be in the runtimes. > Can it include shared libraries? how will these override system ones > (launcher can just set LD_LIBRARY_PATH for an app...). And security. > Now apps depend on these > middleware code blobs... how to ensure they are not compromised. > Personally I'd > take the view that any runtime or middleware MSUT be shipped as > source. No binaries. It has to be auditable and compiled/packages by > trusted servers, not > the submitters. But that's a long discussion. > > > JOGL supports both Jvm and Android platforms for 3D cross platform > > compatibility. > > > > Regards, > > > > Peter. > > > > Sent from my Samsung device. > > ? > > ??Include original message > > ---- Original message ---- > > From: Carsten Haitzler > > Sent: 30/05/2016 10:58:08 am > > To: Peter > > Cc: dev@lists.tizen.org > > Subject: Re: [Dev] ??SDL?support?on?Tizen > > > > On?Sun,?29?May?2016?14:08:57?+1000?Peter??said: > > > > >?Thanks?Carsten, > > >? > > >?Where's?the?best?place?to?start?looking?to?learn?about?Eolian???I've? > > >?done?an?initial?web?search?which?turned?up?some?presentations. > > >? > > >?Is?Eolian?specific?to?Enlightenment,?or?are?there?plans?for?Samsung?to? > > >?use?it?for?other?Tizen?api's?as?well? > > > > > eolian?is?specific?to?efl?indeed.?we?wrote?it?specifically?for?the?object?mo > del > > we?created?and?for?the?purpose?of?making?bindings?directly?from?source. > > consider?this?like?gobject?but?with?a?very?different?take?on?how?to?do?a > > > generic?object?model?in?c.?eo?(the?object?model)?and?elian?were?built?from?t > he > > get-go?to: > > > > > 1.?be?able?to?back?our?existing?code?and?so?it?requires?specific?and?special > > > solutions > > > 2.?to?be?able?to?act?as?a?"language?neutral"?IDL?system?to?define?APIs?that > > > appear?in?C?but?also?then?map?directly?to?other?languages?-?be?they?statical > ly > > typed?or?dynamically?typed,?explicitly?memory?managed?or?GC'd?like?C+ > > +,?JS,?Lua so?far. > > 3.?save?us?work?in?C?by?writing?and?maintaining?boilerplate?C?code?for?us. > > > > > > this?is?old?and?eo?syntax?has?changed?since?but?it?gives?a?bit?of?a?general > > intro: > > > > > https://phab.enlightenment.org/phame/post/view/75/yet_another_c_object_model > _-_but_better/ > > > > > we?don't?have?the?eo_do()?construct?anymore,?but?eo_add()?can?do?the?same?by > > > > calling?methods?to?setup?up?an?object?at?construction?time,?so?objects?have > > > finalizers?to?call?after?these?setup?methods?are?called.?it's?meant?to?be?a? > way > > > to?optimize?objects?by?deferring?as?much?work?f?object?creation?as?possible > > until?the?finalize?when?we?know?the?initial?state. > > > > if?you?find?all?the?*.eo?files?in?efl?you'll?see?how?it?works?soon?enough: > > > > > ??git?clone?https://git.enlightenment.org/core/efl.git > > ??cd?efl > > ??find?.?-name?'*.eo'?-print > > > > > those?eo?files.?from?those?eo?files?C?core/boilerplate?is?generated,?and?the > n > > > the?actual?implementation?code?is?filled?in.?from?those?eo?files?also?the?c+ > + > > > *.hh?files?that?are?the?bindings?are?generated?as?well?as?the?lua?files?(we > > > targetted?luajit?making?use?of?ffi?to?bind),?and?if?you?--enable?it,?the?js > > bindings?(c++?v8/node.js?code). > > > > > for?java?i?assume?you'd?want?to?generate?possibly?java?code?that?uses?jni?to > > > > call?the?original?c.?someone?has?to?write?the?eolian_java?generator,?but?the > re > > > is?a?libeolian?that?does?all?the?.eo?file?parsing?and?manages?an?in-memory?d > b > > of?everything?to?make?it?easy. > > > > > no?-?the?rest?of?tizen?doesn't?use?this.?to?date?there?has?been?no?interest. > > > they?seem?to?prefer?to?do?things?by?hand. > > > > >?The?JOGL?library?uses?Gluegen?to?generate?it's?java?bindings.??JOGL?has? > > > >?a?number?of?different?back?ends,?I?haven't?quite?got?my?head?around?how? > > > >?to?create?a?back?end?based?on?enlightenment?yet,?it?did?seem?like?a? > > >?difficult?task.??I?looked?at?some?of?the?gl?application?examples?for? > > >?Tizen?developers?in?Samsung's?sample?programs,?but?decided?to?focus?on? > > >?creating?java?bindings?for?the?Tizen?api's?first. > > > > hmm?ok?-?so?it's?generated.?the?evas_gl?stuff?is?plain?c?functions?just?as > > > > function?pointers?in?a?struct.?the?eo/eolian?stuff?doesn't?cover?it.?doe?to? > its > > nature?it'd?have?to?be?manually?bound. > > > > >?I'm?glad?Enlightenment?isn't?written?in?C++. > > > > at?least?there?are?a?few?of?you.?:) > > > > >?Regards, > > >? > > >?Peter. > > >? > > >?On?28/05/2016?11:01?AM,?Carsten?Haitzler?(The?Rasterman)?wrote: > > >?>?On?Sat,?28?May?2016?10:20:53?+1000?(AEST)?Peter??said: > > >?> > > > >?>>?I?started?writing?java?bindings?for?Tizen?(on?github).??I?was?impressed > ?by > > > >?>>?the?object?orientated?nature?of?Enlightenment?and?how?easy?it?is?to?han > d > > > >?>>?craft?java?bindings?for,?following?the?inheritance?hierarchy.??Tools?th > at > > >?>>?generate?bindings?don't?do?so?well. > > > >?>?orly??everyone?keeps?going?"efl?is?not?oo!?make?it?oo!?(rewrite?in?c++?i > s > > > >?>?what?they?mean)".?i?keep?saying?oo?is?a?concept?independent?of?language. > > > > >?>?efl?does?do?things?relatively?oo-ish.?it?could?be?improved?(and?thats?wh > at > > > >?>?all?the?eo?infra?is?for?-?now?it?looks?REALLY?oo?with?a?single?function? > for > > >?>?del/unref?of?every?single?object?and?direct?strict > > >?>?inheritance/milti-inheritance?and?more). > > >?> > > > >?>?fyi?-?eolian?should?actually?make?it?far?easier?to?generate?bindings.?we > > > >?>?already?auto?generate?bindings?for?lua,?js?and?c++?directly?from?the > > > >?>?original?.eo?files?for?efl?api.?the?.eo?files?are?written?at?a?high?leve > l > > > >?>?abstraction?and?eolian?generates/maintains?the?c?boilerplate?and?there?a > re > > >?>?various?binding?generators?per?one?of?the?above?languages.?writing?a > > >?>?generator?for?java?shouldn't?be?too?hard?considering?all?of?the?other > > > >?>?languages?we?are?already?handling.?this?means?the?core?of?efl?remains?c? > and > > > >?>?there?is?a?core?c?api?with?the?bindings?sitting?directly?1:1?on?top?of?t > his > > > >?>?handling?reference?counting?and?more.?considering?the?constraints?of?thi > ngs > > > >?>?like?js?and?lua?i?think?java?should?be?easy.?once?you?have?a?generator?t > hen > > > >?>?maintenance?is?over.?it's?not?just?re-running?it?to?pull?out?more?api's > > > >?>?into?java?whenever?the?libraries?update?and?add?classes?and?methods.?we > > >?>?already?run?the?js,?lua?and?c+ > > >?>?+?generators?every?time?efl?builds?as?part?of?the?efl?makefiles. > > >?> > > > >?>>?JOGL?and?JOAL?bindings?already?exist,?but?I?can't?get?access?to?a?nativ > e > > >?>>?window?on?which?to?draw. > > > >?>?as?below?-?you?will?have?to?re-bind?and?make?jogl?etc.?compatible?api?on > > > >?>?top?of?elm_glview?etc.?it?wouldn't?be?hard?at?all. > > >?> > > > >?>>?What?I'd?like?is?a?standard?way?to?get?a?window?(full?screen)?on?which? > to > > > >?>>?draw?using?opengles.???Events?can?be?used?to?gracefully?get?out?of?the? > way, > > > >?>>?suspend?etc.??I?need?some?kind?of?compatibility?layer?between?JoGL?and > > >?>>?enlightenment?to?make?it?work. > > >?>?technically?with?is?possible,?but?it?looks?more?like: > > >?> > > > >?>?create?window?(elm_win),?put?elm_glview?in?win,?show?it,?show?win.?done. > ?now > > > >?>?your?window?is?filled?with?a?glview.?there?are?associated?properties?of? > the > > >?>?glview. > > >?> > > > >?>?it's?actually?FAR?LESS?code?than?using?egl/glx+native?xlib?or?wayland?fo > r > > > >?>?example?(as?i've?been?doing?this?stuff?for?a?long?time...?to?do?this?RIG > HT > > > >?>?takes?a?fair?bit?of?code?like?getting?visual?and?colormap?right?in?x11). > > > >?>?far?far?less. > > >?> > > >?>?the?glview?can?allow?you?to?use?gles2/3?or?1.1?api?on?it?(there?is?a > > > >?>?complete?gles?set?of?api's?in?the?evas_gl?api?struct).?did?you?look?at?t > he > > > >?>?glview?examples?in?elementary_test??if?you?enable?direct?rendering?fyi?. > .. > > > >?>?you?get?zero?overhead?support?-?no?extra?copies.?the?api?funcs?are?almos > t > > > >?>?all?just?direct?pass?down?except?a?few?like?scissor?stuff?etc.?-?there?i > s > > > >?>?even?a?helper?header?that?removed?the?need?for?glapi->func()?and?allows > > >?>?just?the?old?func > > >()?via?macros?assuming?a?local?var?for?the?api?struct?etc. > > > >?>?but?either?way?for?some?java?bindings?this?should?do?the?work. > > >?> > > > >?>>?A?headless?jvm?works,?2d?and?widgets?will,?but?3D?I?haven't?figured?out > . > > >?>> > > >?>>?Regards, > > >?>> > > >?>>?Peter. > > >?>> > > >?>>?Sent?from?my?Samsung?device. > > >?>>??? > > >?>>????Include?original?message > > >?>> > > >? > > > > > > --? > > Carsten?Haitzler?(The?Rasterman)? > > > > > > _______________________________________________ Dev mailing list Dev@lists.tizen.org https://lists.tizen.org/listinfo/dev