Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Namespace Members | Compound Members | File Members

# PictureRGBA8.h

Go to the documentation of this file.

    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  * RGBA8ビットピクチャヘッダ
    00022  * @author Junpee
    00023  */
    00024
    00025 #ifndef PICTURE_RGBA8_H_
    00026 #define PICTURE_RGBA8_H_
    00027
    00028 #include <Graphics/Picture/Picture.h>
    00029
    00030 namespace Lamp{
    00031
    00032 //------------------------------------------------------------------------------
    00033 /**
    00034  * RGBA8ビットピクチャ
    00035  */
    00036 class PictureRGBA8 : public Picture{
    00037 friend class PictureManager;
    00038 public:
    00039     /**
    00040      * RGBA8ビットピクチャかどうか
    00041      * @return RGBA8ビットピクチャならtrue
    00042      */
    00043     virtual bool isPictureRGBA8() const{ return true; }
    00044
    00045     //--------------------------------------------------------------------------
    00046     /**
    00047      * コピー
    00048      * @return コピーされたピクチャ
    00049      */
    00050     virtual Picture* copy() const{ return copyPictureRGBA8(); }
    00051
    00052     /**
    00053      * RGBA8ビットピクチャのコピー
    00054      * @return コピーされたピクチャ
    00055      */
    00056     virtual PictureRGBA8* copyPictureRGBA8() const;
    00057
    00058     //--------------------------------------------------------------------------
    00059     /**
    00060      * デバイスオブジェクトの初期化
    00061      * @return 成功したらtrueを返す
    00062      */
    00063     virtual bool initializeGraphicsDeviceObjects(){ return compile(); }
    00064
    00065     /**
    00066      * デバイスオブジェクトの削除
    00067      */
    00068     virtual void deleteGraphicsDeviceObjects(){ SafeRelease(d3dTexture_); }
    00069
    00070     //--------------------------------------------------------------------------
    00071     /**
    00072      * サイズの設定
    00073      * @param size サイズ
    00074      */
    00075     virtual void setSize(const DimensionI& size);
    00076
    00077     /**
    00078      * イメージバッファの取得
    00079      * @return イメージバッファ
    00080      */
    00081     virtual Color4c* getImageBuffer(){ return image_; }
    00082
    00083     //--------------------------------------------------------------------------
    00084     /**
    00085      * イメージの設定
    00086      * @param image 設定するイメージ
    00087      */
    00088     virtual void setImage(const Color4c* image);
    00089
    00090     /**
    00091      * イメージの取得
    00092      * @return イメージ
    00093      */
    00094     virtual const Color4c* getImage() const{ return image_; }
    00095
    00096     //--------------------------------------------------------------------------
    00097 protected:
    00098     /**
    00099      * コンストラクタ
    00100      * @param name 名前
    00101      * @param scene シーン
    00102      */
    00103     PictureRGBA8(const String& name, Scene* scene);
    00104
    00105     /**
    00106      * デストラクタ
    00107      */
    00108     virtual ~PictureRGBA8();
    00109
    00110     /**
    00111      * D3Dテクスチャの取得
    00112      * @return D3Dテクスチャの取得
    00113      */
    00114     virtual Direct3DTexture* getD3DTexture();
    00115
    00116     /**
    00117      * コンパイル
    00118      * @return 成功すればtrueを返す
    00119      */
    00120     virtual bool compile();
    00121
    00122     /**
    00123      * イメージのコンパイル
    00124      */
    00125     virtual bool compileImage(
    00126         const Color4c* image, const DimensionI& size, int mipmapLevel);
    00127
    00128     /**
    00129      * ミップマップのコンパイル
    00130      */
    00131     virtual bool compileMipmap(
    00132         const Color4c* image, const DimensionI& size, int mipmapLevel);
    00133
    00134 private:
    00135     // Direct3Dテクスチャ
    00136     Direct3DTexture* d3dTexture_;
    00137     // イメージ
    00138     Color4c* image_;
    00139 };
    00140
    00141 //------------------------------------------------------------------------------
    00142 } // End of namespace Lamp
    00143 #endif // End of PICTURE_RGBA8_H_
    00144 //------------------------------------------------------------------------------
    00145