commit x64 compilation from lulu cause the other branch dont seems to compile properly at home
This commit is contained in:
@ -0,0 +1,206 @@
|
||||
/* -----------------------------------------------------------------------------
|
||||
GSFramework
|
||||
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
|
||||
----------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
#ifndef __COBJECT_GEOMETRY_TEMPLATE_IMPL__
|
||||
#define __COBJECT_GEOMETRY_TEMPLATE_IMPL__
|
||||
|
||||
|
||||
#include "script_squirrel/cobject/geometry_template_decl.h"
|
||||
#include "script_squirrel/cobject/cobject_decl.h"
|
||||
#include "script_squirrel/cobject/vector_decl.h"
|
||||
#include "script_squirrel/cobject/uv_decl.h"
|
||||
#include "script_squirrel/cobject/cobject.h"
|
||||
#include "core/geometry_template.h"
|
||||
#include "core/resource_factories.h"
|
||||
#include "core/render_resource_factory.h"
|
||||
#include "core/render_data.h"
|
||||
#include "core/renderer.h"
|
||||
#include "core/engine.h"
|
||||
|
||||
using namespace GS;
|
||||
using namespace GS::Core;
|
||||
using namespace GS::Script;
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
#define _GetGeometryTemplate(_VAR, _IDX) _GetTypedParam(_VAR, _IDX, GeometryTemplate, GeometryTemplate)
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
_IMPL_NATIVE_CONSTRUCTION(GeometryTemplate, GeometryTemplate);
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
_MEMBER_FUNCTION_IMPL(GeometryTemplate, constructor)
|
||||
return construct_GeometryTemplate(v, new GeometryTemplate);
|
||||
_END_IMPL
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
_MEMBER_FUNCTION_IMPL(GeometryTemplate, clearMaterial)
|
||||
_GetGeometryTemplate(t, 1)
|
||||
t->ClearMaterials();
|
||||
return 0;
|
||||
_END_IMPL
|
||||
|
||||
_MEMBER_FUNCTION_IMPL(GeometryTemplate, pushMaterial)
|
||||
_GetGeometryTemplate(t, 1)
|
||||
const SQChar *name = sa.GetString(2);
|
||||
t->PushMaterial(name);
|
||||
return 0;
|
||||
_END_IMPL
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
_MEMBER_FUNCTION_IMPL(GeometryTemplate, clear)
|
||||
_GetGeometryTemplate(t, 1)
|
||||
t->Clear();
|
||||
return 0;
|
||||
_END_IMPL
|
||||
|
||||
_MEMBER_FUNCTION_IMPL(GeometryTemplate, beginPolygon)
|
||||
_GetGeometryTemplate(t, 1)
|
||||
t->BeginPolygon();
|
||||
return 0;
|
||||
_END_IMPL
|
||||
|
||||
_MEMBER_FUNCTION_IMPL(GeometryTemplate, pushVertex)
|
||||
_GetGeometryTemplate(t, 1)
|
||||
_GetTypedParam(_v, 2, Vector4, Vector)
|
||||
t->PushVertex(*_v);
|
||||
return 0;
|
||||
_END_IMPL
|
||||
_MEMBER_FUNCTION_IMPL(GeometryTemplate, pushNormal)
|
||||
_GetGeometryTemplate(t, 1)
|
||||
_GetTypedParam(n, 2, Vector4, Vector)
|
||||
t->PushNormal(*n);
|
||||
return 0;
|
||||
_END_IMPL
|
||||
_MEMBER_FUNCTION_IMPL(GeometryTemplate, pushColor)
|
||||
_GetGeometryTemplate(t, 1)
|
||||
_GetTypedParam(c, 2, Vector4, Vector)
|
||||
t->PushColor(Color(*c));
|
||||
return 0;
|
||||
_END_IMPL
|
||||
_MEMBER_FUNCTION_IMPL(GeometryTemplate, pushUV)
|
||||
_GetGeometryTemplate(t, 1)
|
||||
_GetTypedParam(uv, 3, Vector2, UV)
|
||||
t->PushUV(sa.GetInt(2), *uv);
|
||||
return 0;
|
||||
_END_IMPL
|
||||
|
||||
_MEMBER_FUNCTION_IMPL(GeometryTemplate, endPolygon)
|
||||
_GetGeometryTemplate(t, 1)
|
||||
t->EndPolygon((ushort)sa.GetInt(2));
|
||||
return 0;
|
||||
_END_IMPL
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
_MEMBER_FUNCTION_IMPL(GeometryTemplate, setVertexMergeThreshold)
|
||||
_GetGeometryTemplate(t, 1)
|
||||
t->SetVertexMergeThreshold(sa.GetFloat(2));
|
||||
return 0;
|
||||
_END_IMPL
|
||||
_MEMBER_FUNCTION_IMPL(GeometryTemplate, instantiate)
|
||||
_GetGeometryTemplate(t, 1)
|
||||
_GetCObject(ResourceFactories, typetag_ResourceFactories, f, 2)
|
||||
AutoPtr <Geometry> g(t->Instantiate(sa.GetString(3)));
|
||||
Render::Geometry *r = f->render->NewGeometry();
|
||||
r->Create(*f->render, *g);
|
||||
_ReturnCObject(r, typetag_Geometry)
|
||||
_END_IMPL
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
||||
//# Class: GeometryTemplate
|
||||
_BEGIN_CLASS(GeometryTemplate)
|
||||
|
||||
_MEMBER_FUNCTION(GeometryTemplate, constructor, 1, _SC("."))
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//# Topic: Polygon creation
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
/*#
|
||||
Func: beginPolygon
|
||||
Proto: void:
|
||||
Desc: Begin declaration of a new polygon.
|
||||
#*/
|
||||
_MEMBER_FUNCTION(GeometryTemplate, beginPolygon, 1, _SC("."))
|
||||
/*#
|
||||
Func: pushVertex
|
||||
Proto: void:Vector
|
||||
Desc: Push a vertex on the current polygon declaration.
|
||||
#*/
|
||||
_MEMBER_FUNCTION(GeometryTemplate, pushVertex, 2, _SC(".x"))
|
||||
/*#
|
||||
Func: pushNormal
|
||||
Proto: void:Vector
|
||||
Desc: Push a normal on the current polygon declaration.
|
||||
#*/
|
||||
_MEMBER_FUNCTION(GeometryTemplate, pushNormal, 2, _SC(".x"))
|
||||
/*#
|
||||
Func: pushColor
|
||||
Proto: void:Vector
|
||||
Desc: Push a color on the current polygon declaration.
|
||||
#*/
|
||||
_MEMBER_FUNCTION(GeometryTemplate, pushColor, 2, _SC(".x"))
|
||||
/*#
|
||||
Func: pushUV
|
||||
Proto: void:int channel, UV
|
||||
Desc: Push an UV on a channel of the current polygon declaration.
|
||||
#*/
|
||||
_MEMBER_FUNCTION(GeometryTemplate, pushUV, 3, _SC(".ix"))
|
||||
/*#
|
||||
Func: endPolygon
|
||||
Proto: void:int material
|
||||
Desc: End declaration of the current polygon and specify its material index.
|
||||
#*/
|
||||
_MEMBER_FUNCTION(GeometryTemplate, endPolygon, 2, _SC(".i"))
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//# Topic: Geometry creation
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
/*#
|
||||
Func: clear
|
||||
Proto: void:
|
||||
Desc: Clear current template definition, keep the current material table.
|
||||
#*/
|
||||
_MEMBER_FUNCTION(GeometryTemplate, clear, 1, _SC("."))
|
||||
|
||||
/*#
|
||||
Func: instantiate
|
||||
Proto: Geometry:Engine engine, string name
|
||||
Desc: Instantiate the current template as a named geometry.
|
||||
Note: If the geometry name is already found in the current engine cache, a
|
||||
cached copy will be returned instead of a new instantiation.
|
||||
#*/
|
||||
_MEMBER_FUNCTION(GeometryTemplate, instantiate, 3, _SC(".xs"))
|
||||
|
||||
/*#
|
||||
Func: clearMaterial
|
||||
Proto: void:
|
||||
Desc: Push a material on the template material table.
|
||||
#*/
|
||||
_MEMBER_FUNCTION(GeometryTemplate, clearMaterial, 1, _SC("."))
|
||||
/*#
|
||||
Func: pushMaterial
|
||||
Proto: void:String path
|
||||
Desc: Push a material path on the template material table.
|
||||
#*/
|
||||
_MEMBER_FUNCTION(GeometryTemplate, pushMaterial, 2, _SC(".s"))
|
||||
|
||||
/*#
|
||||
Func: setVertexMergeThreshold
|
||||
Proto: void:float threshold
|
||||
Desc: Set the vertex merging algorithm threshold.
|
||||
#*/
|
||||
_MEMBER_FUNCTION(GeometryTemplate, setVertexMergeThreshold, 2, _SC(".n"))
|
||||
|
||||
_END_CLASS(GeometryTemplate)
|
||||
|
||||
|
||||
#endif // __COBJECT_GEOMETRY_TEMPLATE_IMPL__
|
||||
Reference in New Issue
Block a user