-
-
Save zacharycarter/20c34bdecca24ecab2da20402b88168e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import strutils | |
const sourcePath = currentSourcePath().split({'\\', '/'})[0..^2].join("/") | |
{.passC: "-I\"" & sourcePath & "/FastNoiseSIMD\"".} | |
const headerFastNoiseSIMD = sourcePath & "/FastNoiseSIMD/FastNoiseSIMD.h" | |
{.passC: "-std=c++11".} | |
{.passC: "-march=core-avx2s".} | |
{.passC: "-mfma".} | |
{.passC: "-mavx2".} | |
{.compile: "nimFastNoiseSIMD/FastNoiseSIMD/FastNoiseSIMD.cpp".} | |
{.compile: "nimFastNoiseSIMD/FastNoiseSIMD/FastNoiseSIMD_avx2.cpp".} | |
{.compile: "nimFastNoiseSIMD/FastNoiseSIMD/FastNoiseSIMD_avx512.cpp".} | |
{.compile: "nimFastNoiseSIMD/FastNoiseSIMD/FastNoiseSIMD_internal.cpp".} | |
{.compile: "nimFastNoiseSIMD/FastNoiseSIMD/FastNoiseSIMD_neon.cpp".} | |
{.compile: "nimFastNoiseSIMD/FastNoiseSIMD/FastNoiseSIMD_sse2.cpp".} | |
{.compile: "nimFastNoiseSIMD/FastNoiseSIMD/FastNoiseSIMD_sse41.cpp".} | |
const | |
FN_CELLULAR_INDEX_MAX* = 3 | |
FN_NO_SIMD_FALLBACK* = 0 | |
FN_SSE2* = 1 | |
FN_SSE41* = 2 | |
FN_AVX2* = 3 | |
FN_AVX512* = 4 | |
FN_NEON* = 5 | |
discard "forward decl of FastNoiseVectorSet" | |
type | |
FastNoiseSIMD* {.importcpp: "FastNoiseSIMD", header: headerFastNoiseSIMD, bycopy.} = object | |
NoiseType* {.size: sizeof(cint), importcpp: "FastNoiseSIMD::NoiseType", | |
header: headerFastNoiseSIMD.} = enum | |
Value, ValueFractal, Perlin, PerlinFractal, Simplex, SimplexFractal, WhiteNoise, | |
Cellular, Cubic, CubicFractal | |
type | |
FractalType* {.size: sizeof(cint), importcpp: "FastNoiseSIMD::FractalType", | |
header: headerFastNoiseSIMD.} = enum | |
FBM, Billow, RigidMulti | |
type | |
PerturbType* {.size: sizeof(cint), importcpp: "FastNoiseSIMD::PerturbType", | |
header: headerFastNoiseSIMD.} = enum | |
None, Gradient, GradientFractal, Normalise, Gradient_Normalise, | |
GradientFractal_Normalise | |
type | |
CellularDistanceFunction* {.size: sizeof(cint), importcpp: "FastNoiseSIMD::CellularDistanceFunction", | |
header: headerFastNoiseSIMD.} = enum | |
Euclidean, Manhattan, Natural | |
type | |
CellularReturnType* {.size: sizeof(cint), | |
importcpp: "FastNoiseSIMD::CellularReturnType", | |
header: headerFastNoiseSIMD.} = enum | |
CellValue, Distance, Distance2, Distance2Add, Distance2Sub, Distance2Mul, | |
Distance2Div, NoiseLookup, Distance2Cave | |
proc NewFastNoiseSIMD*(seed: cint = 1337): ptr FastNoiseSIMD {.stdcall, | |
importcpp: "FastNoiseSIMD::NewFastNoiseSIMD(@)", header: headerFastNoiseSIMD.} | |
proc GetSIMDLevel*(): cint {.stdcall, importcpp: "FastNoiseSIMD::GetSIMDLevel(@)", | |
header: headerFastNoiseSIMD.} | |
proc SetSIMDLevel*(level: cint) {.stdcall, | |
importcpp: "FastNoiseSIMD::SetSIMDLevel(@)", | |
header: headerFastNoiseSIMD.} | |
proc FreeNoiseSet*(noiseSet: ptr cfloat) {.stdcall, importcpp: "FastNoiseSIMD::FreeNoiseSet(@)", | |
header: headerFastNoiseSIMD.} | |
proc GetEmptySet*(size: cint): ptr cfloat {.stdcall, importcpp: "FastNoiseSIMD::GetEmptySet(@)", | |
header: headerFastNoiseSIMD.} | |
proc GetEmptySet*(xSize: cint; ySize: cint; zSize: cint): ptr cfloat {.stdcall, | |
importcpp: "FastNoiseSIMD::GetEmptySet(@)", header: headerFastNoiseSIMD.} | |
proc AlignedSize*(size: cint): cint {.stdcall, | |
importcpp: "FastNoiseSIMD::AlignedSize(@)", | |
header: headerFastNoiseSIMD.} | |
proc GetSeed*(this: FastNoiseSIMD): cint {.noSideEffect, stdcall, | |
importcpp: "GetSeed", | |
header: headerFastNoiseSIMD.} | |
proc SetSeed*(this: var FastNoiseSIMD; seed: cint) {.stdcall, importcpp: "SetSeed", | |
header: headerFastNoiseSIMD.} | |
proc SetFrequency*(this: var FastNoiseSIMD; frequency: cfloat) {.stdcall, | |
importcpp: "SetFrequency", header: headerFastNoiseSIMD.} | |
proc SetNoiseType*(this: var FastNoiseSIMD; noiseType: NoiseType) {.stdcall, | |
importcpp: "SetNoiseType", header: headerFastNoiseSIMD.} | |
proc SetAxisScales*(this: var FastNoiseSIMD; xScale: cfloat; yScale: cfloat; | |
zScale: cfloat) {.stdcall, importcpp: "SetAxisScales", | |
header: headerFastNoiseSIMD.} | |
proc SetFractalOctaves*(this: var FastNoiseSIMD; octaves: cint) {.stdcall, | |
importcpp: "SetFractalOctaves", header: headerFastNoiseSIMD.} | |
proc SetFractalLacunarity*(this: var FastNoiseSIMD; lacunarity: cfloat) {.stdcall, | |
importcpp: "SetFractalLacunarity", header: headerFastNoiseSIMD.} | |
proc SetFractalGain*(this: var FastNoiseSIMD; gain: cfloat) {.stdcall, | |
importcpp: "SetFractalGain", header: headerFastNoiseSIMD.} | |
proc SetFractalType*(this: var FastNoiseSIMD; fractalType: FractalType) {.stdcall, | |
importcpp: "SetFractalType", header: headerFastNoiseSIMD.} | |
proc SetCellularReturnType*(this: var FastNoiseSIMD; | |
cellularReturnType: CellularReturnType) {.stdcall, | |
importcpp: "SetCellularReturnType", header: headerFastNoiseSIMD.} | |
proc SetCellularDistanceFunction*(this: var FastNoiseSIMD; cellularDistanceFunction: CellularDistanceFunction) {. | |
stdcall, importcpp: "SetCellularDistanceFunction", header: headerFastNoiseSIMD.} | |
proc SetCellularNoiseLookupType*(this: var FastNoiseSIMD; | |
cellularNoiseLookupType: NoiseType) {.stdcall, | |
importcpp: "SetCellularNoiseLookupType", header: headerFastNoiseSIMD.} | |
proc SetCellularNoiseLookupFrequency*(this: var FastNoiseSIMD; | |
cellularNoiseLookupFrequency: cfloat) {. | |
stdcall, importcpp: "SetCellularNoiseLookupFrequency", | |
header: headerFastNoiseSIMD.} | |
proc SetCellularDistance2Indicies*(this: var FastNoiseSIMD; | |
cellularDistanceIndex0: cint; | |
cellularDistanceIndex1: cint) {.stdcall, | |
importcpp: "SetCellularDistance2Indicies", header: headerFastNoiseSIMD.} | |
proc SetCellularJitter*(this: var FastNoiseSIMD; cellularJitter: cfloat) {.stdcall, | |
importcpp: "SetCellularJitter", header: headerFastNoiseSIMD.} | |
proc SetPerturbType*(this: var FastNoiseSIMD; perturbType: PerturbType) {.stdcall, | |
importcpp: "SetPerturbType", header: headerFastNoiseSIMD.} | |
proc SetPerturbAmp*(this: var FastNoiseSIMD; perturbAmp: cfloat) {.stdcall, | |
importcpp: "SetPerturbAmp", header: headerFastNoiseSIMD.} | |
proc SetPerturbFrequency*(this: var FastNoiseSIMD; perturbFrequency: cfloat) {. | |
stdcall, importcpp: "SetPerturbFrequency", header: headerFastNoiseSIMD.} | |
proc SetPerturbFractalOctaves*(this: var FastNoiseSIMD; perturbOctaves: cint) {. | |
stdcall, importcpp: "SetPerturbFractalOctaves", header: headerFastNoiseSIMD.} | |
proc SetPerturbFractalLacunarity*(this: var FastNoiseSIMD; perturbLacunarity: cfloat) {. | |
stdcall, importcpp: "SetPerturbFractalLacunarity", header: headerFastNoiseSIMD.} | |
proc SetPerturbFractalGain*(this: var FastNoiseSIMD; perturbGain: cfloat) {.stdcall, | |
importcpp: "SetPerturbFractalGain", header: headerFastNoiseSIMD.} | |
proc SetPerturbNormaliseLength*(this: var FastNoiseSIMD; | |
perturbNormaliseLength: cfloat) {.stdcall, | |
importcpp: "SetPerturbNormaliseLength", header: headerFastNoiseSIMD.} | |
proc GetVectorSet*(xSize: cint; ySize: cint; zSize: cint): ptr FastNoiseVectorSet {. | |
stdcall, importcpp: "FastNoiseSIMD::GetVectorSet(@)", | |
header: headerFastNoiseSIMD.} | |
proc GetSamplingVectorSet*(sampleScale: cint; xSize: cint; ySize: cint; zSize: cint): ptr FastNoiseVectorSet {. | |
stdcall, importcpp: "FastNoiseSIMD::GetSamplingVectorSet(@)", | |
header: headerFastNoiseSIMD.} | |
proc FillVectorSet*(vectorSet: ptr FastNoiseVectorSet; xSize: cint; ySize: cint; | |
zSize: cint) {.stdcall, | |
importcpp: "FastNoiseSIMD::FillVectorSet(@)", | |
header: headerFastNoiseSIMD.} | |
proc FillSamplingVectorSet*(vectorSet: ptr FastNoiseVectorSet; sampleScale: cint; | |
xSize: cint; ySize: cint; zSize: cint) {.stdcall, | |
importcpp: "FastNoiseSIMD::FillSamplingVectorSet(@)", | |
header: headerFastNoiseSIMD.} | |
proc GetNoiseSet*(this: var FastNoiseSIMD; xStart: cint; yStart: cint; zStart: cint; | |
xSize: cint; ySize: cint; zSize: cint; scaleModifier: cfloat = 1.0): ptr cfloat {. | |
stdcall, importcpp: "GetNoiseSet", header: headerFastNoiseSIMD.} | |
proc FillNoiseSet*(this: var FastNoiseSIMD; noiseSet: ptr cfloat; xStart: cint; | |
yStart: cint; zStart: cint; xSize: cint; ySize: cint; zSize: cint; | |
scaleModifier: cfloat = 1.0) {.stdcall, importcpp: "FillNoiseSet", | |
header: headerFastNoiseSIMD.} | |
proc FillNoiseSet*(this: var FastNoiseSIMD; noiseSet: ptr cfloat; | |
vectorSet: ptr FastNoiseVectorSet; xOffset: cfloat = 0.0; | |
yOffset: cfloat = 0.0; zOffset: cfloat = 0.0) {.stdcall, | |
importcpp: "FillNoiseSet", header: headerFastNoiseSIMD.} | |
proc GetSampledNoiseSet*(this: var FastNoiseSIMD; xStart: cint; yStart: cint; | |
zStart: cint; xSize: cint; ySize: cint; zSize: cint; | |
sampleScale: cint): ptr cfloat {.stdcall, | |
importcpp: "GetSampledNoiseSet", header: headerFastNoiseSIMD.} | |
proc FillSampledNoiseSet*(this: var FastNoiseSIMD; noiseSet: ptr cfloat; xStart: cint; | |
yStart: cint; zStart: cint; xSize: cint; ySize: cint; | |
zSize: cint; sampleScale: cint) {.stdcall, | |
importcpp: "FillSampledNoiseSet", header: headerFastNoiseSIMD.} | |
proc FillSampledNoiseSet*(this: var FastNoiseSIMD; noiseSet: ptr cfloat; | |
vectorSet: ptr FastNoiseVectorSet; xOffset: cfloat = 0.0; | |
yOffset: cfloat = 0.0; zOffset: cfloat = 0.0) {.stdcall, | |
importcpp: "FillSampledNoiseSet", header: headerFastNoiseSIMD.} | |
proc GetWhiteNoiseSet*(this: var FastNoiseSIMD; xStart: cint; yStart: cint; | |
zStart: cint; xSize: cint; ySize: cint; zSize: cint; | |
scaleModifier: cfloat = 1.0): ptr cfloat {.stdcall, | |
importcpp: "GetWhiteNoiseSet", header: headerFastNoiseSIMD.} | |
proc FillWhiteNoiseSet*(this: var FastNoiseSIMD; noiseSet: ptr cfloat; xStart: cint; | |
yStart: cint; zStart: cint; xSize: cint; ySize: cint; | |
zSize: cint; scaleModifier: cfloat = 1.0) {.stdcall, | |
importcpp: "FillWhiteNoiseSet", header: headerFastNoiseSIMD.} | |
proc FillWhiteNoiseSet*(this: var FastNoiseSIMD; noiseSet: ptr cfloat; | |
vectorSet: ptr FastNoiseVectorSet; xOffset: cfloat = 0.0; | |
yOffset: cfloat = 0.0; zOffset: cfloat = 0.0) {.stdcall, | |
importcpp: "FillWhiteNoiseSet", header: headerFastNoiseSIMD.} | |
proc GetValueSet*(this: var FastNoiseSIMD; xStart: cint; yStart: cint; zStart: cint; | |
xSize: cint; ySize: cint; zSize: cint; scaleModifier: cfloat = 1.0): ptr cfloat {. | |
stdcall, importcpp: "GetValueSet", header: headerFastNoiseSIMD.} | |
proc GetValueFractalSet*(this: var FastNoiseSIMD; xStart: cint; yStart: cint; | |
zStart: cint; xSize: cint; ySize: cint; zSize: cint; | |
scaleModifier: cfloat = 1.0): ptr cfloat {.stdcall, | |
importcpp: "GetValueFractalSet", header: headerFastNoiseSIMD.} | |
proc FillValueSet*(this: var FastNoiseSIMD; noiseSet: ptr cfloat; xStart: cint; | |
yStart: cint; zStart: cint; xSize: cint; ySize: cint; zSize: cint; | |
scaleModifier: cfloat = 1.0) {.stdcall, importcpp: "FillValueSet", | |
header: headerFastNoiseSIMD.} | |
proc FillValueFractalSet*(this: var FastNoiseSIMD; noiseSet: ptr cfloat; xStart: cint; | |
yStart: cint; zStart: cint; xSize: cint; ySize: cint; | |
zSize: cint; scaleModifier: cfloat = 1.0) {.stdcall, | |
importcpp: "FillValueFractalSet", header: headerFastNoiseSIMD.} | |
proc FillValueSet*(this: var FastNoiseSIMD; noiseSet: ptr cfloat; | |
vectorSet: ptr FastNoiseVectorSet; xOffset: cfloat = 0.0; | |
yOffset: cfloat = 0.0; zOffset: cfloat = 0.0) {.stdcall, | |
importcpp: "FillValueSet", header: headerFastNoiseSIMD.} | |
proc FillValueFractalSet*(this: var FastNoiseSIMD; noiseSet: ptr cfloat; | |
vectorSet: ptr FastNoiseVectorSet; xOffset: cfloat = 0.0; | |
yOffset: cfloat = 0.0; zOffset: cfloat = 0.0) {.stdcall, | |
importcpp: "FillValueFractalSet", header: headerFastNoiseSIMD.} | |
proc GetPerlinSet*(this: var FastNoiseSIMD; xStart: cint; yStart: cint; zStart: cint; | |
xSize: cint; ySize: cint; zSize: cint; scaleModifier: cfloat = 1.0): ptr cfloat {. | |
stdcall, importcpp: "GetPerlinSet", header: headerFastNoiseSIMD.} | |
proc GetPerlinFractalSet*(this: var FastNoiseSIMD; xStart: cint; yStart: cint; | |
zStart: cint; xSize: cint; ySize: cint; zSize: cint; | |
scaleModifier: cfloat = 1.0): ptr cfloat {.stdcall, | |
importcpp: "GetPerlinFractalSet", header: headerFastNoiseSIMD.} | |
proc FillPerlinSet*(this: var FastNoiseSIMD; noiseSet: ptr cfloat; xStart: cint; | |
yStart: cint; zStart: cint; xSize: cint; ySize: cint; zSize: cint; | |
scaleModifier: cfloat = 1.0) {.stdcall, | |
importcpp: "FillPerlinSet", header: headerFastNoiseSIMD.} | |
proc FillPerlinFractalSet*(this: var FastNoiseSIMD; noiseSet: ptr cfloat; xStart: cint; | |
yStart: cint; zStart: cint; xSize: cint; ySize: cint; | |
zSize: cint; scaleModifier: cfloat = 1.0) {.stdcall, | |
importcpp: "FillPerlinFractalSet", header: headerFastNoiseSIMD.} | |
proc FillPerlinSet*(this: var FastNoiseSIMD; noiseSet: ptr cfloat; | |
vectorSet: ptr FastNoiseVectorSet; xOffset: cfloat = 0.0; | |
yOffset: cfloat = 0.0; zOffset: cfloat = 0.0) {.stdcall, | |
importcpp: "FillPerlinSet", header: headerFastNoiseSIMD.} | |
proc FillPerlinFractalSet*(this: var FastNoiseSIMD; noiseSet: ptr cfloat; | |
vectorSet: ptr FastNoiseVectorSet; xOffset: cfloat = 0.0; | |
yOffset: cfloat = 0.0; zOffset: cfloat = 0.0) {.stdcall, | |
importcpp: "FillPerlinFractalSet", header: headerFastNoiseSIMD.} | |
proc GetSimplexSet*(this: var FastNoiseSIMD; xStart: cint; yStart: cint; zStart: cint; | |
xSize: cint; ySize: cint; zSize: cint; scaleModifier: cfloat = 1.0): ptr cfloat {. | |
stdcall, importcpp: "GetSimplexSet", header: headerFastNoiseSIMD.} | |
proc GetSimplexFractalSet*(this: var FastNoiseSIMD; xStart: cint; yStart: cint; | |
zStart: cint; xSize: cint; ySize: cint; zSize: cint; | |
scaleModifier: cfloat = 1.0): ptr cfloat {.stdcall, | |
importcpp: "GetSimplexFractalSet", header: headerFastNoiseSIMD.} | |
proc FillSimplexSet*(this: var FastNoiseSIMD; noiseSet: ptr cfloat; xStart: cint; | |
yStart: cint; zStart: cint; xSize: cint; ySize: cint; zSize: cint; | |
scaleModifier: cfloat = 1.0) {.stdcall, | |
importcpp: "FillSimplexSet", header: headerFastNoiseSIMD.} | |
proc FillSimplexFractalSet*(this: var FastNoiseSIMD; noiseSet: ptr cfloat; | |
xStart: cint; yStart: cint; zStart: cint; xSize: cint; | |
ySize: cint; zSize: cint; scaleModifier: cfloat = 1.0) {. | |
stdcall, importcpp: "FillSimplexFractalSet", header: headerFastNoiseSIMD.} | |
proc FillSimplexSet*(this: var FastNoiseSIMD; noiseSet: ptr cfloat; | |
vectorSet: ptr FastNoiseVectorSet; xOffset: cfloat = 0.0; | |
yOffset: cfloat = 0.0; zOffset: cfloat = 0.0) {.stdcall, | |
importcpp: "FillSimplexSet", header: headerFastNoiseSIMD.} | |
proc FillSimplexFractalSet*(this: var FastNoiseSIMD; noiseSet: ptr cfloat; | |
vectorSet: ptr FastNoiseVectorSet; | |
xOffset: cfloat = 0.0; yOffset: cfloat = 0.0; | |
zOffset: cfloat = 0.0) {.stdcall, | |
importcpp: "FillSimplexFractalSet", header: headerFastNoiseSIMD.} | |
proc GetCellularSet*(this: var FastNoiseSIMD; xStart: cint; yStart: cint; zStart: cint; | |
xSize: cint; ySize: cint; zSize: cint; scaleModifier: cfloat = 1.0): ptr cfloat {. | |
stdcall, importcpp: "GetCellularSet", header: headerFastNoiseSIMD.} | |
proc FillCellularSet*(this: var FastNoiseSIMD; noiseSet: ptr cfloat; xStart: cint; | |
yStart: cint; zStart: cint; xSize: cint; ySize: cint; zSize: cint; | |
scaleModifier: cfloat = 1.0) {.stdcall, | |
importcpp: "FillCellularSet", header: headerFastNoiseSIMD.} | |
proc FillCellularSet*(this: var FastNoiseSIMD; noiseSet: ptr cfloat; | |
vectorSet: ptr FastNoiseVectorSet; xOffset: cfloat = 0.0; | |
yOffset: cfloat = 0.0; zOffset: cfloat = 0.0) {.stdcall, | |
importcpp: "FillCellularSet", header: headerFastNoiseSIMD.} | |
proc GetCubicSet*(this: var FastNoiseSIMD; xStart: cint; yStart: cint; zStart: cint; | |
xSize: cint; ySize: cint; zSize: cint; scaleModifier: cfloat = 1.0): ptr cfloat {. | |
stdcall, importcpp: "GetCubicSet", header: headerFastNoiseSIMD.} | |
proc GetCubicFractalSet*(this: var FastNoiseSIMD; xStart: cint; yStart: cint; | |
zStart: cint; xSize: cint; ySize: cint; zSize: cint; | |
scaleModifier: cfloat = 1.0): ptr cfloat {.stdcall, | |
importcpp: "GetCubicFractalSet", header: headerFastNoiseSIMD.} | |
proc FillCubicSet*(this: var FastNoiseSIMD; noiseSet: ptr cfloat; xStart: cint; | |
yStart: cint; zStart: cint; xSize: cint; ySize: cint; zSize: cint; | |
scaleModifier: cfloat = 1.0) {.stdcall, importcpp: "FillCubicSet", | |
header: headerFastNoiseSIMD.} | |
proc FillCubicFractalSet*(this: var FastNoiseSIMD; noiseSet: ptr cfloat; xStart: cint; | |
yStart: cint; zStart: cint; xSize: cint; ySize: cint; | |
zSize: cint; scaleModifier: cfloat = 1.0) {.stdcall, | |
importcpp: "FillCubicFractalSet", header: headerFastNoiseSIMD.} | |
proc FillCubicSet*(this: var FastNoiseSIMD; noiseSet: ptr cfloat; | |
vectorSet: ptr FastNoiseVectorSet; xOffset: cfloat = 0.0; | |
yOffset: cfloat = 0.0; zOffset: cfloat = 0.0) {.stdcall, | |
importcpp: "FillCubicSet", header: headerFastNoiseSIMD.} | |
proc FillCubicFractalSet*(this: var FastNoiseSIMD; noiseSet: ptr cfloat; | |
vectorSet: ptr FastNoiseVectorSet; xOffset: cfloat = 0.0; | |
yOffset: cfloat = 0.0; zOffset: cfloat = 0.0) {.stdcall, | |
importcpp: "FillCubicFractalSet", header: headerFastNoiseSIMD.} | |
proc destroyFastNoiseSIMD*(this: var FastNoiseSIMD) {.stdcall, | |
importcpp: "#.~FastNoiseSIMD()", header: headerFastNoiseSIMD.} | |
type | |
FastNoiseVectorSet* {.importcpp: "FastNoiseVectorSet", | |
header: headerFastNoiseSIMD, bycopy.} = object | |
size* {.importc: "size".}: cint = -1 | |
xSet* {.importc: "xSet".}: ptr cfloat = nullptr | |
ySet* {.importc: "ySet".}: ptr cfloat = nullptr | |
zSet* {.importc: "zSet".}: ptr cfloat = nullptr | |
sampleScale* {.importc: "sampleScale".}: cint = 0 | |
sampleSizeX* {.importc: "sampleSizeX".}: cint = -1 | |
sampleSizeY* {.importc: "sampleSizeY".}: cint = -1 | |
sampleSizeZ* {.importc: "sampleSizeZ".}: cint = -1 | |
proc constructFastNoiseVectorSet*(): FastNoiseVectorSet {.stdcall, constructor, | |
importcpp: "FastNoiseVectorSet(@)", header: headerFastNoiseSIMD.} | |
proc constructFastNoiseVectorSet*(_size: cint): FastNoiseVectorSet {.stdcall, | |
constructor, importcpp: "FastNoiseVectorSet(@)", header: headerFastNoiseSIMD.} | |
proc destroyFastNoiseVectorSet*(this: var FastNoiseVectorSet) {.stdcall, | |
importcpp: "#.~FastNoiseVectorSet()", header: headerFastNoiseSIMD.} | |
proc Free*(this: var FastNoiseVectorSet) {.stdcall, importcpp: "Free", | |
header: headerFastNoiseSIMD.} | |
proc SetSize*(this: var FastNoiseVectorSet; _size: cint) {.stdcall, | |
importcpp: "SetSize", header: headerFastNoiseSIMD.} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[n.global] | |
output = nimFastNoiseSIMD | |
[n.include] | |
nimFastNoiseSIMD/FastNoiseSIMD | |
[n.prepare] | |
gitremote = "https://github.com/Auburns/FastNoiseSIMD" | |
gitsparse = """ | |
FastNoiseSIMD/* | |
""" | |
[FastNoiseSIMD.h] | |
preprocess = true | |
defines = true | |
recurse = true | |
flags = "--cpp --stdcall" | |
ppflags-osx = "-std=c++11 -march=core-avx2 -mfma -mavx2" | |
pragma-osx = "passC: \"-std=c++11\"" | |
pragma-osx.arch = "passC: \"-march=core-avx2s\"" | |
pragma-osx.mfa = "passC: \"-mfma\"" | |
pragma-osx.avx2 = "passC: \"-mavx2\"" | |
compile = nimFastNoiseSIMD/FastNoiseSIMD | |
rename = "fnsimd.nim" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
discard "forward decl of FastNoiseVectorSet" | |
... | |
type | |
FastNoiseVectorSet* {.importcpp: "FastNoiseVectorSet", | |
header: headerFastNoiseSIMD, bycopy.} = object | |
size* {.importc: "size".}: cint = -1 | |
xSet* {.importc: "xSet".}: ptr cfloat = nullptr | |
ySet* {.importc: "ySet".}: ptr cfloat = nullptr | |
zSet* {.importc: "zSet".}: ptr cfloat = nullptr | |
sampleScale* {.importc: "sampleScale".}: cint = 0 | |
sampleSizeX* {.importc: "sampleSizeX".}: cint = -1 | |
sampleSizeY* {.importc: "sampleSizeY".}: cint = -1 | |
sampleSizeZ* {.importc: "sampleSizeZ".}: cint = -1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
proc constructFastNoiseVectorSet*(_size: cint): FastNoiseVectorSet {.stdcall, | |
constructor, importcpp: "FastNoiseVectorSet(@)", header: headerFastNoiseSIMD.} | |
... | |
proc SetSize*(this: var FastNoiseVectorSet; _size: cint) {.stdcall, | |
importcpp: "SetSize", header: headerFastNoiseSIMD.} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment