From c19cafa55e62230f0267f6138b894c7be2e656d9 Mon Sep 17 00:00:00 2001 From: Edouard DUPIN Date: Mon, 3 May 2021 16:58:34 +0200 Subject: [PATCH] [DEV] update new EGAMI --- src/org/atriasoft/gale/backend3d/OpenGL.java | 10 +++--- .../atriasoft/gale/context/GaleContext.java | 2 +- src/org/atriasoft/gale/resource/Resource.java | 2 +- .../gale/resource/ResourceTexture.java | 24 +++++++------- .../resource/ResourceVirtualArrayObject.java | 33 ++++++++++--------- 5 files changed, 36 insertions(+), 35 deletions(-) diff --git a/src/org/atriasoft/gale/backend3d/OpenGL.java b/src/org/atriasoft/gale/backend3d/OpenGL.java index 1a29b0c..48bc881 100644 --- a/src/org/atriasoft/gale/backend3d/OpenGL.java +++ b/src/org/atriasoft/gale/backend3d/OpenGL.java @@ -431,11 +431,11 @@ public class OpenGL { } public static void drawElements(final RenderMode mode, final int vertexCount) { - GL11.glDrawElements(CONVERT_RENDER_MODE.get(mode), vertexCount, GL11.GL_UNSIGNED_INT, 0); - } - - public static void drawTriangleRed(final Vector3f aaa, final Vector3f bbb, final Vector3f ccc) { - GL11.glFinish(); + if (programId >= 0) { + updateAllFlags(); + GL11.glDrawElements(CONVERT_RENDER_MODE.get(mode), vertexCount, GL11.GL_UNSIGNED_INT, 0); + checkGlError("glDrawElements"); + } } /** diff --git a/src/org/atriasoft/gale/context/GaleContext.java b/src/org/atriasoft/gale/context/GaleContext.java index 5fa8617..82a0585 100644 --- a/src/org/atriasoft/gale/context/GaleContext.java +++ b/src/org/atriasoft/gale/context/GaleContext.java @@ -373,7 +373,7 @@ public abstract class GaleContext { OpenGL.setViewPort(new Vector2f(0, 0), this.application.getSize()); final Color bgColor = new Color(0.8f, 0.5f, 0.8f, 1.0f); OpenGL.clearColor(bgColor); - Log.info("==> appl clear ==> not created ..."); + //Log.info("==> appl clear ==> not created ..."); } unLockContext(); hasDisplayDone = true; diff --git a/src/org/atriasoft/gale/resource/Resource.java b/src/org/atriasoft/gale/resource/Resource.java index 97195ee..c48f215 100644 --- a/src/org/atriasoft/gale/resource/Resource.java +++ b/src/org/atriasoft/gale/resource/Resource.java @@ -35,7 +35,7 @@ public abstract class Resource { } protected Resource(final Uri uri) { - this.name = uri.getValue(); + this.name = uri.toString(); getManager().localAdd(this); } diff --git a/src/org/atriasoft/gale/resource/ResourceTexture.java b/src/org/atriasoft/gale/resource/ResourceTexture.java index da9bfc6..a0a6c59 100644 --- a/src/org/atriasoft/gale/resource/ResourceTexture.java +++ b/src/org/atriasoft/gale/resource/ResourceTexture.java @@ -2,7 +2,7 @@ package org.atriasoft.gale.resource; import java.nio.ByteBuffer; -import org.atriasoft.egami.Image; +import org.atriasoft.egami.ImageByteRGBA; import org.atriasoft.etk.Uri; import org.atriasoft.etk.math.Vector2i; import org.atriasoft.gale.backend3d.OpenGL; @@ -48,26 +48,26 @@ public class ResourceTexture extends Resource { } resource = new ResourceTexture(uriTexture, textureUnit); final ImageRawData decodedData = ImageLoader.decodePngFile(uriTexture); - Image img = new Image(decodedData.getWidth(), decodedData.getHeight()); + ImageByteRGBA img = new ImageByteRGBA(decodedData.getWidth(), decodedData.getHeight()); ByteBuffer mlklmklm = decodedData.getBuffer(); byte[] elemData = new byte[mlklmklm.remaining()]; mlklmklm.get(elemData); if (decodedData.isHasAlpha()) { for (int yyy = 0; yyy < decodedData.getHeight(); yyy++) { for (int xxx = 0; xxx < decodedData.getWidth(); xxx++) { - img.setR(xxx, yyy, elemData[(yyy * decodedData.getWidth() + xxx) * 4 + 0]); - img.setG(xxx, yyy, elemData[(yyy * decodedData.getWidth() + xxx) * 4 + 1]); - img.setB(xxx, yyy, elemData[(yyy * decodedData.getWidth() + xxx) * 4 + 2]); - img.setA(xxx, yyy, elemData[(yyy * decodedData.getWidth() + xxx) * 4 + 3]); + img.setRByte(xxx, yyy, elemData[(yyy * decodedData.getWidth() + xxx) * 4 + 0]); + img.setGByte(xxx, yyy, elemData[(yyy * decodedData.getWidth() + xxx) * 4 + 1]); + img.setBByte(xxx, yyy, elemData[(yyy * decodedData.getWidth() + xxx) * 4 + 2]); + img.setAByte(xxx, yyy, elemData[(yyy * decodedData.getWidth() + xxx) * 4 + 3]); } } } else { for (int yyy = 0; yyy < decodedData.getHeight(); yyy++) { for (int xxx = 0; xxx < decodedData.getWidth(); xxx++) { - img.setA(xxx, yyy, 0xFF); - img.setR(xxx, yyy, elemData[(yyy * decodedData.getWidth() + xxx) * 3 + 0]); - img.setG(xxx, yyy, elemData[(yyy * decodedData.getWidth() + xxx) * 3 + 1]); - img.setB(xxx, yyy, elemData[(yyy * decodedData.getWidth() + xxx) * 3 + 2]); + img.setAFloat(xxx, yyy, 0xFF); + img.setRByte(xxx, yyy, elemData[(yyy * decodedData.getWidth() + xxx) * 3 + 0]); + img.setGByte(xxx, yyy, elemData[(yyy * decodedData.getWidth() + xxx) * 3 + 1]); + img.setBByte(xxx, yyy, elemData[(yyy * decodedData.getWidth() + xxx) * 3 + 2]); } } } @@ -101,7 +101,7 @@ public class ResourceTexture extends Resource { // Image properties: // pointer on the image data. //private ByteBuffer data = null; - protected Image data = new Image(32, 32); + protected ImageByteRGBA data = new ImageByteRGBA(32, 32); // size of the image data. private Vector2i size = new Vector2i(-1, -1); //!< Color space of the image. @@ -171,7 +171,7 @@ public class ResourceTexture extends Resource { this.texId = -1; } - public void setTexture(final Image data, final Vector2i size, final TextureColorMode dataColorSpace, final int textureUnit) { + public void setTexture(final ImageByteRGBA data, final Vector2i size, final TextureColorMode dataColorSpace, final int textureUnit) { this.data = data; this.size = size; this.textureUnit = textureUnit; diff --git a/src/org/atriasoft/gale/resource/ResourceVirtualArrayObject.java b/src/org/atriasoft/gale/resource/ResourceVirtualArrayObject.java index cb2eb23..1526391 100644 --- a/src/org/atriasoft/gale/resource/ResourceVirtualArrayObject.java +++ b/src/org/atriasoft/gale/resource/ResourceVirtualArrayObject.java @@ -80,7 +80,7 @@ public class ResourceVirtualArrayObject extends Resource { return buffer; } - private final boolean dynamic = false; + private boolean dynamic = false; private int vaoID = -1; private boolean exist = false; //!< This data is availlable in the Graphic card @@ -101,6 +101,7 @@ public class ResourceVirtualArrayObject extends Resource { protected ResourceVirtualArrayObject() { super(); this.resourceLevel = 3; + this.dynamic = true; Log.debug("OGL: load VBO count (dynamic)"); } @@ -170,7 +171,7 @@ public class ResourceVirtualArrayObject extends Resource { } private void createVAO() { - Log.error("create VAO..."); + Log.verbose("create VAO..."); this.vaoID = GL30.glGenVertexArrays(); GL30.glBindVertexArray(this.vaoID); } @@ -199,23 +200,23 @@ public class ResourceVirtualArrayObject extends Resource { public void loadAgainToVAO() { createVAO(); if (this.indices != null) { - Log.error("Set indices"); + Log.verbose("Set indices"); bindIndicesBuffer(this.indices); } if (this.positions != null) { - Log.error("Set positions"); + Log.verbose("Set positions"); storeDataInAttributeList(0, 3, this.positions); } if (this.textureCoordinates != null) { - Log.error("Set textureCoordinates"); + Log.verbose("Set textureCoordinates"); storeDataInAttributeList(1, 2, this.textureCoordinates); } if (this.normals != null) { - Log.error("Set normals"); + Log.verbose("Set normals"); storeDataInAttributeList(2, 3, this.normals); } if (this.colors != null) { - Log.error("Set colors"); + Log.verbose("Set colors"); storeDataInAttributeList(3, 4, this.colors); } unbindVAO(); @@ -224,23 +225,23 @@ public class ResourceVirtualArrayObject extends Resource { public void loadToVAO() { GL30.glBindVertexArray(this.vaoID); if (this.indices != null) { - Log.error("Set indices"); + Log.verbose("Set indices"); bindIndicesBuffer(this.indices); } if (this.positions != null) { - Log.error("Set positions"); + Log.verbose("Set positions"); storeDataInAttributeList(0, 3, this.positions); } if (this.textureCoordinates != null) { - Log.error("Set textureCoordinates"); + Log.verbose("Set textureCoordinates"); storeDataInAttributeList(1, 2, this.textureCoordinates); } if (this.normals != null) { - Log.error("Set normals"); + Log.verbose("Set normals"); storeDataInAttributeList(2, 3, this.normals); } if (this.colors != null) { - Log.error("Set colors"); + Log.verbose("Set colors"); storeDataInAttributeList(3, 4, this.colors); } unbindVAO(); @@ -379,7 +380,7 @@ public class ResourceVirtualArrayObject extends Resource { } private void unbindVAO() { - Log.error("Unbind VAO ..."); + Log.verbose("Unbind VAO ..."); GL30.glBindVertexArray(0); } @@ -388,7 +389,7 @@ public class ResourceVirtualArrayObject extends Resource { */ @Override public boolean updateContext() { - Log.error(" Start: [" + getId() + "] '" + getName() + "' (size=" + this.vertexCount + ") ********************************"); + Log.verbose(" Start: [" + getId() + "] '" + getName() + "' (size=" + this.vertexCount + ") ********************************"); if (!this.exist) { Log.error(" ==> ALLOCATE new handle"); // Allocate and assign a Vertex Array Object to our handle @@ -396,13 +397,13 @@ public class ResourceVirtualArrayObject extends Resource { } else { // Update VAO (only for dynamic: if (!this.dynamic) { - Log.error(" Request update a VAO with a static buffer !!!"); + Log.error(" Request update a VAO with a static buffer !!!" + this.name); } loadAgainToVAO(); } this.exist = true; - Log.error(" Stop: [" + getId() + "] '" + getName() + "'"); + Log.verbose(" Stop: [" + getId() + "] '" + getName() + "'"); return true; }