HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

OS/X , x86 macs, Wine and jasshelper/grimoire

06-10-2008, 07:36 PM#1
Vexorian
I've been wandering around, and noticed that there's a Wine version for intel based macs, perhaps that explain some screenshot of the map optimizer in OS/X I saw somewhere.

Read this: http://wiki.winehq.org/MacOSX/Installing

Need people with intel based macs to confirm about how easy it works. Also need them to test jasshelper.

Just jasshelper is quite enough for all your vJass needs, I am talking as a guy that has used jasshelper without newgen pack in Wine for quite some time already, so if jasshelper.exe works, it would be good news for Mac users.

a good test would be "wine jasshelper.exe --about"

Now, on the heavy part, I have tested pipe's method to make grimoire work on Wine, it really does work. the first step though for Mac users interesting in having grimoire's superpowers (which are unlikely to ever be possible in the OS/X versions of WE and warcraft III) is to try to install and play windows' warcraft3 using WINE and then try the editor (The editor working in OS/X's WINE is not THAT necessary).

If warcraft III works (I suggest to try with -opengl and -window) the next step is to test grimoire, it is a little hard right now though, if you want I might provide by request the changed executables (only for patch 1.21 though) http://www.wc3campaigns.net/pastebin...27589e3c369a83
06-12-2008, 09:49 AM#2
PandaMine
I have fully converted to linux as well, if you need help testing something then just ask (running KDE on ubuntu, have latest dist of wine and cedega)

I am actually currently make a 3rd Party JASS editor that is going to be open source and developed in wxwidgets (so there is going to be very little changes for porting to OSX/Linux).

I already have someone that created a very efficient MPQ library that will work with linux/mac, I just need time to code the thing (I have uni exams on right now so its really hectic).

On the other hand if you actually do manage to make jasshelper patch WE enough so it does emulate under wine, I may as well stop
06-12-2008, 01:29 PM#3
Vexorian
Quote:
jasshelper patch WE enough
Not really understanding.

In my opinion:
- QT is probably a better option than wxwidgets, just saying windows users don't seem to have issues with QT apps, and it is easier to expect a Linux user to have it. It may now be a little late to change it though, it doesn't matter that much.
- World editor, grimoire and warcraft III, all work well in the latest Wine versions, however , it is not the optimimum solution, true cross platform stuff would work better, so continue your project.

- What we really need is a library done completely in something like Java or python. If not then we would really need someone to compile it in OS/X and that's hard.
06-12-2008, 08:57 PM#4
Barade
Qt is amazing!
Use it. It is easy to learn, it has an open source edition, it runs on Linux, Windows and Mac and it is structured very well.
I've worked with it the last months and I had a lot of fun developing GUIs.
06-13-2008, 01:36 AM#5
PandaMine
wxwidgets is not an interpretive language

If you have source code for some project coded in wxwidgets. When you compile it on a windows, it will use the standard mfc/windows.h header, when you compile it on linux it will use the native gtk and when you compile it on mac it will do whatever mac does

It is not like QT/GTK where if you run QT programs on non linux you download some wrapper/emulator and thus the program is slower, wxwidgets actually compiles into native code that does not need to be interpreted

Codeblocks for example is done in wxwidgets, so is audacity. You can get more info here http://www.wxwidgets.org

I would rather the program be more efficient if possible
06-13-2008, 03:44 AM#6
Vexorian
...
I know enough about wxwidgets. I know about the 7MB DLL code::blocks comes with, of course, you can also decide not to require that DLL, in which case your executable is the one getting the extra 7 MB...


Anyway, neither QT or GTK are 'interpreted' 'languages'. , QT is used by opera, google earth, skype and something else I don't remember. I don't think you need emulators for GTK or Qt, At least inkscape and google earth don't seem to get slower in windows...
06-13-2008, 08:07 AM#7
PandaMine
No they aren't interpreted on linux for obvious reasons but you do need an intepreter for GTk for windows/mac.

Im certain that GTK is interpreted because for example when you want to use gimp on windows, you have to download the GTK for windows in order for gimp to run

Im not sure what you are going on about the 7mb dll code, im using codeblocks on linux and the latest static linked executable that i made is like 600kb, and it already has the GUI implemented and can open plain text files in tabs.

When I was using windows however, that was a different story (in order for codeblocks to use wxwidgets in windows it required you to build a massive 50mb monolith DLL which had to be linked as a DLL). If you however use microsoft vc (which I also have) then you can static link it as you would in linux, and i assume there won't be any issues with GCC on mac

EDIT: It appears that QT isn't interpreted, however on the other hand it emulates the GUI widgets instead of running them natively. So while you don't need an interpreter, it is still just as slow as one (theoritically).

Quote:
Design

The innovation of Qt when it was first released relied on a few key concepts.

Use of native UI-rendering APIs

Qt used to emulate the native look of its intended platforms, which occasionally led to slight discrepancies where that emulation wasn't perfect. Recent versions of Qt use the native APIs of the different platforms to draw the Qt controls, and so do not suffer from such issues. (See also wxWidgets, which relies on native APIs for most widget functionality.)

Meta object compiler

Known as the moc, this is a tool that is run on the sources of a Qt program prior to compiling it. The tool will generate "Meta Information" about the classes used in the program. This meta information is used by Qt to provide programming features not available in C++: The signal/slot system, introspection and asynchronous function calls.

The use of an additional tool has been criticized for making Qt programming different from pure C++ programming. In particular, the choice of an implementation based on macros has been criticized for its absence of type safety and pollution of the namespace. This is viewed by Trolltech as a necessary trade-off to provide introspection and the dynamically generated slot and signal mechanism.

QtScript JavaScript interpreter

Qt Script for Applications is a cross-platform toolkit that allows developers to make their Qt/C++ applications scriptable using an interpreted scripting language: Qt Script (based on ECMAScript/JavaScript).

From Qt 4.3.0 onward, the scripting API [15], which is based on QSA [16] is integrated as a core part of Qt and is no longer a separate library.
06-13-2008, 01:13 PM#8
Vexorian
That something requires a library doesn't mean it is interpreted.

Quote:
EDIT: It appears that QT isn't interpreted, however on the other hand it emulates the GUI widgets instead of running them natively. So while you don't need an interpreter, it is still just as slow as one (theoritically).

That assuming windows forms are faster than when you make your own GUI, I think that depends on the GUI itself.

Windows forms like QT are also bunch of widgets coded by someone else to render in a 2d surface and do mouse detection, etc, the only difference is that they are in windows by default. I have no idea which is faster, but I must say that neither Opera or google earth seem to have any noticeable slowdown in comparison to windows forms apps. In fact, Opera marketing brags about being the fastest browser and bullcrap like that.

--
I tried the other day to use wxwidgets, the issue was the large program/DLL size increment caused by them in windows. In linux, dependencies aren't an issue as long as the user can install them, but in windows it was really a problem since it made a project that otherwise was 1 MB big, into some heavy cow.
06-13-2008, 02:06 PM#9
PandaMine
Quote:
Originally Posted by Vexorian
That something requires a library doesn't mean it is interpreted.



That assuming windows forms are faster than when you make your own GUI, I think that depends on the GUI itself.

Windows forms like QT are also bunch of widgets coded by someone else to render in a 2d surface and do mouse detection, etc, the only difference is that they are in windows by default. I have no idea which is faster, but I must say that neither Opera or google earth seem to have any noticeable slowdown in comparison to windows forms apps. In fact, Opera marketing brags about being the fastest browser and bullcrap like that.

--
I tried the other day to use wxwidgets, the issue was the large program/DLL size increment caused by them in windows. In linux, dependencies aren't an issue as long as the user can install them, but in windows it was really a problem since it made a project that otherwise was 1 MB big, into some heavy cow.

I know what interpreted language is, GTK is for example an interpreted language (along with Java and python) where as c/c++/qt/haskell etc are procedural languages. An interpretive languages compiles when you run it, often line by line which is why you need an interpreter because thats its job

As for your problem in windows, where you using codeblocks with wxwidgets?

I also seriously doubt that native windows api would be slower then something like QT which emulates its widgets through that API. Remember its only the GUI that is actually emulated, so Opera/Google Earth are most likely coded very efficiently. A lot of stuff like reading stuff of websites or reading off databases wouldn't go through QT (or at least it shouldn't)
06-13-2008, 02:25 PM#10
Vexorian
wxwidgets actually works the same as qt, only that the wrappers are inside your program. That's the reason code::blocks's required wxwidgets DLL is that big. There are differences in implementation details, but in performance, there's no easy way to make a judge call, also, like you say the performance of the GUI is never critical, unless it is too slow , neither GTK, QT or wxwidgets classify as too slow.

Quote:
GTK (GIMP Toolkit) is a library for creating graphical user interfaces. It is licensed using the LGPL license, so you can develop open software, free software, or even commercial non-free software using GTK without having to spend anything for licenses or royalties.

It's called the GIMP toolkit because it was originally written for developing the GNU Image Manipulation Program (GIMP), but GTK has now been used in a large number of software projects, including the GNU Network Object Model Environment (GNOME) project. GTK is built on top of GDK (GIMP Drawing Kit) which is basically a wrapper around the low-level functions for accessing the underlying windowing functions (Xlib in the case of the X windows system), and gdk-pixbuf, a library for client-side image manipulation.

GTK is essentially an object oriented application programmers interface (API). Although written completely in C, it is implemented using the idea of classes and callback functions (pointers to functions).

A wrapper is not an interpreted language. Compiler optimizations also lighten their impact on performance. Besides, wrappers are necessary evils in the case of cross platform stuff.
---
Could we shut up about this? Will your editor be monolythic? Will it have terrain editing?
06-13-2008, 02:43 PM#11
PandaMine
No its going to be modulated, the first module is JassCraftX which is going to be a JassEditor

There is then going to be a wacraft 3 IDE which opens these modulated programs to give something similar to what WE is doing, but much much better
06-25-2008, 03:06 AM#12
PandaMine
Ive changed to qt4, wxwidgets was giving problems that were pissing me off so yeah
06-25-2008, 05:54 AM#13
Jazradel
Back to the original topic, I'm about to install a hacked version of os x onto my pc so I'll give jasshelper a shot.
06-25-2008, 11:34 PM#14
PandaMine
There is a vmware version for macs (I think its called VMWare fusion) which basically emulates the whole windows OS on intel based macs (it does on power pc's as well but very slowly).

The difference between VMWare and virtualbox is that VMWare have recently added 3D Graphic Acceleration support (although its in its beta stages), so you should theoretically speaking run WE without problems (along with JassNewGen).

Apart from the 3D graphic acceleration support though, VIrtualBox in every aspect is better then VMWare unless you are a corporation and really need to serverside your visualization

Also virtualbox is free :P
03-31-2009, 01:34 PM#15
Vexorian
could somebody test jasshelper-cli on
  • darwine?
  • WINE for Intel Macs?
  • Virtual PC
  • OS/X virtual box (normal jasshelper probably works here as well. This is probably the best bet)
Thanks.