Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
*/
dependencies {
// ========================= Real Deps ========================= //
implementation("com.github.GTNewHorizons:GTNHLib:0.11.2:dev")
implementation("com.github.GTNewHorizons:GTNHLib:0.11.3:dev")
implementation("com.github.GTNewHorizons:RegionLib:v0.1.0-GTNH:dev")

compileOnly("org.jetbrains:annotations:26.0.2")
Expand All @@ -47,6 +47,7 @@ dependencies {
compileOnly("com.falsepattern:chunkapi-mc1.7.10:0.8.1:dev")
compileOnly("com.falsepattern:endlessids-mc1.7.10:1.7.1:dev")
compileOnly("ganymedes01.etfuturum:Et-Futurum-Requiem:2.6.2.21-GTNH-daily:dev")
compileOnly("com.github.GTNewHorizons:Angelica:2.1.28:dev")

// ========================= Test Deps ========================= //
devOnlyNonPublishable("com.github.GTNewHorizons:NotEnoughItems:2.8.100-GTNH:dev")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
package com.cardinalstar.cubicchunks.codegen;

public enum FieldType {

i32,
u32,
i64,
u64,
f32,
f64;

public String javaType() {
switch (this) {
case i32:
case u32:
return "int";
case i64:
case u64:
return "long";
case f32:
return "float";
case f64:
return "double";
default:
throw new IllegalArgumentException();
}
}

public String glslType() {
switch (this) {
case i32:
return "int";
case u32:
return "uint";
case i64:
return "long";
case u64:
return "ulong";
case f32:
return "float";
case f64:
return "double";
default:
throw new IllegalArgumentException();
}
}

public int wordWidth() {
switch (this) {
case i32:
case u32:
case f32:
return 1;
case i64:
case u64:
case f64:
return 2;
default:
throw new IllegalArgumentException();
}
}

/** Byte size of this type. */
public int byteSize() {
return wordWidth() * 4;
}

/** std430 alignment requirement in bytes. */
public int glAlign() {
return wordWidth() == 2 ? 8 : 4;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package com.cardinalstar.cubicchunks.codegen;

import java.io.IOException;

public class GenerateStructs {

public static void main(String[] args) throws IOException {
NOISE2D_UNIFORM.writeAllGL();
ENHANCED_BLOCK_PICKER.writeAllGL();
BIOME_DISTANCE.writeAllGL();
BIOME_LOOKUP.writeAllGL();
HEIGHTMAP.writeAllGL();
}

private static final Struct NOISE2D_UNIFORM = new Struct(
"com.cardinalstar.cubicchunks.api.worldgen.hwaccel",
"Noise2DUniform").addField(FieldType.i32, "offsetX")
.addField(FieldType.i32, "offsetZ")
.addField(FieldType.u32, "outputOffset");

private static final Struct ENHANCED_BLOCK_PICKER = new Struct(
"com.cardinalstar.cubicchunks.worldgen.ccenhanced",
"BlockPickerUniform").addField(FieldType.i32, "cubeY")
.addField(FieldType.u32, "heightmapOffset")
.addField(FieldType.u32, "blockOffset");

private static final Struct BIOME_DISTANCE = new Struct(
"com.cardinalstar.cubicchunks.worldgen.ccenhanced.biome",
"BiomeDistanceUniform").addField(FieldType.u32, "temperatureOffset")
.addField(FieldType.u32, "humidityOffset")
.addField(FieldType.u32, "continentalnessOffset")
.addField(FieldType.u32, "erosionOffset")
.addField(FieldType.u32, "distanceOffset");

private static final Struct BIOME_LOOKUP = new Struct(
"com.cardinalstar.cubicchunks.worldgen.ccenhanced.biome",
"BiomeLookupUniform").addField(FieldType.u32, "distanceOffset")
.addField(FieldType.u32, "closestOffset")
.addField(FieldType.u32, "weightsOffset");

private static final Struct HEIGHTMAP = new Struct(
"com.cardinalstar.cubicchunks.worldgen.ccenhanced.biome",
"HeightMapUniform").addField(FieldType.u32, "distancesOffset")
.addField(FieldType.u32, "hvNoiseOffset")
.addField(FieldType.u32, "heightMapOffset");
}
Loading