commit x64 compilation from lulu cause the other branch dont seems to compile properly at home

This commit is contained in:
2026-07-17 16:08:20 +02:00
parent c0f3eeb00d
commit 0efa4ee6f7
625 changed files with 117283 additions and 4426 deletions

View File

@ -0,0 +1,165 @@
/* -----------------------------------------------------------------------------
GSFramework
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
----------------------------------------------------------------------------- */
#include "binding_helpers.h"
#include "raytracer/raytracer_core.h"
#include "core/graphic_resource_factory.h"
#include "core/resource_factories.h"
#include "core/geometry.h"
#include "picture/pict_io.h"
using namespace GS;
using namespace GS::Script;
using namespace GS::Raytrace;
//------------------------------------------------------------------------------
SQInteger NewRaytracer(HSQUIRRELVM vm)
{
__SQ_GETSINGLESAFEPTR(f, Core::ResourceFactories, typetag_ResourceFactories)
__SQ_RETURNSAFEPTR(new Raytracer(f->graphic), typetag_Raytracer)
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
SQInteger RaytracerSetScene(HSQUIRRELVM vm)
{
__SQ_GETSTART(2)
__SQ_GETSAFEPTR(ray, Raytracer, typetag_Raytracer)
__SQ_GETSAFEPTR(scn, S3D::Scene, typetag_Scene3d)
__SQ_GETEND
__SQ_RETURNBOOL((ray && scn) ? ray->SetScene(scn) : false)
}
SQInteger RaytracerTrace(HSQUIRRELVM vm)
{
__SQ_GETSTART(4)
__SQ_GETSAFEPTR(ray, Raytracer, typetag_Raytracer)
__SQ_GETSTRING(file)
__SQ_GETINT(width)
__SQ_GETINT(height)
bool r = false;
Picture output(width, height);
if (ray->Render(output, width, height))
r = output.isValid() ? PictureIO::Get().TgaSave(output, file) : false;
__SQ_GETEND
__SQ_RETURNBOOL(r)
}
SQInteger RaytracerSetInterlace(HSQUIRRELVM vm)
{
__SQ_GETSTART(3)
__SQ_GETSAFEPTR(ray, Raytracer, typetag_Raytracer)
__SQ_GETBOOL(interlaced)
__SQ_GETBOOL(interlace_even)
__SQ_GETEND
Configuration config = ray->GetConfiguration();
config.interlaced = interlaced ? true : false;
config.interlace_even = interlace_even ? true : false;
ray->SetConfiguration(config);
__SQ_RETURN
}
SQInteger RaytracerSetAntialias(HSQUIRRELVM vm)
{
__SQ_GETSTART(5)
__SQ_GETSAFEPTR(ray, Raytracer, typetag_Raytracer)
__SQ_GETBOOL(trace_aa)
__SQ_GETINT(aa_sample)
__SQ_GETFLOAT(aa_threshold)
__SQ_GETBOOL(aa_jitter)
__SQ_GETEND
Configuration config = ray->GetConfiguration();
config.trace_aa = trace_aa ? true : false;
config.aa_sample = aa_sample;
config.aa_threshold = aa_threshold;
config.aa_jitter = aa_jitter ? true : false;
ray->SetConfiguration(config);
__SQ_RETURN
}
SQInteger RaytracerSetGlobalIllum(HSQUIRRELVM vm)
{
__SQ_GETSTART(4)
__SQ_GETSAFEPTR(ray, Raytracer, typetag_Raytracer)
__SQ_GETBOOL(trace_gi)
__SQ_GETINT(gi_sample)
__SQ_GETINT(indirect_gi_bounce)
__SQ_GETEND
Configuration config = ray->GetConfiguration();
config.trace_gi = trace_gi ? true : false;
config.gi_sample = gi_sample;
config.indirect_gi_bounce = indirect_gi_bounce;
ray->SetConfiguration(config);
__SQ_RETURN
}
SQInteger RaytracerStartInterlacedSequence(HSQUIRRELVM vm)
{
__SQ_GETSINGLESAFEPTR(ray, Raytracer, typetag_Raytracer)
ray->StartInterlacedSequence();
__SQ_RETURN
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
void RegisterRaytracerBinding(HSQUIRRELVM vm)
{
/*#
Topic: Raytracer
#*/
/*#
Section: RaytracerGeneric
Desc: Generic functions
#*/
/*#
Func: NewRaytracer
Proto: Raytracer:ResourceFactory
Desc: Create a new raytracer instance.
#*/
sq_register(vm, NewRaytracer, "NewRaytracer", _SC(".x"));
/*#
Func: RaytracerSetAntialias
Proto: void:raytracer,bool enable,int sample_count,float threshold,bool jitter
Desc: Set the raytracer antialias output. The number of AA sample can be set and jitered AA selected. Default threshold: 0.015.
#*/
sq_register(vm, RaytracerSetAntialias, "RaytracerSetAntialias", _SC(".xbinb"));
/*#
Func: RaytracerSetGlobalIllum
Proto: void:raytracer,bool enable,int sample_count,int max_indirect_bounce
Desc: Enable the raytracer global illumination. The number of GI sample can be set as well as a maximum number of indirect bounce.
#*/
sq_register(vm, RaytracerSetGlobalIllum, "RaytracerSetGlobalIllum", _SC(".xbii"));
/*#
Func: RaytracerSetInterlace
Proto: void:raytracer,bool interlaced,bool even_frame
Desc: Set the raytracer interlace output. The frame parity is specified as the second parameter.
#*/
sq_register(vm, RaytracerSetInterlace, "RaytracerSetInterlace", _SC(".xbb"));
/*#
Func: RaytracerStartInterlacedSequence
Proto: void:raytracer
Desc: Start an interlaced sequence. This function should be called when beginning a new sequence in order to ensure correct frame parity.
#*/
sq_register(vm, RaytracerStartInterlacedSequence, "RaytracerStartInterlacedSequence", _SC(".x"));
/*#
Func: RaytracerSetScene
Proto: void:raytracer,scene
Desc: Set raytracer scene, this function might be a little slow as it setups a lot data to work with.
#*/
sq_register(vm, RaytracerSetScene, "RaytracerSetScene", _SC(".xx"));
/*#
Func: RaytracerTrace
Proto: void:raytracer,string out_picture,int width,int height
Desc: Raytrace current scene to a Targa picture file. Note that when rendering interlaced sequences one of two calls to this function will return false to notify you that the current frame was only buffered and not saved.
#*/
sq_register(vm, RaytracerTrace, "RaytracerTrace", _SC(".xsii"));
}
//------------------------------------------------------------------------------