void DRInterface::releaseMem(DRInterface* data, const char* dllname) { if(!data) LOG_ERROR_VOID("data, ZERO-POINTER"); if(!mDLL) { if(!loadDll(dllname)) { LOG_WARNING("keine dll"); DR_SAVE_DELETE(data); } } if(!releaseInstance) loadDll(dllname); if(releaseInstance) { releaseInstance(data); } else { LOG_WARNING("function didn't exist in dll"); DR_SAVE_DELETE(data); } }
IniTest::IniTest(const char* filename) : mIni(NULL) { mIni = new DRIni(filename); if(!mIni->isValid()) { DR_SAVE_DELETE(mIni); } }
DRReturn PlanetSektor::move(float fTime, Camera* cam) { RenderPlanet* render = dynamic_cast<RenderPlanet*>(mRenderer); //mLastRelativeCameraPosition = cam->getSektorPositionAtSektor(this); if(mParent) mLastRelativeCameraPosition = mParent->getCameraPosition() - getPosition(); else mLastRelativeCameraPosition = cam->getSektorPositionAtSektor(this); mTheta = acos(mRadius/mLastRelativeCameraPosition.length())*RADTOGRAD; Unit distance = mLastRelativeCameraPosition.length()-mRadius; distance = distance.convertTo(KM); // mLastRelativeCameraPosition.print("cameraPos"); //printf("\rdistance: %.3f KM, theta: %f", static_cast<double>(distance), mTheta); std::vector<int>* ebene = GlobalRenderer::Instance().getEbenenCount(); char buffer[256]; memset(buffer, 0, 256); for(uint i = 1; i < ebene->size(); i++) sprintf(buffer, "%s %d ", buffer, (*ebene)[i]); printf("\r%s", buffer); if(EnIsButtonPressed(SDLK_k)) cam->setAxis(DRVector3(-1.0f, 0.0f, 0.0f), DRVector3(0.0f, 1.0f, 0.0f), DRVector3(0.0f, 0.0f, -1.0f)); if(isObjectInSektor(mLastRelativeCameraPosition)) { for(u32 i = 0; i < 6; i++) { //horizont culling DRVector3 camPos = mLastRelativeCameraPosition.getVector3().normalize(); double angle = acos(camPos.dot(DRVector3(mSubPlanets[i].x, mSubPlanets[i].y, mSubPlanets[i].z)))*RADTOGRAD-45.0; //printf("\r %d, angle: %f (%f Grad) ", i, angle, angle*RADTOGRAD); if(angle < mTheta) { getChild(mSubPlanets[i]*static_cast<short>(1000)); } //else //printf("\r %d, angle: %f, horizontAngle: %f", i, angle*RADTOGRAD, horizontAngle*RADTOGRAD); } } else { //removeInactiveChilds(1.0f); } removeInactiveChilds(GlobalRenderer::Instance().getTimeForInactiveChilds()); if(mRenderer) { // set player distance to renderer for sort if(render->getRenderNoisePlanetToTexture()) render->getRenderNoisePlanetToTexture()->setCurrentDistance(static_cast<DRReal>(mLastRelativeCameraPosition.length().convertTo(M))); // remove renderer, if we didn't need him if(mNotRenderSeconds >= GlobalRenderer::Instance().getTimeForInactiveChilds()) DR_SAVE_DELETE(mRenderer); } return DR_OK; }
void ende() { g_Player.exit(); g_tex.release(); DR_SAVE_DELETE(g_Font); g_terrain.release(); GlobalRenderer::getSingleton().exit(); ShaderManager::getSingleton().exit(); DRGeometrieManager::getSingleton().exit(); g_RenderBlockLoader.exit(); Server::freeAllServer(); EnExit(); }
IniTest::~IniTest() { DR_SAVE_DELETE(mIni); }
PlanetSektor::~PlanetSektor() { ShaderManager::Instance().releaseShader("sphere.vert", "sphere.frag"); mSphericalShaderForSubPlanet = NULL; DR_SAVE_DELETE(mRenderer); }
void Player::exit() { saveIntoFile(); //DR_SAVE_DELETE(mCurrentSektor); DR_SAVE_DELETE(mCamera); }