00001 //------------------------------------------------------------------------------ 00002 // Lamp : Open source game middleware 00003 // Copyright (C) 2004 Junpei Ohtani ( Email : junpee@users.sourceforge.jp ) 00004 // 00005 // This library is free software; you can redistribute it and/or 00006 // modify it under the terms of the GNU Lesser General Public 00007 // License as published by the Free Software Foundation; either 00008 // version 2.1 of the License, or (at your option) any later version. 00009 // 00010 // This library is distributed in the hope that it will be useful, 00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 // Lesser General Public License for more details. 00014 // 00015 // You should have received a copy of the GNU Lesser General Public 00016 // License along with this library; if not, write to the Free Software 00017 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00018 //------------------------------------------------------------------------------ 00019 00020 /** @file 00021 * ピクチャマネージャ実装 00022 * @author Junpee 00023 */ 00024 00025 #include "LampBasic.h" 00026 #include "Graphics/Picture/PictureManager.h" 00027 00028 namespace Lamp{ 00029 00030 //------------------------------------------------------------------------------ 00031 // コンストラクタ 00032 PictureManager::PictureManager(Scene* scene) : 00033 SceneObjectManagerTemplate<Picture>(scene){ 00034 } 00035 //------------------------------------------------------------------------------ 00036 // RGB8ビットピクチャの作成 00037 PictureRGB8* PictureManager::createPictureRGB8(const String& pictureName){ 00038 if(!checkName(pictureName)){ return NULL; } 00039 PictureRGB8* picture = new PictureRGB8(pictureName, getScene()); 00040 addDatabase(pictureName, picture); 00041 return picture; 00042 } 00043 //------------------------------------------------------------------------------ 00044 // RGBA8ビットピクチャの作成 00045 PictureRGBA8* PictureManager::createPictureRGBA8(const String& pictureName){ 00046 if(!checkName(pictureName)){ return NULL; } 00047 PictureRGBA8* picture = new PictureRGBA8(pictureName, getScene()); 00048 addDatabase(pictureName, picture); 00049 return picture; 00050 } 00051 //------------------------------------------------------------------------------ 00052 // デバイスオブジェクトの初期化 00053 bool PictureManager::initializeGraphicsDeviceObjects(){ 00054 int pictureCount = getCount(); 00055 for(int i = 0; i < pictureCount; i++){ 00056 if(!get(i)->initializeGraphicsDeviceObjects()){ return false; } 00057 } 00058 return true; 00059 } 00060 //------------------------------------------------------------------------------ 00061 // デバイスオブジェクトの削除 00062 void PictureManager::deleteGraphicsDeviceObjects(){ 00063 int pictureCount = getCount(); 00064 for(int i = 0; i < pictureCount; i++){ 00065 get(i)->deleteGraphicsDeviceObjects(); 00066 } 00067 } 00068 //------------------------------------------------------------------------------ 00069 // デバイスオブジェクトのリストア 00070 bool PictureManager::restoreGraphicsDeviceObjects(){ 00071 int pictureCount = getCount(); 00072 for(int i = 0; i < pictureCount; i++){ 00073 if(!get(i)->restoreGraphicsDeviceObjects()){ return false; } 00074 } 00075 return true; 00076 } 00077 //------------------------------------------------------------------------------ 00078 // デバイスオブジェクトの無効化 00079 void PictureManager::invalidateGraphicsDeviceObjects(){ 00080 int pictureCount = getCount(); 00081 for(int i = 0; i < pictureCount; i++){ 00082 get(i)->invalidateGraphicsDeviceObjects(); 00083 } 00084 } 00085 //------------------------------------------------------------------------------ 00086 } // End of namespace Lamp 00087 //------------------------------------------------------------------------------