void jsapi_init_graphics(JSVM* vm) { duk_context* ctx = vm->GetJSContext(); js_class_get_prototype(ctx, "Atomic", "Light"); duk_push_c_function(ctx, Light_SetShadowCascade, DUK_VARARGS); duk_put_prop_string(ctx, -2, "setShadowCascade"); duk_push_c_function(ctx, Light_SetShadowCascadeParameter, 2); duk_put_prop_string(ctx, -2, "setShadowCascadeParameter"); duk_push_c_function(ctx, Light_GetShadowCascade, 0); duk_put_prop_string(ctx, -2, "getShadowCascade"); duk_push_c_function(ctx, Light_SetShadowBias, 2); duk_put_prop_string(ctx, -2, "setShadowBias"); duk_pop(ctx); js_class_get_prototype(ctx, "Atomic", "Material"); duk_push_c_function(ctx, Material_GetShaderParameters, 0); duk_put_prop_string(ctx, -2, "getShaderParameters"); duk_push_c_function(ctx, Material_SetShaderParameter, 2); duk_put_prop_string(ctx, -2, "setShaderParameter"); duk_pop(ctx); // static methods js_class_get_constructor(ctx, "Atomic", "Material"); duk_push_c_function(ctx, Material_GetTextureUnitName, 1); duk_put_prop_string(ctx, -2, "getTextureUnitName"); duk_pop(ctx); }
void jsapi_init_graphics(JSVM* vm) { duk_context* ctx = vm->GetJSContext(); js_class_get_prototype(ctx, "Atomic", "Light"); duk_push_c_function(ctx, Light_SetShadowCascade, DUK_VARARGS); duk_put_prop_string(ctx, -2, "setShadowCascade"); duk_push_c_function(ctx, Light_SetShadowCascadeParameter, 2); duk_put_prop_string(ctx, -2, "setShadowCascadeParameter"); duk_push_c_function(ctx, Light_GetShadowCascade, 0); duk_put_prop_string(ctx, -2, "getShadowCascade"); duk_push_c_function(ctx, Light_SetShadowBias, 2); duk_put_prop_string(ctx, -2, "setShadowBias"); duk_pop(ctx); js_class_get_prototype(ctx, "Atomic", "Material"); duk_push_c_function(ctx, Material_GetShaderParameters, 0); duk_put_prop_string(ctx, -2, "getShaderParameters"); duk_push_c_function(ctx, Material_SetShaderParameter, 2); duk_put_prop_string(ctx, -2, "setShaderParameter"); duk_pop(ctx); js_class_get_prototype(ctx, "Atomic", "Octree"); duk_push_c_function(ctx, Octree_Raycast, DUK_VARARGS); duk_set_magic(ctx, -1, (unsigned) DUK_MAGIC_RAYCAST); duk_put_prop_string(ctx, -2, "rayCast"); duk_push_c_function(ctx, Octree_Raycast, DUK_VARARGS); duk_set_magic(ctx, -1, (unsigned) DUK_MAGIC_RAYCAST_SINGLE); duk_put_prop_string(ctx, -2, "rayCastSingle"); duk_pop(ctx); js_class_get_prototype(ctx, "Atomic", "Camera"); duk_push_c_function(ctx, Camera_GetScreenRay, 2); duk_put_prop_string(ctx, -2, "getScreenRay"); duk_pop(ctx); // static methods js_class_get_constructor(ctx, "Atomic", "Material"); duk_push_c_function(ctx, Material_GetTextureUnitName, 1); duk_put_prop_string(ctx, -2, "getTextureUnitName"); duk_pop(ctx); }