From: Markus R. <rol...@us...> - 2007-02-16 15:42:36
|
Update of /cvsroot/simspark/simspark/spark/kerosin/sceneserver In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv24230/sceneserver Modified Files: Tag: WIN32 light.cpp light.h Log Message: - cleanup - use CachedPath objects to cache references Index: light.h =================================================================== RCS file: /cvsroot/simspark/simspark/spark/kerosin/sceneserver/light.h,v retrieving revision 1.1 retrieving revision 1.1.2.1 diff -C2 -d -r1.1 -r1.1.2.1 *** light.h 5 Dec 2005 21:38:23 -0000 1.1 --- light.h 16 Feb 2007 15:40:49 -0000 1.1.2.1 *************** *** 24,27 **** --- 24,28 ---- #include <kerosin/openglserver/glbase.h> + #include <kerosin/openglserver/openglserver.h> #include "staticmesh.h" #include "oxygen/geometryserver/indexbuffer.h" *************** *** 121,126 **** std::vector<oxygen::IndexBuffer> mCachedIndices; ! /** reference to the RenderServer */ ! boost::shared_ptr<OpenGLServer> mOpenGLServer; }; --- 122,127 ---- std::vector<oxygen::IndexBuffer> mCachedIndices; ! /** reference to the OpenGLServer */ ! CachedPath<OpenGLServer> mOpenGLServer; }; Index: light.cpp =================================================================== RCS file: /cvsroot/simspark/simspark/spark/kerosin/sceneserver/light.cpp,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** light.cpp 10 Feb 2007 16:18:24 -0000 1.1.2.1 --- light.cpp 16 Feb 2007 15:40:48 -0000 1.1.2.2 *************** *** 26,30 **** #include "light.h" #include <kerosin/renderserver/renderserver.h> - #include <kerosin/openglserver/openglserver.h> #include <zeitgeist/logserver/logserver.h> --- 26,29 ---- *************** *** 159,163 **** void Light::FlushCache() { ! const unsigned int n = static_cast<unsigned int>(mCachedIndices.size()); --- 158,162 ---- void Light::FlushCache() { ! const unsigned int n = static_cast<unsigned int>(mCachedIndices.size()); *************** *** 177,215 **** void Light::OnLink() { ! mOpenGLServer = shared_dynamic_cast<OpenGLServer> ! (GetCore()->Get("sys/server/opengl")); ! if (mOpenGLServer.get() == 0) { GetLog()->Error() << "(Light) ERROR: OpenGLServer not found\n"; ! } else ! { ! mGLLight = mOpenGLServer->AllocLight(); ! ! if (mGLLight < 0) ! { ! GetLog()->Error() ! << "(Light) ERROR: No more OpenGL lights available\n"; ! } ! ! #if 0 ! mVP = mOpenGLServer->LoadARBVertexProgram("sys/program/omnilight.vp"); ! if (mVP == 0) ! { ! GetLog()->Error() ! << "(Light) ERROR: Could not load vertex program\n"; ! } ! ! mFP = mOpenGLServer->LoadARBFragmentProgram("sys/program/omnilight.fp"); ! if (mFP == 0) ! { ! GetLog()->Error() ! << "(Light) ERROR: Could not load fragment program\n"; ! } ! #endif ! } } --- 176,195 ---- void Light::OnLink() { ! RegisterCachedPath(mOpenGLServer, "sys/server/opengl"); ! if (mOpenGLServer.expired()) { GetLog()->Error() << "(Light) ERROR: OpenGLServer not found\n"; ! return; ! } ! mGLLight = mOpenGLServer->AllocLight(); + if (mGLLight < 0) + { + GetLog()->Error() + << "(Light) ERROR: No more OpenGL lights available\n"; + } } *************** *** 217,221 **** { if ( ! (mOpenGLServer.get() != 0) && (mGLLight >= 0) ) --- 197,201 ---- { if ( ! (! mOpenGLServer.expired()) && (mGLLight >= 0) ) *************** *** 225,229 **** } ! mOpenGLServer.reset(); } --- 205,209 ---- } ! BaseNode::OnUnlink(); } |