//------------------------------------------------------------------
// Storm3D_Light_Point::Apply
//------------------------------------------------------------------
void Storm3D_Light_Point::Apply(int num)
{
	// Temp handle
	D3DLIGHT8 lgt;
	ZeroMemory(&lgt,sizeof(D3DLIGHT8));

	// Set colors
	lgt.Diffuse.r=color.r*multiplier;
	lgt.Diffuse.g=color.g*multiplier;
	lgt.Diffuse.b=color.b*multiplier;
	lgt.Specular.r=color.r*multiplier;
	lgt.Specular.g=color.g*multiplier;
	lgt.Specular.b=color.b*multiplier;
	lgt.Ambient.r=0;//color.r*0.1f*multiplier;
	lgt.Ambient.g=0;//color.g*0.1f*multiplier;
	lgt.Ambient.b=0;//color.b*0.1f*multiplier;

	// Update global values if needed
	UpdateGlobals();

	// Pointlight specials
	lgt.Type=D3DLIGHT_POINT;
	lgt.Position=D3DXVECTOR3(position_global.x,
		position_global.y,position_global.z);
	lgt.Range=10*decay;
	lgt.Attenuation0=1;//1;
	lgt.Attenuation1=1/decay;
	lgt.Attenuation2=0;

	// Set light (to 3d-card)
	Storm3D2->GetD3DDevice()->SetLight(num,&lgt);
}
예제 #2
0
void ArpTelnetSettings::AttachedToWindow()
{
	inherited::AttachedToWindow();
	BView* par = Parent();
	ArpColor col = ui_color(B_PANEL_BACKGROUND_COLOR);
	if( par ) col = par->ViewColor();
	ArpMessage updColor;
	updColor.AddRGBColor("StdBackColor", col);
	UpdateGlobals(&updColor);
	
	mImpl.AttachedToWindow();
}
//------------------------------------------------------------------
// Storm3D_Light_Point::GetGlobalPosition
//------------------------------------------------------------------
VC3 &Storm3D_Light_Point::GetGlobalPosition()
{
	// Update global values if needed
	UpdateGlobals();
	return position_global;
}