[HELP] systools problems

I’m trying systools to use OPEN and SAVE dialog on desktop targets.

I’ve got some problems.
The official repository on haxelib does not work for me. It crashes (with no output error and very obscure crash reports, especially because I don’t know how to read them :P) everytime after less than a second I close the dialog. (save or open does not matter)

So I’ve got the last git version https://github.com/waneck/systools

It works for all the dialogs (it also support single/multi file on the OPEN dialog)
but the OPEN dialog give me an error.

I am on MAC64. I’ve dig the code to find out that the OPEN function in ObjectiveC actually get 5 arguments (a *results as last one).
I don’t know how to fix this. Do you have any idea?

Do you have the systools.ndll next to your executable?
If not that would explain why the primitive isn’t found.

That is not the problem sadly. Not so easy.
All the other dialogs works. Only the OPEN one fails to find the primitive.
I’ve tried to look at the code but I am not an expert in NDLLs

Looking at the repository their ndlls may be too old, you should try to rebuild them.

cd project
haxelib run hxcpp build.xml

That was right. Thank you! You are always very helpful ibilon :wink:

I’ve still got problems anyway.
No idea where to start, but my app crash whenever any (OPEN or SAVE) dialog close.

I’ve set up a simple app with just a dialog and that does not crash.
Bloody hell.

Without the file dialog but feeding a filename by hand all works fine.
So I don’t really understand why it crashes.
It stopped for a while (don’t really know if I’ve changed something or not) and now it does that again.

1 Like

You should try running your app in the debugger, lldb,
I found that often it can get you an error message that didn’t appear in a normal execution,
or at least a reason and position for the crash.

It comes out it is opengl.

Right now after the dialog I am not doing anything. The string returns but after I just don’t do anything at all…

This is going to be hard to fix.
I am thinking about implementing a custom save and load file since the Application handle just his own files.

Process 3766 stopped
* thread #1: tid = 0x3da3, 0x00007fff8aad1dd6 GLEngine`gleRunVertexSubmitImmediate + 9766, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
    frame #0: 0x00007fff8aad1dd6 GLEngine`gleRunVertexSubmitImmediate + 9766
GLEngine`gleRunVertexSubmitImmediate + 9766:
-> 0x7fff8aad1dd6:  movsd  (%rcx), %xmm0
   0x7fff8aad1dda:  movsd  %xmm0, -0x90(%rbp)
   0x7fff8aad1de2:  movq   %r11, %r14
   0x7fff8aad1de5:  jmp    0x7fff8aad2250            ; gleRunVertexSubmitImmediate + 10912

You guys can also use lime rebuild systools mac instead of going into the directory

I’m having the same problem when calling BitmapData.draw shortly after closing a systools dialog on Mac. Did anyone find a solution to this issue?

You mentioned on Twitter that you might have found a solution. What did you find? :slight_smile:

I found a solution here: http://stackoverflow.com/questions/13987148/nsopenpanel-breaks-my-sdl-opengl-app and sent a pull request to systools. Working for me now.

I’ve tried that solution, but I’m still getting the same ‘gleRunVertexSubmitImmediate’ error after using the dialog.
What version of OSX, lime and openfl are you using?
I’m on OSX 10.10.4, using lime 2.1.3 and openfl 2.2.8, I don’t know if that may have something to do with it.