newspeoplefor developersdocumentationdownloads

basic02.cc

Go to the documentation of this file.
00001 //------------------------------------------------------------------------------
00031 #include "kernel/nkernelserver.h"
00032 #include "kernel/nfileserver2.h"
00033 #include "resource/nresourceserver.h"
00034 #include "gfx2/ngfxserver2.h"
00035 
00036 // declare packages
00037 nNebulaUsePackage(nnebula);
00038 nNebulaUsePackage(ndirect3d9);
00039 
00040 int
00041 main(int /*argc*/, const char** /*argv*/)
00042 {
00043     nKernelServer* kernelServer = new nKernelServer();
00044 
00045     // all packages have to be declared and added before you use them
00046     kernelServer->AddPackage(nnebula);
00047     kernelServer->AddPackage(ndirect3d9);
00048 
00049     nRef<nResourceServer> refResourceServer;
00050     nRef<nGfxServer2> refGfxServer;
00051     refResourceServer = (nResourceServer*)kernelServer->New("nresourceserver", "/sys/servers/resource");
00052     refGfxServer = (nGfxServer2*)kernelServer->New("nd3d9server", "/sys/servers/gfx");
00053 
00054     // set shaders assign, needed for the gfx server,
00055     // this means that "shaders:" can be used to refer to the given directory.
00056     kernelServer->GetFileServer()->SetAssign("shaders", "home:data/shaders/fixed");
00057 
00058     nDisplayMode2 DisplayMode(
00059         "Nebula2: Basic Example 02",
00060         nDisplayMode2::Windowed,
00061         0, 0,
00062         640, 480,
00063         false, false, "icon");
00064     refGfxServer->SetDisplayMode(DisplayMode);
00065 
00066     bool result;
00067     result = refGfxServer->OpenDisplay();
00068     n_assert(result);
00069 
00070     // to avoid dereferencing the nRef all the time
00071     // get a pointer to the gfx server.
00072     nGfxServer2* gfxServer = refGfxServer.get();
00073 
00074     // trigger the gfx server once every frame
00075     // Trigger() returns false if you close the window
00076     while (gfxServer->Trigger())
00077     {
00078         gfxServer->BeginFrame();
00079         gfxServer->BeginScene();
00080         gfxServer->Clear(nGfxServer2::AllBuffers, 0.0f, 0.8f, 0.6f, 0.4f, 0.0f, 0);
00081 
00082         gfxServer->EndScene();
00083         gfxServer->PresentScene();
00084         gfxServer->EndFrame();
00085 
00086         // allow Windows to multitask
00087         n_sleep(0.0);
00088     }
00089 
00090     refGfxServer->CloseDisplay();
00091 
00092     refGfxServer->Release();
00093     refResourceServer->Release();
00094 
00095     delete kernelServer;
00096     return 0;
00097 }

Copyright © 1999-2005 by the contributing authors. Ideas, requests, problems: Send feedback.