commit x64 compilation from lulu cause the other branch dont seems to compile properly at home
This commit is contained in:
347
include/modules/script_squirrel/legacy/light_binding.cpp
Normal file
347
include/modules/script_squirrel/legacy/light_binding.cpp
Normal file
@ -0,0 +1,347 @@
|
||||
/* -----------------------------------------------------------------------------
|
||||
GSFramework
|
||||
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
|
||||
----------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
#include "binding_helpers.h"
|
||||
#include "scene3d/mlight.h"
|
||||
|
||||
using namespace GS::S3D;
|
||||
using namespace GS::Script;
|
||||
|
||||
|
||||
static CObjectType light_derived_types[] = { typetag_Item, typetag_Light, typetag_Undefined };
|
||||
|
||||
SQInteger LightGetDiffuseIntensity(HSQUIRRELVM vm)
|
||||
{
|
||||
__SQ_GETSINGLE(__SQ_GETCOBJECTBASE(l, MLight, light_derived_types))
|
||||
__SQ_RETURNFLOAT(l->diffuse_intensity)
|
||||
}
|
||||
|
||||
SQInteger LightSetProjectionTexture(HSQUIRRELVM vm)
|
||||
{
|
||||
__SQ_GETSTART(2)
|
||||
__SQ_GETCOBJECTBASE(l, MLight, light_derived_types)
|
||||
__SQ_GETSAFEPTR(t, GS::Render::Texture, typetag_Texture)
|
||||
l->render_data->projection_texture = t;
|
||||
__SQ_GETEND
|
||||
__SQ_RETURN
|
||||
}
|
||||
SQInteger LightSetDiffuseIntensity(HSQUIRRELVM vm)
|
||||
{
|
||||
__SQ_GETSTART(2)
|
||||
__SQ_GETCOBJECTBASE(l, MLight, light_derived_types)
|
||||
__SQ_GETFLOAT(i)
|
||||
__SQ_GETEND
|
||||
l->diffuse_intensity = i;
|
||||
__SQ_RETURN
|
||||
}
|
||||
SQInteger LightGetDiffuseColor(HSQUIRRELVM vm)
|
||||
{
|
||||
__SQ_GETSINGLE(__SQ_GETCOBJECTBASE(l, MLight, light_derived_types))
|
||||
__SQ_RETURNVECTOR(l->diffuse_color)
|
||||
}
|
||||
SQInteger LightSetDiffuseColor(HSQUIRRELVM vm)
|
||||
{
|
||||
__SQ_GETSTART(2)
|
||||
__SQ_GETCOBJECTBASE(l, MLight, light_derived_types)
|
||||
__SQ_GETVECTOR(color)
|
||||
__SQ_GETEND
|
||||
l->diffuse_color = color;
|
||||
__SQ_RETURN
|
||||
}
|
||||
SQInteger LightGetSpecularIntensity(HSQUIRRELVM vm)
|
||||
{
|
||||
__SQ_GETSINGLE(__SQ_GETCOBJECTBASE(l, MLight, light_derived_types))
|
||||
__SQ_RETURNFLOAT(l->specular_intensity)
|
||||
}
|
||||
SQInteger LightSetSpecularIntensity(HSQUIRRELVM vm)
|
||||
{
|
||||
__SQ_GETSTART(2)
|
||||
__SQ_GETCOBJECTBASE(l, MLight, light_derived_types)
|
||||
__SQ_GETFLOAT(i)
|
||||
__SQ_GETEND
|
||||
l->specular_intensity = i;
|
||||
__SQ_RETURN
|
||||
}
|
||||
SQInteger LightGetSpecularColor(HSQUIRRELVM vm)
|
||||
{
|
||||
__SQ_GETSINGLE(__SQ_GETCOBJECTBASE(l, MLight, light_derived_types))
|
||||
__SQ_RETURNVECTOR(l->specular_color)
|
||||
}
|
||||
SQInteger LightSetSpecularColor(HSQUIRRELVM vm)
|
||||
{
|
||||
__SQ_GETSTART(2)
|
||||
__SQ_GETCOBJECTBASE(l, MLight, light_derived_types)
|
||||
__SQ_GETVECTOR(color)
|
||||
__SQ_GETEND
|
||||
l->specular_color = color;
|
||||
__SQ_RETURN
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
SQInteger LightSetConeAngle(HSQUIRRELVM vm)
|
||||
{
|
||||
__SQ_GETSTART(2)
|
||||
__SQ_GETCOBJECTBASE(l, MLight, light_derived_types)
|
||||
__SQ_GETFLOAT(angle)
|
||||
__SQ_GETEND
|
||||
l->cone_angle = angle;
|
||||
__SQ_RETURN
|
||||
}
|
||||
SQInteger LightGetConeAngle(HSQUIRRELVM vm)
|
||||
{
|
||||
__SQ_GETSINGLE(__SQ_GETCOBJECTBASE(l, MLight, light_derived_types))
|
||||
__SQ_RETURNFLOAT(l->cone_angle)
|
||||
}
|
||||
SQInteger LightSetEdgeAngle(HSQUIRRELVM vm)
|
||||
{
|
||||
__SQ_GETSTART(2)
|
||||
__SQ_GETCOBJECTBASE(l, MLight, light_derived_types)
|
||||
__SQ_GETFLOAT(angle)
|
||||
__SQ_GETEND
|
||||
l->edge_angle = angle;
|
||||
__SQ_RETURN
|
||||
}
|
||||
SQInteger LightGetEdgeAngle(HSQUIRRELVM vm)
|
||||
{
|
||||
__SQ_GETSINGLE(__SQ_GETCOBJECTBASE(l, MLight, light_derived_types))
|
||||
__SQ_RETURNFLOAT(l->edge_angle)
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
SQInteger LightSetRange(HSQUIRRELVM vm)
|
||||
{
|
||||
__SQ_GETSTART(2)
|
||||
__SQ_GETCOBJECTBASE(l, MLight, light_derived_types)
|
||||
__SQ_GETFLOAT(range)
|
||||
__SQ_GETEND
|
||||
l->range = range;
|
||||
__SQ_RETURN
|
||||
}
|
||||
SQInteger LightGetRange(HSQUIRRELVM vm)
|
||||
{
|
||||
__SQ_GETSINGLE(__SQ_GETCOBJECTBASE(l, MLight, light_derived_types))
|
||||
__SQ_RETURNFLOAT(l->range)
|
||||
}
|
||||
SQInteger LightSetShadowRange(HSQUIRRELVM vm)
|
||||
{
|
||||
__SQ_GETSTART(2)
|
||||
__SQ_GETCOBJECTBASE(l, MLight, light_derived_types)
|
||||
__SQ_GETFLOAT(shadow_range)
|
||||
__SQ_GETEND
|
||||
l->shadow_range = shadow_range;
|
||||
__SQ_RETURN
|
||||
}
|
||||
SQInteger LightGetShadowRange(HSQUIRRELVM vm)
|
||||
{
|
||||
__SQ_GETSINGLE(__SQ_GETCOBJECTBASE(l, MLight, light_derived_types))
|
||||
__SQ_RETURNFLOAT(l->shadow_range)
|
||||
}
|
||||
SQInteger LightSetVolumeRange(HSQUIRRELVM vm)
|
||||
{
|
||||
__SQ_GETSTART(2)
|
||||
__SQ_GETCOBJECTBASE(l, MLight, light_derived_types)
|
||||
__SQ_GETFLOAT(range)
|
||||
__SQ_GETEND
|
||||
l->volume_range = range;
|
||||
__SQ_RETURN
|
||||
}
|
||||
SQInteger LightGetVolumeRange(HSQUIRRELVM vm)
|
||||
{
|
||||
__SQ_GETSINGLE(__SQ_GETCOBJECTBASE(l, MLight, light_derived_types))
|
||||
__SQ_RETURNFLOAT(l->volume_range)
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
SQInteger LightGetItem(HSQUIRRELVM vm)
|
||||
{
|
||||
__SQ_GETSINGLE(__SQ_GETCOBJECTBASE(l, MLight, light_derived_types))
|
||||
__SQ_RETURNSAFEPTR((MItem *)l, typetag_Item)
|
||||
}
|
||||
SQInteger LightGetType(HSQUIRRELVM vm)
|
||||
{
|
||||
__SQ_GETSINGLE(__SQ_GETCOBJECTBASE(l, MLight, light_derived_types))
|
||||
__SQ_RETURNINT(l->model)
|
||||
}
|
||||
SQInteger LightSetType(HSQUIRRELVM vm)
|
||||
{
|
||||
__SQ_GETSTART(2)
|
||||
__SQ_GETCOBJECTBASE(l, MLight, light_derived_types)
|
||||
__SQ_GETINT(_type)
|
||||
__SQ_GETEND
|
||||
l->model = (GS::Core::Light::Model)_type;
|
||||
__SQ_RETURN
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
void RegisterLightBinding(HSQUIRRELVM vm)
|
||||
{
|
||||
/*#
|
||||
Topic: Light
|
||||
Type: Light
|
||||
Related: Item
|
||||
#*/
|
||||
|
||||
/*#
|
||||
Section: LightColor
|
||||
Desc: Light color functions
|
||||
#*/
|
||||
/*#
|
||||
Func: LightGetDiffuseIntensity
|
||||
Proto: float:Light
|
||||
Desc: Get light diffuse intensity.
|
||||
#*/
|
||||
sq_register(vm, LightGetDiffuseIntensity, "LightGetDiffuseIntensity", _SC(".x"));
|
||||
/*#
|
||||
Func: LightGetDiffuseColor
|
||||
Proto: Vector:Light
|
||||
Desc: Get light diffuse color.
|
||||
#*/
|
||||
sq_register(vm, LightGetDiffuseColor, "LightGetDiffuseColor", _SC(".x"));
|
||||
/*#
|
||||
Func: LightSetDiffuseIntensity
|
||||
Proto: void:Light,float intensity
|
||||
Desc: Set light diffuse intensity.
|
||||
#*/
|
||||
sq_register(vm, LightSetDiffuseIntensity, "LightSetDiffuseIntensity", _SC(".xn"));
|
||||
/*#
|
||||
Func: LightSetDiffuseColor
|
||||
Proto: void:Light,Vector color
|
||||
Desc: Set light diffuse color.
|
||||
#*/
|
||||
sq_register(vm, LightSetDiffuseColor, "LightSetDiffuseColor", _SC(".xx"));
|
||||
/*#
|
||||
Func: LightGetSpecularIntensity
|
||||
Proto: float:Light
|
||||
Desc: Get light specular intensity.
|
||||
#*/
|
||||
sq_register(vm, LightGetSpecularIntensity, "LightGetSpecularIntensity", _SC(".x"));
|
||||
/*#
|
||||
Func: LightGetSpecularColor
|
||||
Proto: Vector:Light
|
||||
Desc: Get light specular color.
|
||||
#*/
|
||||
sq_register(vm, LightGetSpecularColor, "LightGetSpecularColor", _SC(".x"));
|
||||
/*#
|
||||
Func: LightSetSpecularIntensity
|
||||
Proto: void:Light,float intensity
|
||||
Desc: Set light specular intensity.
|
||||
#*/
|
||||
sq_register(vm, LightSetSpecularIntensity, "LightSetSpecularIntensity", _SC(".xn"));
|
||||
/*#
|
||||
Func: LightSetSpecularColor
|
||||
Proto: void:Light,Vector color
|
||||
Desc: Set light specular color.
|
||||
#*/
|
||||
sq_register(vm, LightSetSpecularColor, "LightSetSpecularColor", _SC(".xx"));
|
||||
|
||||
/*#
|
||||
Section: LightSpot
|
||||
Desc: Spot functions
|
||||
#*/
|
||||
/*#
|
||||
Func: LightSetConeAngle
|
||||
Proto: void:Light,float angle
|
||||
Desc: Set light cone angle in radian, the cone angle is the spot area where intensity is at its maximum.
|
||||
#*/
|
||||
sq_register(vm, LightSetConeAngle, "LightSetConeAngle", _SC(".xn"));
|
||||
/*#
|
||||
Func: LightSetEdgeAngle
|
||||
Proto: void:Light,float angle
|
||||
Desc: Set light edge angle in radian, the edge angle is the spot area where intensity decreases from its maximum toward zero.
|
||||
#*/
|
||||
sq_register(vm, LightSetEdgeAngle, "LightSetEdgeAngle", _SC(".xn"));
|
||||
/*#
|
||||
Func: LightGetConeAngle
|
||||
Proto: float:Light
|
||||
Desc: Get light cone angle in radian.
|
||||
#*/
|
||||
sq_register(vm, LightGetConeAngle, "LightGetConeAngle", _SC(".x"));
|
||||
/*#
|
||||
Func: LightGetEdgeAngle
|
||||
Proto: float:Light
|
||||
Desc: Get light edge angle in radian.
|
||||
#*/
|
||||
sq_register(vm, LightGetEdgeAngle, "LightGetEdgeAngle", _SC(".x"));
|
||||
|
||||
/*#
|
||||
Section: LightGeneric
|
||||
Desc: Generic functions
|
||||
#*/
|
||||
/*#
|
||||
Func: LightSetRange
|
||||
Proto: void:Light,float range
|
||||
Desc: Set the light range in meter.
|
||||
#*/
|
||||
sq_register(vm, LightSetRange, "LightSetRange", _SC(".xn"));
|
||||
/*#
|
||||
Func: LightGetRange
|
||||
Proto: float:Light
|
||||
Desc: Return the light range in meter.
|
||||
#*/
|
||||
sq_register(vm, LightGetRange, "LightGetRange", _SC(".x"));
|
||||
/*#
|
||||
Func: LightSetShadowRange
|
||||
Proto: void:Light,float range
|
||||
Desc: Set the light range in meter.
|
||||
#*/
|
||||
sq_register(vm, LightSetShadowRange, "LightSetShadowRange", _SC(".xn"));
|
||||
/*#
|
||||
Func: LightGetRange
|
||||
Proto: float:Light
|
||||
Desc: Return the light range in meter.
|
||||
#*/
|
||||
sq_register(vm, LightGetShadowRange, "LightGetShadowRange", _SC(".x"));
|
||||
/*#
|
||||
Func: LightSetVolumeRange
|
||||
Proto: void:Light,float range
|
||||
Desc: Set the light volume range in meter. The volume range has no relation with the volumetric system and is only a performance hint used by some renderer. If unsure this value should be kept equal to the light range.
|
||||
#*/
|
||||
sq_register(vm, LightSetVolumeRange, "LightSetVolumeRange", _SC(".xn"));
|
||||
/*#
|
||||
Func: LightGetVolumeRange
|
||||
Proto: float:Light
|
||||
Desc: Return the light volume range in meter.
|
||||
#*/
|
||||
sq_register(vm, LightGetVolumeRange, "LightGetVolumeRange", _SC(".x"));
|
||||
|
||||
/*#
|
||||
Func: LightSetProjectionTexture
|
||||
Proto: void:Light,Texture
|
||||
Desc: Set light projection texture.
|
||||
#*/
|
||||
sq_register(vm, LightSetProjectionTexture, "LightSetProjectionTexture", _SC(".xx"));
|
||||
/*#
|
||||
Func: LightGetItem
|
||||
Proto: Item:Light
|
||||
Desc: Get light item.
|
||||
#*/
|
||||
sq_register(vm, LightGetItem, "LightGetItem", _SC(".x"));
|
||||
/*#
|
||||
Func: LightGetType
|
||||
Proto: LightType:Light
|
||||
Desc: Get light type.
|
||||
#*/
|
||||
sq_register(vm, LightGetType, "LightGetType", _SC(".x"));
|
||||
/*#
|
||||
Func: LightSetType
|
||||
Proto: void:Light,LightType type
|
||||
Desc: Set light type.
|
||||
#*/
|
||||
sq_register(vm, LightSetType, "LightSetType", _SC(".xi"));
|
||||
|
||||
/*#
|
||||
Enum: LightType
|
||||
Values: LightTypeNone,LightTypeSpot,LightTypeLinear,LightTypePoint
|
||||
#*/
|
||||
using GS::Core::Light;
|
||||
|
||||
sq_pushstring(vm, "LightTypeNone", -1); sq_pushinteger(vm, Light::Model_None); sq_newslot(vm, -3, true);
|
||||
sq_pushstring(vm, "LightTypeSpot", -1); sq_pushinteger(vm, Light::Model_Spot); sq_newslot(vm, -3, true);
|
||||
sq_pushstring(vm, "LightTypeLinear", -1); sq_pushinteger(vm, Light::Model_Linear); sq_newslot(vm, -3, true);
|
||||
sq_pushstring(vm, "LightTypePoint", -1); sq_pushinteger(vm, Light::Model_Point); sq_newslot(vm, -3, true);
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
Reference in New Issue
Block a user