#jogamp @ irc.freenode.net - 20140711 05:05:31 (UTC)


20140711 05:05:31 -jogamp- Previous @ http://jogamp.org/log/irc/jogamp_20140710050530.html
20140711 05:05:31 -jogamp- This channel is logged @ http://jogamp.org/log/irc/jogamp_20140711050531.html
20140711 05:37:34 * jvanek (jvanek@anon) has joined #jogamp
20140711 07:06:05 * hija (~hija@anon) has joined #jogamp
20140711 07:06:13 * hija (~hija@anon) Quit (Client Quit)
20140711 07:08:26 * hija (~hija@anon) has joined #jogamp
20140711 07:10:29 * sgothel (~sgothel@anon) has joined #jogamp
20140711 07:10:29 * sgothel (~sgothel@anon) Quit (Changing host)
20140711 07:10:29 * sgothel (~sgothel@anon) has joined #jogamp
20140711 07:10:29 * ChanServ sets mode +v sgothel
20140711 07:11:16 <sgothel> @Mark: I pushed all changes 1023/1024 for all modules (fallback classloader native-jar lookup)
20140711 07:11:30 <sgothel> .. when he is back :)
20140711 07:11:47 <sgothel> http://jogamp.org/deployment/archive/master/gluegen_811-joal_555-jogl_1309-jocl_988/
20140711 07:12:10 <sgothel> @zubzub: maybe you can try your graddle now
20140711 07:12:23 <sgothel> (or whatever you needed this feature for)
20140711 07:13:03 <sgothel> ofc .. they are all still sleeping like normal people :)
20140711 07:14:47 <sgothel> afk .. running errands .. laters
20140711 07:22:23 <zubzub> sgothel: I was in my car driving to work :p
20140711 07:22:28 <zubzub> (and now I'm at work)
20140711 07:32:18 * hija (~hija@anon) Quit (Quit: hija)
20140711 07:50:53 * hija (~hija@anon) has joined #jogamp
20140711 07:55:54 * rmk0 (~rmk0@anon) has joined #jogamp
20140711 07:55:54 * rmk0 (~rmk0@anon) Quit (Changing host)
20140711 07:55:54 * rmk0 (~rmk0@anon) has joined #jogamp
20140711 08:31:37 * hija (~hija@anon) Quit (Quit: hija)
20140711 08:46:49 * jvanek (jvanek@anon) Quit (Quit: Leaving)
20140711 08:47:03 * jvanek (jvanek@anon) has joined #jogamp
20140711 08:50:28 * hija (~hija@anon) has joined #jogamp
20140711 09:00:15 * bbbruce (~bx@anon) has joined #jogamp
20140711 11:32:56 <sgothel> @Mark: JNILibLoaderBase deals w/ the lookup. We could add more location options for native libraries within a jar file, right now we have the 'big fat' and 'slim' configuration. Surely we could test whether the slim type has a sub-folder 'natives/os.and.jar' to also allow dumping all natives in one native jar, similar to big-fat.
20140711 11:33:04 <sgothel> However .. as it is now, it should all work.
20140711 11:56:56 <zubzub> you mean gradle should work now?
20140711 11:57:03 <zubzub> in my ide?
20140711 12:16:39 <sgothel> yup
20140711 12:16:51 <sgothel> i.e. adding the native jar files to your classpath
20140711 12:17:08 <sgothel> using latest aggregated build, see above
20140711 12:26:21 <zubzub> huray!
20140711 12:26:24 <zubzub> \o/
20140711 12:27:45 <sgothel> great
20140711 12:28:06 <sgothel> another way is to produce the big-fat jar file ..
20140711 12:28:20 <sgothel> and we can discuss adding the mixed slim/fat option ..
20140711 12:28:35 <sgothel> (for classpath option)
20140711 12:31:31 <sgothel> the big fat option might enable OSGI as well, since all is in one module
20140711 12:31:43 <sgothel> -> one ClassLoader / Process
20140711 12:32:44 <sgothel> that would be a task for our post-production, i.e. create big fatties like: gluegen+joal+jogl-all+jocl .. etc
20140711 12:33:05 <sgothel> maybe for post siggraph :)
20140711 12:35:54 <zubzub> you can actually create an osgi unit test quite simple with paxexamn junit runner
20140711 12:36:11 <zubzub> ie it will create an osgi container and deploy your maven artifact in it
20140711 12:36:50 <zubzub> you can then make calls to your deployed bundle from within your unit test (which is then also a seperate bundle iirc)
20140711 12:37:12 <sgothel> so in our core modules, we don't have maven
20140711 12:37:38 <sgothel> if possible w/o maven - you may can add it to e.g. jogl or better jocl (end of the foodchain)
20140711 12:37:54 <sgothel> later, we need to add a maven test project, for sure
20140711 12:38:06 <sgothel> Mark added one in jogl-demos
20140711 12:38:15 <sgothel> (test case ..)
20140711 12:38:46 <sgothel> however, we would need to trigger that based on our [currently manual] maven deployment .. etc
20140711 12:39:12 <sgothel> maybe you like to join one of these tasks ..
20140711 12:39:35 <sgothel> the most immediate possible one would be to add your OSGI w/o maven in e.g. jogl or jocl
20140711 12:39:57 <zubzub> you mean an osgi unit test?
20140711 12:39:59 <sgothel> it would be OK if this case fails for now ..
20140711 12:40:00 <sgothel> yes
20140711 12:40:13 <zubzub> shouldn't be that hard
20140711 12:40:29 <zubzub> depending I can figure out how to find jars without using maven
20140711 12:40:34 <sgothel> you could add the dependency (pax..) to e.g. gluegen/make/lib .. and document license etc
20140711 12:40:50 <sgothel> then maybe we can add an ant macro .. and use it
20140711 12:41:27 <sgothel> similar to the one I just added for the last feature (see git commit)
20140711 12:41:52 <zubzub> I also still have to add wayland support ;)
20140711 12:41:59 <sgothel> me too :)
20140711 12:42:06 <sgothel> hence .. maybe after sigraph
20140711 12:42:23 <zubzub> but before wayland support can be added, I have to rework the java-wayland library
20140711 12:42:35 <zubzub> because the one from github now has horrible jni code
20140711 12:42:40 <sgothel> oh
20140711 12:42:49 <sgothel> IMHO: try GlueGen
20140711 12:43:12 <sgothel> at least .. we could change GlueGen a bit to benefit all compiled code
20140711 12:43:15 <zubzub> another jni generator? :P
20140711 12:43:23 <sgothel> 'the one' :)
20140711 12:44:11 <zubzub> http://cgit.freedesktop.org/wayland/wayland/tree/src?id=1.5.0
20140711 12:44:17 <zubzub> it's basically the header files defined there
20140711 12:44:24 <zubzub> they're quite small/simple
20140711 12:44:32 <zubzub> however there are some function pointers
20140711 12:44:38 <zubzub> and function pointer pointers
20140711 12:44:46 <sgothel> hmm
20140711 12:44:47 <zubzub> and some varargs
20140711 12:44:59 <sgothel> we have a solution for func-pointers
20140711 12:45:23 <sgothel> it's also in our unit test, i.e. a struct w/ a function pointer
20140711 12:45:25 <zubzub> int wl_proxy_add_listener(struct wl_proxy *proxy, void (**implementation)(void), void *data);
20140711 12:45:37 <zubzub> I guess the second arg is a function pointer pointer (?)
20140711 12:45:55 <sgothel> I manually solved these for the GL Debug API though ..
20140711 12:46:05 <sgothel> i.e. a manual 'jump table'
20140711 12:46:18 <sgothel> not too big of a crime :)
20140711 12:46:26 <zubzub> typedef int (*wl_event_loop_fd_func_t)(int fd, uint32_t mask, void *data);
20140711 12:46:26 <zubzub> typedef int (*wl_event_loop_timer_func_t)(void *data);
20140711 12:46:26 <zubzub> typedef int (*wl_event_loop_signal_func_t)(int signal_number, void *data);
20140711 12:46:27 <zubzub> typedef void (*wl_event_loop_idle_func_t)(void *data)
20140711 12:46:29 <sgothel> let me give you a pointer
20140711 12:47:03 <sgothel> jogl/src/jogl/native/GLDebugMessageHandler.c
20140711 12:48:30 <sgothel> static void GLDebugMessageARBCallback(..) (native code): simply call back to java, which itself delegates to the user handler (registered .. etc)
20140711 12:48:52 <sgothel> here .. you could pass you static native function, call java, and there you call the user interface method
20140711 12:49:03 <sgothel> func-ptr -> java interface method
20140711 12:50:28 <sgothel> we could think about .. how to automate this task w/ GlueGen
20140711 12:50:46 <sgothel> however, I think we want those interface to be manually crafted
20140711 13:05:31 <zubzub> it's funny to see how every java bindings project has it's own native generator
20140711 13:06:22 <zubzub> there's the jambi generator, there' gluegen, there's also swig, jnaerator, ...
20140711 13:06:39 <sgothel> when I was doing GL4Java back around .. err .. 1999 or so, I did one as well, it surely is much better to put brain in a compiler, than to do it by hand :)
20140711 13:06:46 <zubzub> maybe oracle should make a java lib that perfectly maps/models the C language
20140711 13:07:12 <sgothel> well
20140711 13:07:26 <zubzub> now we only have a C library that maps the java language ;)
20140711 13:07:33 <sgothel> it's not a religion and [the] Oracle no god :)
20140711 13:07:58 <sgothel> IMHO GlueGen maps C to Java pretty well
20140711 13:08:48 <sgothel> and it has it's OpenGL extension, so it's flexible if you like to add specific generators
20140711 13:08:59 <zubzub> yeah but the special things are always a bit of a pita in my experience
20140711 13:09:01 <zubzub> macro's
20140711 13:09:05 <zubzub> function pointers
20140711 13:09:11 <zubzub> arrays vs pointers
20140711 13:09:12 <zubzub> etc
20140711 13:09:16 <sgothel> macros do not exist in C
20140711 13:09:28 <zubzub> no but they are present in common C libraries
20140711 13:09:30 <sgothel> arrays/pointers: I just solved that
20140711 13:09:45 <sgothel> then write a function for the macros :)
20140711 13:09:58 <sgothel> function pointers: we talked about it
20140711 13:10:12 <zubzub> but how do you write a function for a macro that write a macro? :p
20140711 13:10:13 <zubzub> j/k
20140711 13:10:39 <sgothel> you write a function exposing the macro functionality
20140711 13:11:10 <sgothel> XLib does the same quite often
20140711 13:12:01 <sgothel> but surely (IMHO) the ultimate goal is to bring things together w/o borders, like IR (intermediate representation) like LLVM or what GCC has in the pipe
20140711 13:12:06 <sgothel> i.e. vmkit etc
20140711 13:12:27 <sgothel> so all should be mix and match
20140711 13:12:57 <sgothel> I couldn't run JOGL w/ llvm's vmkit .. but some gluegen tests already :)
20140711 13:13:09 <sgothel> and that w/o changing our JNI stuff - not too bad
20140711 13:13:58 <sgothel> JOGL didn't work - since llvm collides w/ the native GL library (NV and Mesa) .. didn't test other yet, I stopped there
20140711 13:14:02 <zubzub> ideally I'd call C functions directly from java without an intermediate mapping process
20140711 13:14:21 <sgothel> there is always some sort of external function mapping
20140711 13:14:22 <zubzub> better even, nest C in java :p
20140711 13:14:27 <zubzub> yeah
20140711 13:14:31 <zubzub> jnr ffi comes close
20140711 13:14:51 <zubzub> but you still have to do the mapping step
20140711 13:14:51 <sgothel> hence foreign function calls are more expensive
20140711 13:15:15 <sgothel> and it is important to have control over the mapping -> security etc
20140711 13:15:25 <zubzub> true
20140711 13:15:35 <sgothel> so for now, our best tool is GlueGen, proven and it works
20140711 13:15:41 <zubzub> I once had the crazy idea to embed C code in java files
20140711 13:15:54 <zubzub> where you could define a native function
20140711 13:16:05 <zubzub> and use some kind of special 'comment' tags
20140711 13:16:15 <zubzub> to write the native body of that function
20140711 13:16:24 <zubzub> like gwt does with javascript
20140711 13:16:36 <zubzub> inside the java file
20140711 13:16:51 <zubzub> the compiler would then process that special comment and put it in a C file or something
20140711 13:17:03 <sgothel> in GlueGen we use our own AST .. i.e. need the semantics, most important the data type mapping
20140711 13:17:46 <sgothel> I like to add special type qualifier for IN or OUT function parameters, needed if using arrays/pointers
20140711 13:18:01 <sgothel> to drop an unnecessary data copy
20140711 13:18:42 <sgothel> instead of comments, I will do macros, which gets resolved to nothing if not compiled w/ GlueGen
20140711 13:18:58 <zubzub> jnr ffi does it with annotations
20140711 13:19:00 <sgothel> but that is expensive .. i.e. maintaining the header files
20140711 13:19:04 <zubzub> @in and @out
20140711 13:19:14 <sgothel> which is not C code
20140711 13:19:18 <zubzub> nope :p
20140711 13:20:03 <zubzub> well I have little context about what you're talking about ;)
20140711 13:20:52 <zubzub> and my C knowledge is limited to being able to read/write (simple) code
20140711 13:23:38 <sgothel> np .. cleaning up bug reports now, ..
20140711 13:33:47 <sgothel> https://jogamp.org/bugzilla/show_bug.cgi?id=1024 / https://jogamp.org/bugzilla/show_bug.cgi?id=1032 <- maybe you can mark them validated ?
20140711 13:34:01 <sgothel> Status: VERIFIED
20140711 13:34:08 <sgothel> w/ a comment maybe :)
20140711 13:35:58 <zubzub> yes I will try it asap in my gradle project
20140711 13:36:13 <sgothel> oh - I thought you already did .. sorry
20140711 13:36:19 <zubzub> no I'm still at work
20140711 13:36:44 <zubzub> I don't know how much time I'll have this evening, but I should be able to find some time this weekend
20140711 13:36:55 <sgothel> thank you
20140711 13:37:19 <sgothel> I tested manually, i.e. renaming the native jar file .. dropping it to some place - and adding it to classpath
20140711 13:37:35 <sgothel> it was properly picked up, guess thats the gradle case
20140711 13:38:34 <zubzub> yeah if that works then the gradle case should also work
20140711 13:39:02 <zubzub> which means I can finally drop maven!
20140711 13:39:03 <zubzub> yey
20140711 13:51:47 * rmk0 appears
20140711 13:51:53 * rmk0 eyes everything
20140711 13:59:52 * rmk0 eyes 1032
20140711 14:00:56 <rmk0> nice
20140711 14:12:06 * rmk0 continues maven packages
20140711 14:30:03 * gouessej (5ee4b442@anon) has joined #jogamp
20140711 14:30:06 <gouessej> Hi
20140711 14:30:49 <gouessej> I'll check whether there is no problem with the loading of the TGA file used by Ardor3D during this weekend
20140711 14:31:14 <gouessej> I fear there was a misunderstanding in the bug report because someone else talked about a similar problem
20140711 14:32:48 <gouessej> https://jogamp.org/bugzilla/show_bug.cgi?id=982
20140711 14:34:01 * gouessej (5ee4b442@anon) Quit (Client Quit)
20140711 15:00:19 * rmk0 attempts to generate test suite
20140711 15:27:01 * jvanek (jvanek@anon) Quit (Quit: Leaving)
20140711 15:53:13 * monsieur_max (~maxime@anon) Quit (Quit: Leaving.)
20140711 16:30:04 * monsieur_max (~maxime@anon) has joined #jogamp
20140711 16:35:37 * monsieur_max (~maxime@anon) Quit (Quit: Leaving.)
20140711 17:12:42 * rmk0 grinds packages
20140711 17:28:00 * hija (~hija@anon) Quit (Quit: hija)
20140711 17:41:19 * xranby (~xranby@anon) Quit (*.net *.split)
20140711 17:41:20 * odin_ (~Odin@anon) Quit (*.net *.split)
20140711 17:43:54 * xranby (~xranby@anon) has joined #jogamp
20140711 18:21:04 <rmk0> could someone remind me which property i need to specify in order to debug profile issues? getting "No default device available" from GLProfile when attempting to run tests with atomics
20140711 18:30:15 <sgothel> hmm
20140711 18:30:54 <sgothel> jogl/make/scripts/tests.sh
20140711 18:31:06 <sgothel> -Djogl.debug=all ?
20140711 18:31:20 <rmk0> i meant is there one that's more specific than that?
20140711 18:31:24 <rmk0> produces quite a lot of output
20140711 18:31:31 <sgothel> -Djogl.debug.GLContext -Djogl.debug.GLProfile
20140711 18:31:36 <rmk0> thanks!
20140711 18:31:43 <sgothel> still a lot .. but should make sense
20140711 18:32:55 <rmk0> maven packages will be significantly better for this release
20140711 18:33:08 <sgothel> sweet
20140711 18:33:32 <rmk0> between the native library lookup changes and some changes i've made here (and a test suite for the maven packages)...
20140711 18:33:36 <sgothel> ok .. me now playing boardgames w/ family .. will be back some time, of there is anything I can do before I leave ?
20140711 18:33:37 <rmk0> should be a lot better!
20140711 18:33:43 <rmk0> not for me, thanks!
20140711 18:33:50 <sgothel> ok .. laters
20140711 18:39:06 <rmk0> ah, was missing jogl-os-x11.jar
20140711 19:12:51 <rmk0> https://github.com/io7m/jogamp-scripting/commit/6c2d8d425df5436663f85a5cf0a5396ae3de7d6f
20140711 19:37:51 * monsieur_max (~maxime@anon) has joined #jogamp
20140711 21:18:31 * hija (~hija@anon) has joined #jogamp
20140712 01:11:05 * hija_ (~hija@anon) has joined #jogamp
20140712 01:11:06 * hija (~hija@anon) Quit (Read error: Connection reset by peer)
20140712 01:11:06 * hija_ is now known as hija
20140712 02:10:03 * kermyt (~kermyt@anon) Quit (Ping timeout: 240 seconds)
20140712 02:12:14 * kermyt (~kermyt@anon) has joined #jogamp
20140712 02:12:15 * kermyt (~kermyt@anon) Quit (Changing host)
20140712 02:12:15 * kermyt (~kermyt@anon) has joined #jogamp
20140712 03:20:10 * hija (~hija@anon) Quit (Quit: hija)
20140712 03:39:44 * rmk0 (~rmk0@anon) Quit (Ping timeout: 260 seconds)
20140712 05:05:31 -jogamp- Continue @ http://jogamp.org/log/irc/jogamp_20140712050531.html