From 419ebc8783ba4454cd0f80842df0a8cb3cb71056 Mon Sep 17 00:00:00 2001 From: martin Date: Mon, 13 Jun 2011 19:21:39 +0200 Subject: [PATCH] using now 3d asteroids --- asteroids/View.cc | 38 ++++++++++++++++++++++---------------- engine/ViewBase.cc | 17 +++++------------ 2 files changed, 27 insertions(+), 28 deletions(-) diff --git a/asteroids/View.cc b/asteroids/View.cc index 1ca0bb0..cb3801f 100644 --- a/asteroids/View.cc +++ b/asteroids/View.cc @@ -269,20 +269,6 @@ void View::Draw() { DrawWorld (); } - glPushMatrix(); - - glEnable (GL_LIGHTING); - glEnable (GL_LIGHT0); - - glRotatef (90, 1., 0., 0.); -// glScalef (10., 10., 10.); - DrawOBJModel (mAsteroidModel); - - glDisable (GL_LIGHT0); - glDisable (GL_LIGHTING); - - glPopMatrix(); - DrawUi (); // Perform post-Draw actions @@ -677,6 +663,8 @@ void View::DrawUiLevelIntro() { GetModel()->SetPlayerLives(100); } + glEnable(GL_BLEND); + stringstream level_info_stream; level_info_stream << "Level " << GetModel()->GetCurrentLevelIndex() + 1; @@ -760,6 +748,8 @@ void View::DrawUiLevelIntro() { level_author_dest_y - Engine::GetTimer("LevelIntroLevelAuthor") * level_author_delta_y ); + glDisable(GL_BLEND); + if (Engine::CheckTimer("LevelIntroLevelStart")) { if(Engine::GUI::Button (1, "Start", (screen_right - button_width) * 0.5, screen_bottom * 0.5 + 180, button_width, button_height)) { PopViewState(); @@ -1661,8 +1651,24 @@ void View::DrawShip (ShipEntity *ship) { } void View::DrawAsteroid (AsteroidEntity *asteroid) { - mAsteroidSprite.SetScale (2. * asteroid->mPhysicState->mRadius / mAsteroidSprite.GetWidth()); - mAsteroidSprite.DrawAt(0., 0., 0.); +// mAsteroidSprite.SetScale (2. * asteroid->mPhysicState->mRadius / mAsteroidSprite.GetWidth()); +// mAsteroidSprite.DrawAt(0., 0., 0.); + + glPushMatrix(); + + glEnable (GL_LIGHTING); + glEnable (GL_LIGHT0); + +// glRotatef (90, 1., 0., 0.); + float scale = 1.8 * asteroid->mPhysicState->mRadius; + glScalef (scale, scale, scale); + DrawOBJModel (mAsteroidModel); + + glDisable (GL_LIGHT0); + glDisable (GL_LIGHTING); + + glPopMatrix(); + #ifdef DRAW_BOUNDARIES glColor3f (1., 1., 1.); diff --git a/engine/ViewBase.cc b/engine/ViewBase.cc index ec9ca4d..191f161 100644 --- a/engine/ViewBase.cc +++ b/engine/ViewBase.cc @@ -651,9 +651,6 @@ void ViewBase::DrawOBJModelShaded (OBJModelPtr obj_model) { std::map::const_iterator iter; GLuint texture = 0; - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - for (int i = 0; i < obj_model->getNumberOfMeshes(); ++i) { pMesh = &obj_model->getMesh(i); @@ -721,7 +718,7 @@ void ViewBase::DrawOBJModelShaded (OBJModelPtr obj_model) { glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, texture); } else { - LogMessage ("bumpmap %s not found", pMaterial->bumpMapFilename.c_str()); + LogError ("bumpmap %s not found", pMaterial->bumpMapFilename.c_str()); } // Bind the color map texture. @@ -735,7 +732,7 @@ void ViewBase::DrawOBJModelShaded (OBJModelPtr obj_model) { if (iter != mGLTextures.end()) { texture = iter->second; } else { - LogMessage ("color map %s not found", pMaterial->colorMapFilename.c_str()); + LogError ("color map %s not found", pMaterial->colorMapFilename.c_str()); } } @@ -812,17 +809,13 @@ void ViewBase::DrawOBJModelShaded (OBJModelPtr obj_model) { // as we might be using multiple textures (at least for the normal mapping // case) we have to disable both textures - glActiveTexture(GL_TEXTURE0); - glBindTexture(GL_TEXTURE_2D, 0); - glActiveTexture(GL_TEXTURE1); glBindTexture(GL_TEXTURE_2D, 0); + glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_2D, 0); + glUseProgram(0); - glDisable(GL_BLEND); - - // disable texture drawing -// glDisable(GL_TEXTURE_2D); } /*