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 "Graphics2D/SpriteState/ViewportSpriteState.h" 00027 #include "Graphics/Renderer/RenderingDevice.h" 00028 00029 namespace Lamp{ 00030 00031 // 無効 00032 const ViewportSpriteState ViewportSpriteState::disableState( 00033 RectangleI(0, 0, 0, 0)); 00034 00035 // デフォルト 00036 const ViewportSpriteState ViewportSpriteState::defaultState(disableState); 00037 00038 //------------------------------------------------------------------------------ 00039 // コンストラクタ 00040 ViewportSpriteState::ViewportSpriteState() : rectangle_(RectangleI::zero){ 00041 } 00042 //------------------------------------------------------------------------------ 00043 // コンストラクタ 00044 ViewportSpriteState::ViewportSpriteState(const RectangleI& rectangle) : 00045 rectangle_(rectangle){ 00046 } 00047 //------------------------------------------------------------------------------ 00048 // デストラクタ 00049 ViewportSpriteState::~ViewportSpriteState(){ 00050 } 00051 //------------------------------------------------------------------------------ 00052 // 描画 00053 //------------------------------------------------------------------------------ 00054 // 適用 00055 void ViewportSpriteState::apply(SpriteRenderState* renderState){ 00056 RenderingDevice* device = RenderingDevice::getInstance(); 00057 if(isEnabled()){ 00058 device->setViewport(rectangle_); 00059 }else{ 00060 device->resetViewport(); 00061 } 00062 } 00063 //------------------------------------------------------------------------------ 00064 } // End of namespace Lamp 00065 //------------------------------------------------------------------------------