diff --git a/lutin_org-atriasoft-ege.py b/lutin_org-atriasoft-ege.py new file mode 100644 index 0000000..0afddb7 --- /dev/null +++ b/lutin_org-atriasoft-ege.py @@ -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 + diff --git a/samples/src/sample/atriasoft/ege/collisiontest/CollisionTestApplication.java b/samples/src/sample/atriasoft/ege/collisiontest/CollisionTestApplication.java index cb76b18..06911e3 100644 --- a/samples/src/sample/atriasoft/ege/collisiontest/CollisionTestApplication.java +++ b/samples/src/sample/atriasoft/ege/collisiontest/CollisionTestApplication.java @@ -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 ... diff --git a/samples/src/sample/atriasoft/ege/lightTest/LightTestApplication.java b/samples/src/sample/atriasoft/ege/lightTest/LightTestApplication.java index 03506ec..9f4cbe6 100644 --- a/samples/src/sample/atriasoft/ege/lightTest/LightTestApplication.java +++ b/samples/src/sample/atriasoft/ege/lightTest/LightTestApplication.java @@ -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); diff --git a/samples/src/sample/atriasoft/ege/loxelEngine/LoxelApplication.java b/samples/src/sample/atriasoft/ege/loxelEngine/LoxelApplication.java index f725941..cb9b242 100644 --- a/samples/src/sample/atriasoft/ege/loxelEngine/LoxelApplication.java +++ b/samples/src/sample/atriasoft/ege/loxelEngine/LoxelApplication.java @@ -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))); diff --git a/src/module-info.java b/src/module-info.java index 993a899..2ff9ef9 100644 --- a/src/module-info.java +++ b/src/module-info.java @@ -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; diff --git a/src/org/atriasoft/ege/Environement.java b/src/org/atriasoft/ege/Environement.java index 933f8b9..1c4f6fd 100644 --- a/src/org/atriasoft/ege/Environement.java +++ b/src/org/atriasoft/ege/Environement.java @@ -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 listEntity = new ArrayList<>(); // !< List of all entity added in the Game List controls = new ArrayList<>(); - Clock lastCallTime; + long lastCallTime = 0; // ! list of all camera in the world protected Map listCamera = new HashMap<>(); protected long gameTime = 0; // !< time of the game running - - Clock startTime; + + long startTime = 0; + Clock startClock = null; //protected List listMeshToDrawFirst = new ArrayList(); 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)); } }; diff --git a/src/renderEngine/Loader.java b/src/renderEngine/Loader.java index d8770dd..d3a8127 100644 --- a/src/renderEngine/Loader.java +++ b/src/renderEngine/Loader.java @@ -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;