77 lines
2.7 KiB
C++
77 lines
2.7 KiB
C++
// ----------------------------------------------------------------------------
|
|
// Include the main OGRE header files
|
|
// Ogre.h just expands to including lots of individual OGRE header files
|
|
// ----------------------------------------------------------------------------
|
|
#include <Ogre.h>
|
|
// ----------------------------------------------------------------------------
|
|
// Include the OGRE example framework
|
|
// This includes the classes defined to make getting an OGRE application running
|
|
// a lot easier. It automatically sets up all the main objects and allows you to
|
|
// just override the bits you want to instead of writing it all from scratch.
|
|
// ----------------------------------------------------------------------------
|
|
#include <ExampleApplication.h>
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// Define the application object
|
|
// This is derived from ExampleApplication which is the class OGRE provides to
|
|
// make it easier to set up OGRE without rewriting the same code all the time.
|
|
// You can override extra methods of ExampleApplication if you want to further
|
|
// specialise the setup routine, otherwise the only mandatory override is the
|
|
// 'createScene' method which is where you set up your own personal scene.
|
|
// ----------------------------------------------------------------------------
|
|
class SampleApp : public ExampleApplication
|
|
{
|
|
public:
|
|
// Basic constructor
|
|
SampleApp()
|
|
{}
|
|
|
|
protected:
|
|
|
|
// Just override the mandatory create scene method
|
|
void createScene(void)
|
|
{
|
|
// Create the SkyBox
|
|
mSceneMgr->setSkyBox(true, "Examples/CloudyNoonSkyBox");
|
|
|
|
// Create a light
|
|
Light* myLight = mSceneMgr->createLight("Light0");
|
|
myLight->setType(Light::LT_POINT);
|
|
myLight->setPosition(0, 40, 0);
|
|
myLight->setDiffuseColour(1, 1, 1);
|
|
myLight->setSpecularColour(1, 1, 1);
|
|
}
|
|
};
|
|
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// Main function, just boots the application object
|
|
// ----------------------------------------------------------------------------
|
|
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
|
|
#define WIN32_LEAN_AND_MEAN
|
|
#include "windows.h"
|
|
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )
|
|
#else
|
|
int main(int argc, char **argv)
|
|
#endif
|
|
{
|
|
// Create application object
|
|
SampleApp app;
|
|
|
|
try
|
|
{
|
|
app.go();
|
|
}
|
|
catch( Exception& e )
|
|
{
|
|
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
|
|
MessageBox( NULL, e.getFullDescription().c_str(), "An exception has occured!", MB_OK | MB_ICONERROR | MB_TASKMODAL);
|
|
#else
|
|
|
|
std::cerr << "An exception has occured: " << e.getFullDescription();
|
|
#endif
|
|
}
|
|
|
|
return 0;
|
|
}
|