Skip to main content

History: MacDotScene

Source of version: 3 (current)

Copy to clipboard
            ''Made with Ogre 1.0.4 | OSX 10.4.2 | XCode 2.1''

!!Introduction : What are we going to do here ?
The goal is here to build both the dotSceneManager plugin AND the octree converter. For that purpose, we will create a project and two targets in it.

!!Building the dotSceneManager Plugin
First, open XCode and make a new project 

Choose a Cocoa Bundle 

Then choose your project directory and name : Plugin_DotSceneManager would be easier

Remove :
* the CoreData framework
* the Foundation framework
* the AppKit framework
* the .pch file

Add 2 new groups in Classes :
* __Plugin__
* __Common__

Add the existing files in __Plugin__ :
* from ogreaddons/dotsceneoctree/PlugIns/DotSceneManager/include :
** DotSceneManager.h
** SceneMain.h
** SceneOctree.h
** SceneOctreeRenderable.h
* from ogreaddons/dotsceneoctree/PlugIns/DotSceneManager/src
** DotSceneManager.cpp
** DotSceneManagerDLL.cpp
** SceneMain.cpp
** SceneOctree.cpp
** SceneOctreeRenderable.cpp

Add the existing files in __Common__ :
* from ogreaddons/dotsceneoctree/PlugIns/DotSceneManager/include :
** tinystr.h
** tinyxml.h
* from ogreaddons/dotsceneoctree/PlugIns/DotSceneManager/src
** tinystr.cpp    
** tinyxml.cpp
** tinyxmlerror.cpp
** tinyxmlparser.cpp

Add the frameworks :
* Cocoa from /System/Library/
* Ogre, SDL & zzip from ~/Library/

In tinyxml.h, add #define TIXML_USE_STL on the first line to avoid conversion errors with Ogre::String

Then go to your project options
* in header search paths put : $(HOME)/Library/Frameworks/Ogre.framework/Versions/A/Headers
* in framework search path put : $(HOME)/Library/Frameworks
* delete the "Prefix Header" entry
* uncheck the "Precompile Prefix Header"

Hit Build and you already have you DotSceneManager Plugin !

!!Building the dotScene converter
Create a new target on the same project : BSD => Shell Tool

Name it dotSceneConverter

Add a new group : __Converter__

Add it the files (when adding, be sure to add the files to the dotSceneConverter target) : 
* from ogrenew/Mac/XCode/Classes : 
** SDLMain.h
** SDLMain.m
* from ogreaddons/dotsceneoctree/Tools/ExampleSceneConverter/include/
** SceneConverter.h
** SceneConverterOctree.h
** SceneConverterOctreeObjects.h
* from ogreaddons/dotsceneoctree/Tools/ExampleSceneConverter/src
** main.cpp
** SceneConverter.cpp
** SceneConverterOctree.cpp
** SceneConverterOctreeObjects.cpp

In your target :
* add the *.cpp from the __Common__ group we created earlier to the "Compile Sources" build phase
* add Cocoa, Ogre, SDL and zzip frameworks to the "Link Binary With Library" build phase

In main.cpp, wrap the main function with : extern "C" { }

This should be like this then :

{CODE(wrap="1", colors="c++")}extern "C" 
{
    main (int numargs, char** args)
    {
        ...
    }
}{CODE}

Then go to your project options

in header search paths put : $(HOME)/Library/Frameworks/Ogre.framework/Versions/A/Headers

in framework search path put : $(HOME)/Library/Frameworks

Change the current target to build, hit build and enjoy !

!!Conclusion : How to use this now ?
You have to ways now for the bundle :
* either you copy the new bundle to $(HOME)/Library/Frameworks/Ogre.framework/Versions/A/Resources. In that case, you'll be sure to have for any new Ogre project,
* or you just link your projects with the bundle when you really need it.

For the converter, just use it with the terminal, as usual.

Any remarks ? please pm __fp12__ on the forum ;)