//	指定された矩形領域を塗りつぶす
void CMglImage::Paint( RECT* rect, D3DCOLOR color )
{
	CreateCheck();	//	Createチェック

	if ( m_bRenderTarget == TRUE )
	{
		//	現在のレンダーを保持(勝手に書き換えちゃマズいからなw)
		IDirect3DSurface8* bkupRender;
		d3d->GetRenderTarget( &bkupRender );

		SetRender();
		//d3d->Clear( 0, NULL, D3DCLEAR_TARGET, color, 1.0f, 0 );	//	|D3DCLEAR_ZBUFFER
		m_myudg->Paint( rect, color );	//	|D3DCLEAR_ZBUFFER

		//	レンダーを元に戻す
		MyuAssert( d3d->SetRenderTarget( bkupRender, NULL ), D3D_OK, //m_myudg->lpZbuffer
			"CMglImage::Clear()  レンダーを戻すのに失敗" );
	}
	else
	{
		//	別にクリアされたサーフェスを作成してそこからコピー、と言う面倒な処理(´Д`)
		CMglImage workSurface;
		workSurface.Init( m_myudg );
		workSurface.Create();	//	レンダリング先はTRUEにしないと無限再帰してしまう
		workSurface.Paint( rect, color );
		CopyRectToThis( &workSurface );
	}
}
示例#2
0
void CMglTexture::Clear__( D3DCOLOR color )
{
	CreateCheck();	//	Createチェック
	LockedCheck();

	if ( m_bRenderTarget == TRUE )
	{
		//	現在のレンダーを保持(勝手に書き換えちゃマズいからなw)
		_MGL_IDirect3DSurface* bkupRender;
#if _MGL_DXVER == 9
		d3d->GetRenderTarget( 0, &bkupRender );
#else
		d3d->GetRenderTarget( &bkupRender );
#endif
		SetRender();
		//d3d->Clear( 0, NULL, D3DCLEAR_TARGET, color, 1.0f, 0 );	//	|D3DCLEAR_ZBUFFER
		m_myudg->Clear( color );	//	|D3DCLEAR_ZBUFFER
		//	D3DCOLOR_FULLALPHA

		//	レンダーを元に戻す
#if _MGL_DXVER == 9
		MyuAssert( d3d->SetRenderTarget( 0, bkupRender ), D3D_OK,
#else
		MyuAssert( d3d->SetRenderTarget( bkupRender, NULL ), D3D_OK, //m_myudg->lpZbuffer
#endif
			"CMglTexture::Clear()  レンダーを戻すのに失敗" );
	}
示例#3
0
//-------------------------------------------------------------------------------------------------------
LightNode::LightNode( LightType lt, LightStyle la )
    :LocatableObject(this),
     m_pShadowCaster(NULL),
     m_eLightType( lt ),
     m_eFakeReal( la ),
     m_HaloSize( 0.12f, 0.25f ),
     m_isActive(true),
     m_LightRange(1.0f),
     m_pLighthalo(NULL),
     m_MaxScale(1.0),
     m_isCastShadow(false),
     m_Color(0.2,0.2,0.2),
     m_LightAngle(PI/4,PI/3),
     m_LightAttrib(0),
     m_isLightChange(true),
     m_Attenuation(1,0,0,0)
{
    SetRender(false);
    Engine::Instance().GetEnvironment()->_AddLightNode( this );
    m_pLighthalo = NEW Billboard;
    m_pLighthalo->SetBillCoordnate( vector2f(0,0), vector2f(1,1) );
}
bool GameScene::Init()
{
	bool isValid = BaseScene::Init();

	if (isValid)
	{
		rapidjson::Document* myDoc = GetDoc();

		// Load map.
		m_map = NEW(Map, ((*myDoc)["map"].GetString()));
		MapScene* myRender = 0;
		if (m_map)
		{
			SetRender(NEW(MapScene, (m_map)));
			myRender = reinterpret_cast<MapScene*>(GetRender());
		}
//		MapScene* myRender = reinterpret_cast<MapScene*>(GetRender());
		if (myRender)
		{
			const char* dirImage = (*myDoc)["background"].GetString();
			SpriteFactory::TSpriteNode* myImage = SpriteFactory::Instance().CreateImageNode(dirImage);
			myRender->SetBackgroundImage(myImage->m_image);
			myRender->GetCamera().SetBounds(0, 0, myRender->GetMap()->GetWidth(), myRender->GetMap()->GetHeight());
			double cameraX = (*myDoc)["camera"]["x"].GetDouble();
			double cameraY = (*myDoc)["camera"]["y"].GetDouble();
			myRender->GetCamera().SetPosition(cameraX, cameraY);

			// Load entities types.
			const rapidjson::Value& myInfo = (*myDoc)["typesEntities"];
			unsigned int numInfo = myInfo.Size();
			for (unsigned int i = 0; i < numInfo; i++)
				EntityFactory::Instance().LoadInfo(myInfo[i]);

			// Load entities.
			const rapidjson::Value& entities = (*myDoc)["entities"];
			unsigned int numEntities = entities.Size();
			isValid = true;
			for (unsigned int i = 0; i < numEntities && isValid; i++)
			{
				BaseEntity* myEntity = EntityFactory::Instance().CreateEntity(entities[i]);
				if (myEntity)
				{
					myEntity->AddToScene(this);
					if (myEntity->GetSprite())
					{
						Sprite* mySprite = myEntity->GetSprite()->m_sprite;
						mySprite->SetMap(m_map);
						mySprite->SetCollisionPixelData(NEW(CollisionPixelData, ("./data/sprites/dwarf_col.png")));
						mySprite->SetCollision(Sprite::COLLISION_PIXEL);
					}
					m_entities.Add(myEntity);
					isValid = m_entities.Last()->Init();
				}
				else
					isValid = false;
			}
		}
	}

	return isValid;
}
示例#5
0
//コンストラクタ
Ita::Ita(float u, float v){
	size.x = 0.0;
	size.y = 0.0;
	SetRender(u, v);
}
示例#6
0
	//--------------------------------------------------------------------------------------------------------------------------------------
	ObjectRoot::ObjectRoot( )
		:LocatableObject(this)
	{
		SetRender( false );
	}