[DEV] add test of lutin builder

This commit is contained in:
Edouard DUPIN 2021-06-14 13:42:05 +02:00
parent 4e0fa632c8
commit 7bbd3a4254
7 changed files with 190 additions and 18 deletions

167
lutin_org-atriasoft-ege.py Normal file
View File

@ -0,0 +1,167 @@
#!/usr/bin/python
import realog.debug as debug
import lutin.tools as tools
import realog.debug as debug
import lutin.image as image
import os
import lutin.multiprocess as lutinMultiprocess
def get_type():
return "LIBRARY_DYNAMIC"
def get_desc():
return "Ewol Tool Kit"
def get_licence():
return "MPL-2"
def get_compagny_type():
return "org"
def get_compagny_name():
return "atria-soft"
#def get_maintainer():
# return "authors.txt"
#def get_version():
# return "version.txt"
def configure(target, my_module):
my_module.add_src_file([
'src/entities/Light.java',
'src/entities/Player.java',
'src/entities/Entity.java',
'src/entities/Camera.java',
'src/shaders/ShaderProgram.java',
'src/shaders/StaticShader.java',
'src/shaders/TerrainShader.java',
'src/renderEngine/DisplayManagerDraw.java',
'src/renderEngine/DisplayManager.java',
'src/renderEngine/TerrainRenderer.java',
'src/renderEngine/EntityRenderer.java',
'src/renderEngine/MasterRenderer.java',
'src/renderEngine/Loader.java',
'src/renderEngine/OBJLoader.java',
'src/module-info.java',
'src/org/atriasoft/ege/physics/shape/Sphere.java',
'src/org/atriasoft/ege/physics/shape/Box.java',
'src/org/atriasoft/ege/physics/shape/Capsule.java',
'src/org/atriasoft/ege/physics/shape/ConvexHull.java',
'src/org/atriasoft/ege/physics/shape/Concave.java',
'src/org/atriasoft/ege/physics/shape/Shape.java',
'src/org/atriasoft/ege/physics/shape/Cone.java',
'src/org/atriasoft/ege/physics/shape/Cylinder.java',
'src/org/atriasoft/ege/Ege.java',
'src/org/atriasoft/ege/CreatorEntity.java',
'src/org/atriasoft/ege/Light.java',
'src/org/atriasoft/ege/EntityInteraction.java',
'src/org/atriasoft/ege/engines/EngineParticle.java',
'src/org/atriasoft/ege/engines/EngineDynamicMeshs.java',
'src/org/atriasoft/ege/engines/EngineMap.java',
'src/org/atriasoft/ege/engines/EngineAI.java',
'src/org/atriasoft/ege/engines/EnginePhysics.java',
'src/org/atriasoft/ege/engines/EnginePlayer.java',
'src/org/atriasoft/ege/engines/EngineGravity.java',
'src/org/atriasoft/ege/engines/EngineRender.java',
'src/org/atriasoft/ege/engines/EngineLight.java',
'src/org/atriasoft/ege/ControlCameraPlayerFPS.java',
'src/org/atriasoft/ege/internal/Log.java',
'src/org/atriasoft/ege/geometry/AABB.java',
'src/org/atriasoft/ege/geometry/Sphere.java',
'src/org/atriasoft/ege/geometry/Ray.java',
'src/org/atriasoft/ege/geometry/Plane.java',
'src/org/atriasoft/ege/geometry/OBB.java',
'src/org/atriasoft/ege/geometry/Geometry3D.java',
'src/org/atriasoft/ege/geometry/Line.java',
'src/org/atriasoft/ege/geometry/Triangle.java',
'src/org/atriasoft/ege/ControlCameraPlayer.java',
'src/org/atriasoft/ege/Material.java',
'src/org/atriasoft/ege/ResultNearestEntity.java',
'src/org/atriasoft/ege/Component.java',
'src/org/atriasoft/ege/Environement.java',
'src/org/atriasoft/ege/Signal.java',
'src/org/atriasoft/ege/map/MapVoxel.java',
'src/org/atriasoft/ege/map/VoxelType.java',
'src/org/atriasoft/ege/map/VoxelChunk.java',
'src/org/atriasoft/ege/map/ComponentDynamicMeshsVoxelMap.java',
'src/org/atriasoft/ege/map/Voxel.java',
'src/org/atriasoft/ege/map/ComponentRenderVoxelMesh.java',
'src/org/atriasoft/ege/camera/Camera.java',
'src/org/atriasoft/ege/Entity.java',
'src/org/atriasoft/ege/Engine.java',
'src/org/atriasoft/ege/components/ComponentTextures.java',
'src/org/atriasoft/ege/components/ComponentMaterials.java',
'src/org/atriasoft/ege/components/ComponentRender.java',
'src/org/atriasoft/ege/components/ComponentMaterial.java',
'src/org/atriasoft/ege/components/ComponentTexturePalette.java',
'src/org/atriasoft/ege/components/ComponentRenderTexturedStaticMesh.java',
'src/org/atriasoft/ege/components/ComponentLightSun.java',
'src/org/atriasoft/ege/components/ComponentTexturePack.java',
'src/org/atriasoft/ege/components/ComponentRenderColoredStaticMesh.java',
'src/org/atriasoft/ege/components/ComponentMap.java',
'src/org/atriasoft/ege/components/ComponentRenderTexturedMaterialsStaticMesh.java',
'src/org/atriasoft/ege/components/ComponentPhysics.java',
'src/org/atriasoft/ege/components/ComponentDynamicMeshs.java',
'src/org/atriasoft/ege/components/ComponentMesh.java',
'src/org/atriasoft/ege/components/ComponentPlayer.java',
'src/org/atriasoft/ege/components/ComponentRenderMeshPalette.java',
'src/org/atriasoft/ege/components/ComponentGravityStatic.java',
'src/org/atriasoft/ege/components/ComponentRenderTexturedMaterialsStaticMeshs.java',
'src/org/atriasoft/ege/components/ComponentGravity.java',
'src/org/atriasoft/ege/components/ComponentPositionPlayer.java',
'src/org/atriasoft/ege/components/ComponentLight.java',
'src/org/atriasoft/ege/components/part/LightRender.java',
'src/org/atriasoft/ege/components/part/MaterialRenderBase.java',
'src/org/atriasoft/ege/components/part/MaterialsRender.java',
'src/org/atriasoft/ege/components/part/PartRenderInterface.java',
'src/org/atriasoft/ege/components/part/TransformRender.java',
'src/org/atriasoft/ege/components/part/MaterialRender.java',
'src/org/atriasoft/ege/components/part/PositionningInterface.java',
'src/org/atriasoft/ege/components/GlLightIndex.java',
'src/org/atriasoft/ege/components/ComponentStaticMeshs.java',
'src/org/atriasoft/ege/components/ComponentPosition.java',
'src/org/atriasoft/ege/components/ComponentAI.java',
'src/org/atriasoft/ege/components/PhysicBodyType.java',
'src/org/atriasoft/ege/components/ComponentRenderTexturedMaterialsDynamicMeshs.java',
'src/org/atriasoft/ege/components/ComponentTexture.java',
'src/org/atriasoft/ege/components/ComponentStaticMesh.java',
'src/org/atriasoft/ege/components/ComponentParticle.java',
'src/org/atriasoft/ege/tools/MeshGenerator.java',
'src/org/atriasoft/ege/ControlCameraSimple.java',
'src/org/atriasoft/ege/ControlInterface.java',
'src/org/atriasoft/ege/GameStatus.java',
'src/skybox/SkyboxShader.java',
'src/skybox/SkyboxRenderer.java',
'src/terrains/TerrainTexture.java',
'src/terrains/TerrainTexturePack.java',
'src/terrains/Terrain.java',
'src/guis/GuiTexture.java',
'src/guis/GuiRenderer.java',
'src/guis/GuiShader.java',
'src/textures/ModelTexture.java',
'src/textures/TextureData.java',
'src/toolbox/Maths.java',
'src/models/RawModel.java',
'src/models/TexturedModel.java',
])
my_module.add_path('src/', type='java')
my_module.add_depend([
'org-atriasoft-ewol',
'org-atriasoft-ephysics',
'org-atriasoft-loader3d',
])
#my_module.add_path([
# 'lib/spotbugs-annotations-4.2.2.jar'
# ],
# type='java',
# export=True
#);
my_module.add_flag('java', "RELEASE_15_PREVIEW");
return True

View File

@ -90,7 +90,7 @@ public class CollisionTestApplication extends GaleApplication {
// simple sun to have a global light ...
final Entity sun = new Entity(this.env);
sun.addComponent(new ComponentPosition(new Transform3D(new Vector3f(1000, 1000, 1000))));
sun.addComponent(new ComponentLightSun(new Light(new Vector3f(0.4f, 0.4f, 0.4f), Vector3f.ZERO, new Vector3f(0.8f, 0, 0))));
sun.addComponent(new ComponentLightSun(new Light(new Color(0.4f, 0.4f, 0.4f), Vector3f.ZERO, new Vector3f(0.8f, 0, 0))));
this.env.addEntity(sun);
// add a cube to show where in the light ...

View File

@ -61,7 +61,7 @@ public class LightTestApplication extends GaleApplication {
// simple sun to have a global light ...
final Entity sun = new Entity(this.env);
sun.addComponent(new ComponentPosition(new Transform3D(new Vector3f(1000, 1000, 1000))));
sun.addComponent(new ComponentLightSun(new Light(new Vector3f(0.4f, 0.4f, 0.4f), new Vector3f(0, 0, 0), new Vector3f(0.8f, 0, 0))));
sun.addComponent(new ComponentLightSun(new Light(new Color(0.4f, 0.4f, 0.4f), new Vector3f(0, 0, 0), new Vector3f(0.8f, 0, 0))));
this.env.addEntity(sun);
// add a cube to show where in the light ...
@ -70,7 +70,7 @@ public class LightTestApplication extends GaleApplication {
localLight.addComponent(this.lightPosition);
localLight.addComponent(new ComponentStaticMesh(new Uri("RES", "cube-one.obj")));
localLight.addComponent(new ComponentTexture(new Uri("RES", "grass.png")));
localLight.addComponent(new ComponentLight(new Light(new Vector3f(0, 2, 0), new Vector3f(0, 0, 0), new Vector3f(0.8f, 0.01f, 0.002f))));
localLight.addComponent(new ComponentLight(new Light(new Color(0.0f, 2.0f, 0.0f), new Vector3f(0, 0, 0), new Vector3f(0.8f, 0.01f, 0.002f))));
localLight.addComponent(new ComponentRenderTexturedStaticMesh(new Uri("DATA", "basic.vert", "loxelEngine"), new Uri("DATA", "basic.frag", "loxelEngine")));
this.env.addEntity(localLight);

View File

@ -93,7 +93,7 @@ public class LoxelApplication extends GaleApplication {
// simple sun to have a global light ...
final Entity sun = new Entity(this.env);
sun.addComponent(new ComponentPosition(new Transform3D(new Vector3f(1000, 1000, 1000))));
sun.addComponent(new ComponentLightSun(new Light(new Vector3f(0.4f, 0.4f, 0.4f), new Vector3f(0, 0, 0), new Vector3f(0.8f, 0, 0))));
sun.addComponent(new ComponentLightSun(new Light(new Color(0.4f, 0.4f, 0.4f), new Vector3f(0, 0, 0), new Vector3f(0.8f, 0, 0))));
this.env.addEntity(sun);
// add a cube to show where in the light ...
@ -112,7 +112,7 @@ public class LoxelApplication extends GaleApplication {
final Entity localBox = new Entity(this.env);
localBox.addComponent(new ComponentStaticMesh(new Uri("RES", "cube-one.obj")));
localBox.addComponent(new ComponentTexture(new Uri("DATA", "blocks/clay.png", "loxelEngine")));
localBox.addComponent(new ComponentLight(new Light(new Vector3f(0, 1, 0), new Vector3f(0, 0, 0), new Vector3f(0.8f, 0.03f, 0.002f))));
localBox.addComponent(new ComponentLight(new Light(new Color(0.0f, 1.0f, 0.0f), new Vector3f(0, 0, 0), new Vector3f(0.8f, 0.03f, 0.002f))));
localBox.addComponent(new ComponentRenderTexturedStaticMesh(new Uri("DATA", "basic.vert", "loxelEngine"), new Uri("DATA", "basic.frag", "loxelEngine")));
final ComponentPhysics physics2 = new ComponentPhysics(this.env);
physics2.setTransform(new Transform3D(new Vector3f(0, 0, 5)));
@ -129,7 +129,7 @@ public class LoxelApplication extends GaleApplication {
final Entity localBox = new Entity(this.env);
localBox.addComponent(new ComponentStaticMesh(new Uri("RES", "cube-one.obj")));
localBox.addComponent(new ComponentTexture(new Uri("DATA", "blocks/clay.png", "loxelEngine")));
localBox.addComponent(new ComponentLight(new Light(new Vector3f(0, 1, 0), new Vector3f(0, 0, 0), new Vector3f(0.8f, 0.03f, 0.002f))));
localBox.addComponent(new ComponentLight(new Light(new Color(0.0f,1.0f, 0.0f), new Vector3f(0, 0, 0), new Vector3f(0.8f, 0.03f, 0.002f))));
localBox.addComponent(new ComponentRenderTexturedStaticMesh(new Uri("DATA", "basic.vert", "loxelEngine"), new Uri("DATA", "basic.frag", "loxelEngine")));
final ComponentPhysics physics2 = new ComponentPhysics(this.env);
physics2.setTransform(new Transform3D(new Vector3f(0, 4, 12.5f)));

View File

@ -21,6 +21,7 @@ open module org.atriasoft.ege {
exports textures;
exports toolbox;
requires transitive java.desktop; // todo: remove this deprecated element...
requires transitive org.atriasoft.gale;
requires transitive org.atriasoft.etk;
requires transitive org.atriasoft.ewol;

View File

@ -1,11 +1,12 @@
package org.atriasoft.ege;
import java.time.Clock;
import java.time.Duration;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.atriasoft.echrono.Clock;
import org.atriasoft.ege.camera.Camera;
import org.atriasoft.ege.engines.EngineAI;
import org.atriasoft.ege.engines.EngineDynamicMeshs;
@ -54,13 +55,14 @@ public class Environement {
private final List<Entity> listEntity = new ArrayList<>(); // !< List of all entity added in the Game
List<ControlInterface> controls = new ArrayList<>();
Clock lastCallTime;
long lastCallTime = 0;
// ! list of all camera in the world
protected Map<String, Camera> listCamera = new HashMap<>();
protected long gameTime = 0; // !< time of the game running
Clock startTime;
long startTime = 0;
Clock startClock = null;
//protected List<Mesh> listMeshToDrawFirst = new ArrayList<Mesh>();
public Environement() {
@ -72,6 +74,7 @@ public class Environement {
addEngine(new EnginePhysics(this));
addEngine(new EngineParticle(this));
addEngine(new EngineLight(this));
startClock = Clock.systemUTC();
}
/**
@ -325,18 +328,19 @@ public class Environement {
}
public void periodicCall() {
if (this.lastCallTime == null) {
this.startTime = Clock.now();
if (this.lastCallTime == 0) {
this.startTime = System.nanoTime();
this.lastCallTime = this.startTime;
}
final Clock lastUpdate = this.lastCallTime;
this.lastCallTime = Clock.now();
final EventTime event = new EventTime(this.lastCallTime, this.startTime, this.lastCallTime.less(lastUpdate), this.lastCallTime.less(lastUpdate));
final long lastUpdate = this.lastCallTime;
this.lastCallTime = System.nanoTime();
Clock currentClock = Clock.systemUTC();
final EventTime event = new EventTime(currentClock, this.startClock, this.lastCallTime , this.startTime, Duration.ofNanos(this.lastCallTime - lastUpdate), Duration.ofNanos(this.lastCallTime - lastUpdate));
for (final ControlInterface elem : this.controls) {
elem.periodicCall(event);
}
for (final Engine engine : this.engines) {
engine.update(this.lastCallTime.less(lastUpdate).get() / 100);
engine.update((long)((this.lastCallTime - lastUpdate)/1000000));
}
};

View File

@ -16,8 +16,8 @@ import org.lwjgl.opengl.GL15;
import org.lwjgl.opengl.GL20;
import org.lwjgl.opengl.GL30;
import de.matthiasmann.twl.utils.PNGDecoder;
import de.matthiasmann.twl.utils.PNGDecoder.Format;
import org.atriasoft.pngdecoder.PNGDecoder;
import org.atriasoft.pngdecoder.PNGDecoder.Format;
import models.RawModel;
import textures.TextureData;