irrlicht lib osx

If you are a new Irrlicht Engine user, and have a newbie-question, this is the forum for you. You may also post general programming questions here.
inx

Post by inx »

hello

i applied the two patches:

endien.patch
LinuxDevice.patch

and compiled the library and example "03.CustomSceneNode" again.
Xlib still complains about missing extension XF86-VidMode...

this is the output of the LinuxDevie.patch:

patching file CIrrDeviceLinux.cpp
Hunk #2 succeeded at 115 (offset 12 lines).
Hunk #3 succeeded at 171 (offset 12 lines).
Hunk #4 succeeded at 213 (offset 12 lines).
Hunk #5 succeeded at 284 (offset 12 lines).
Hunk #6 succeeded at 295 (offset 12 lines).
Hunk #7 succeeded at 340 (offset 12 lines).
Hunk #8 succeeded at 399 (offset 12 lines).
Hunk #9 succeeded at 430 (offset 12 lines).
Hunk #10 FAILED at 442.
Hunk #11 succeeded at 669 (offset 31 lines).
Hunk #12 succeeded at 772 (offset 31 lines).
1 out of 12 hunks FAILED -- saving rejects to file CIrrDeviceLinux.cpp.rej
patching file CIrrDeviceLinux.h
patching file include/IrrCompileConfig.h
Hunk #1 succeeded at 20 with fuzz 2 (offset 6 lines).


can you tell me where to disable the VidMode extension manually? or how to check, if it is disabled in the code? (in CIrrDeviceLinux.cpp?)

thanks again.
inx
hybrid

Post by hybrid »

The 10th hunk does not handle VMODE extension changes, but adds XShmem support. So if the files still compile it's ok. But VMODE is enabled by default, so change it in IrrCompileConfig.h (comment the line with __IRR_VMODE__ define).
I don't know why the patch did not work completely, there might be something missing from other patches which I usually add before. I could not see the missing parts immediately, though. This missing hunk will probably raise a core dump upon closing Irrlicht, but shouldn't do any further harm. XShmem is only needed for software renderer, so not that important anyway.
inx

Post by inx »

yeah!

thanks it works....

now the harder part comes up, i think. to make the texturing work...

i had done the endien.patch too, but the "01 Hello World" example couldnt start up because of the missing font:

Could not load texture: #DefaultFont
Error: Could not load built-in Font.


now crawling throught the examples :D

inx
inx

Post by inx »

forgot to say:

as i quitted the first example (03) i got these messages:

Quit message received.
Bus error


inx
hybrid

Post by hybrid »

inx wrote:as i quitted the first example (03) i got these messages:

Quit message received.
Bus error
Yes, there is a problem with releasing the memory allocated for several X11 structures. I did not figure out a correct way to release in all cases. Furthermore, you might encounter this problem also due to missing XShmem setup. There are some checks done for availability of XShmem, and it might be the case that they succeed, but the window is opened without XShmem. This would lead to completey wrong releasing. Anyway, this just occurs at the very end of the app.
hybrid

Post by hybrid »

inx wrote:now the harder part comes up, i think. to make the texturing work...

i had done the endien.patch too, but the "01 Hello World" example couldnt start up because of the missing font:

Could not load texture: #DefaultFont
Error: Could not load built-in Font.
Yes, fonts use bmp so won't work. Try example 10, it's using .x meshes. Just convert the bmp texture of wall to jpeg. Meshes usually use binary objects, so will make some trouble, too. Only .x uses Ascii formats (at least for those meshes from Irrlicht distribution).
Try compiling the engine with #define IRR_BIG_ENDIAN to enable byte swaaping. You'll need the swap functions as well, here's the code from IrrlichtNX:

Code: Select all

// 16 bit swap macro
#define swap16(A) ((((u16)(A) & 0xff00) >> 8) | \
                   (((u16)(A) & 0x00ff) << 8))
// 32 bit swap macro
#define swap32(A) ((((u32)(A) & 0xff000000) >> 24) | \
                   (((u32)(A) & 0x00ff0000) >> 8)  | \
                   (((u32)(A) & 0x0000ff00) << 8)  | \
                   (((u32)(A) & 0x000000ff) << 24))


namespace irr
{
    float swap32f(float)
    {
        // a union is a trick to assign the same data the same phyiscal location
        // this allows us to manipulate the float as if it were an integer by as
signing
        // the data location as a float, but manipulating it as an integer.
        // since most people (including me) rarely use unions, I figured a refre
sher
        // would help :)
        union
        {
            float flt;
            u32 uint;
        } u;

        u.flt = f;
        u.uint = swap32(u.uint);
        return u.flt;
    }
}

inx

Post by inx »

i now try lightfeather. it seems to have a good osx support.

thanks for all the help. at least it worked. ;)

inx
SenVa
Posts: 38
Joined: Fri Oct 14, 2005 1:00 pm
Location: Mi

Post by SenVa »

Wait... I’m slightly confused... did... was someone successfully able to compile irrlicht 0.14.0 on MacOS X?
hybrid

Post by hybrid »

SenVa wrote:Wait... I’m slightly confused... did... was someone successfully able to compile irrlicht 0.14.0 on MacOS X?
:roll: Irrlicht is quite portable, probably also POSIX compliant. So you can compile it right away.
But there are some small problems with X11 under OSX which have been solved. This makes very simple scenes working. But as soon as you use textures or 3d objects the big endian architecture needs lots of changes to Irrlicht. These changes are available as a patch which seems to work quite well, then add the posted code to some file. Now, most things should work, but unfortunately inx quit using Irrlicht, so we don't know (I don't have a Mac at hand). If you have one I'll be glad to help you through the upcoming problems.
Planer
Posts: 1
Joined: Sun Mar 05, 2006 11:23 am

Post by Planer »

hybrid wrote:
inx wrote:now the harder part comes up, i think. to make the texturing work...

i had done the endien.patch too, but the "01 Hello World" example couldnt start up because of the missing font:

Could not load texture: #DefaultFont
Error: Could not load built-in Font.
Yes, fonts use bmp so won't work. Try example 10, it's using .x meshes. Just convert the bmp texture of wall to jpeg. Meshes usually use binary objects, so will make some trouble, too. Only .x uses Ascii formats (at least for those meshes from Irrlicht distribution).
I have an intel-based iMac and most examples compile fine, but in my own project I get the same error-message.

Code: Select all

Could not load texture: #DefaultFont
Error: Could not load built-in Font.
So the problem is, that I don't know what's the different between my project and the one of the irrlicht-distribution, so that the BuildInFont couldn't be loaded.

Any other solutions? :)
Working on: (Intel-)iMac 20" & iBook 12" (PPC)
Project: http://www.lordofdarkness.de
Post Reply