/* orxonox - the future of 3D-vertical-scrollers Copyright (C) 2004 orx This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ### File Specific: main-programmer: Benjamin Grauer co-programmer: ... this file extends the framework file, so it renders what i want. */ #include "framework.h" #include "light.h" #include "texture_sequence.h" #include "material.h" #include "objModel.h" #include "primitive_model.h" #include #include "resource_manager.h" #include "media_container.h" Model* obj; TextureSequence* seq; Texture* test; Material* testMat; MediaContainer* movie; float counter = 0; void Framework::moduleInit(int argc, char** argv) { movie = new MediaContainer(argv[2]); // print information about the media file movie->printMediaInformation(); ResourceManager::getInstance()->addImageDir("./"); testMat = new Material; seq = new TextureSequence(); while(seq->addFrame(movie->getNextFrame()) != NULL); test = new Texture(); // ???: Only works if i set as diffuse map an image // from the avifile created with importer (frameXX.ppm) testMat->setDiffuseMap(argv[1]); ResourceManager::getInstance()->addImageDir(""); obj = new PrimitiveModel(PRIM_PLANE, 10.0); ResourceManager::getInstance()->debug(); LightManager* lightMan = LightManager::getInstance(); lightMan->setAmbientColor(.1,.1,.1); (new Light())->setAbsCoor(5.0, 10.0, 40.0); (new Light())->setAbsCoor(-10, -20, -100); } void Framework::moduleEventHandler(SDL_Event* event) { switch (event->type) { case SDL_KEYDOWN: switch (event->key.keysym.sym) { case SDLK_1: obj = new PrimitiveModel(PRIM_CUBE, 10.0); break; case SDLK_2: obj = new PrimitiveModel(PRIM_SPHERE, 10.0); break; case SDLK_3: obj = new PrimitiveModel(PRIM_PLANE, 10.0); break; } } } void Framework::moduleTick(float dt) { counter += 0.2; seq->gotoFrame((unsigned int)counter); if ((unsigned int)counter > seq->getFrameCount()) counter = 0; } void Framework::moduleDraw(void) const { testMat->select(); glBindTexture(GL_TEXTURE_2D, seq->getTexture()); obj->draw(); LightManager::getInstance()->draw(); } void Framework::moduleHelp(void) const { }