diff --git a/src/main/java/g3dtest/G3d.java b/src/main/java/g3dtest/G3d.java index 34538d4..12687e0 100644 --- a/src/main/java/g3dtest/G3d.java +++ b/src/main/java/g3dtest/G3d.java @@ -3,11 +3,12 @@ import g3dtest.game.GamePanel; import g3dtest.simple.SimplePanel; import org.mini.gui.*; +import org.mini.apploader.GApplication; import org.mini.gui.event.GSizeChangeListener; import org.mini.layout.UITemplate; import org.mini.layout.XContainer; import org.mini.layout.XForm; - +import org.mini.layout.XmlExtAssist; /** * @author gust @@ -28,15 +29,16 @@ public GForm getForm() { GLanguage.setCurLang(GLanguage.ID_CHN); eventHandle = new GameUIEventHandle(this); + XmlExtAssist assist = new XmlExtAssist(); - XContainer.registerGUI("g3dtest.simple.XSimplePanel"); - XContainer.registerGUI("g3dtest.game.XGamePanel"); + assist.registerGUI("g3dtest.simple.XSimplePanel"); + assist.registerGUI("g3dtest.game.XGamePanel"); String xmlStr = GToolkit.readFileFromJarAsString("/res/ui/G3dForm.xml", "utf-8"); UITemplate uit = new UITemplate(xmlStr); for (String key : uit.getVariable()) { uit.setVar(key, GLanguage.getString(key)); } - XForm xform = (XForm) XContainer.parseXml(uit.parse()); + XForm xform = (XForm) XContainer.parseXml(uit.parse(), assist); xform.build(GCallBack.getInstance().getDeviceWidth(), GCallBack.getInstance().getDeviceHeight(), eventHandle); form = (GForm) xform.getGui(); eventHandle.setForm(form); diff --git a/src/main/java/g3dtest/game/GamePanel.java b/src/main/java/g3dtest/game/GamePanel.java index 65fd52f..8a54159 100644 --- a/src/main/java/g3dtest/game/GamePanel.java +++ b/src/main/java/g3dtest/game/GamePanel.java @@ -95,31 +95,31 @@ public void gl_init() { EngineManager.createDisplay((int) getW(), (int) getH()); loader = new Loader(); - //Gutil.checkGlError("Game glinit 0.1"); + //GLUtil.checkGlError("Game glinit 0.1"); Random random = new Random(); int smSize = 1024; shadowMappingPass = new ShadowMappingPass(smSize, smSize); shadowMappingPass.gl_init(); - //Gutil.checkGlError("Game glinit 0.3"); + //GLUtil.checkGlError("Game glinit 0.3"); shadowMappingRenderer = new ShadowMappingRenderer(shadowMappingPass); masterPass = new MasterPass((int) getW(), (int) getH()); masterPass.gl_init(); setGlRendereredImg(masterPass.getFboimg()); - //Gutil.checkGlError("Game glinit 0.5"); + //GLUtil.checkGlError("Game glinit 0.5"); camera = new WorldCamera(EngineManager.getWidth(), EngineManager.getHeight(), MasterRenderer.FOV, MasterRenderer.NEAR_PLANE, MasterRenderer.FAR_PLANE); masterRenderer = new MasterRenderer(camera); - //Gutil.checkGlError("Game glinit 0.8"); + //GLUtil.checkGlError("Game glinit 0.8"); guiRenderer = new GuiRenderer(loader); - //Gutil.checkGlError("Game glinit 1"); + //GLUtil.checkGlError("Game glinit 1"); // the sun sun = new Light(new Vector3f(-200, 500, 0), new Vector3f(1.0f, 1.0f, 1.0f)); lights.add(sun); - //Gutil.checkGlError("Game glinit 2"); + //GLUtil.checkGlError("Game glinit 2"); // Terrain //textures to paint the terrain with TerrainTexture backgroundTexture = new TerrainTexture(loader.loadTexture("textures/terrain/grassy")); @@ -136,7 +136,7 @@ public void gl_init() { // terrains.add(new Terrain(-1, 0, loader, texturePack, blendMap, "textures/terrain/heightmap")); terrain = new Terrain(0, 0, loader, texturePack, blendMap, "textures/terrain/heightmap", shadowMappingRenderer); terrains.add(terrain); - //Gutil.checkGlError("Game glinit 3"); + //GLUtil.checkGlError("Game glinit 3"); // Terrain end // Models // Environment Models @@ -176,7 +176,7 @@ public void gl_init() { ball = new Entity(ballmode, random.nextInt(4), new Vector3f(0, terrains.get(0).getHeightOfTerrain(0, 0), 0), 0f, 0f, 0f, 1.0f); entities.add(ball); - //Gutil.checkGlError("Game glinit 4"); + //GLUtil.checkGlError("Game glinit 4"); // Environment Models end // GUI // Health Bar @@ -190,7 +190,7 @@ public void gl_init() { modelWithLight(entities, lights, lamp, 1, terrains.get(0), tx, ty, tz, "Green", 0); } - //Gutil.checkGlError("Game glinit 5"); + //GLUtil.checkGlError("Game glinit 5"); // Models end // Animation @@ -213,13 +213,13 @@ public void gl_init() { players.add(player2); } - //Gutil.checkGlError("Game glinit 8"); + //GLUtil.checkGlError("Game glinit 8"); waterShader = new WaterShader(); waterRenderer = new WaterRenderer(loader, waterShader, camera); waters.add(new WaterTile(75, 75, -7)); - //Gutil.checkGlError("Game glinit 9"); + //GLUtil.checkGlError("Game glinit 9"); skybox = new Skybox(loader); picker = new MousePicker(camera, terrain); @@ -227,7 +227,7 @@ public void gl_init() { particles = new ArrayList(); createParticleSystems(particles); ParticleManager.init(loader, camera); - //Gutil.checkGlError("Game glinit 10"); + //GLUtil.checkGlError("Game glinit 10"); widgets = new WidgetContainer(this, 0, 0, getW(), getH()); viewMover = new ViewMover("/res/textures/view.png", getW() * .5f, 0, getW() * .5f, getH()); @@ -331,7 +331,7 @@ public void gl_paint() { glPolygonOffset(1.f, 1.f); // MainLoop - //Gutil.checkGlError(this.getClass().getName() + " gl_paint 0"); + //GLUtil.checkGlError(this.getClass().getName() + " gl_paint 0"); shadowMappingPass.begin(); shadowMappingRenderer.processTerrain(terrain); for (int i = 0, imax = entities.size(); i < imax; i++) { @@ -341,7 +341,7 @@ public void gl_paint() { //shadowMappingRenderer.processEntity(player); shadowMappingRenderer.render(sun); shadowMappingPass.end(); - //Gutil.checkGlError(this.getClass().getName() + " gl_paint 1"); + //GLUtil.checkGlError(this.getClass().getName() + " gl_paint 1"); masterPass.begin(); @@ -354,7 +354,7 @@ public void gl_paint() { // render without animation guiRenderer.render(guis); masterPass.end(); - //Gutil.checkGlError(this.getClass().getName() + " gl_paint 2"); + //GLUtil.checkGlError(this.getClass().getName() + " gl_paint 2"); //update @@ -477,7 +477,7 @@ private static TexturedModel loadTexturedModel(String modelFileName, String text @Override - public boolean dragEvent(float dx, float dy, float x, float y) { + public boolean dragEvent(int button, float dx, float dy, float x, float y) { return widgets.dragEvent(dx, dy, x, y); } diff --git a/src/main/java/g3dtest/simple/SimplePanel.java b/src/main/java/g3dtest/simple/SimplePanel.java index 17abec6..eea5eaf 100644 --- a/src/main/java/g3dtest/simple/SimplePanel.java +++ b/src/main/java/g3dtest/simple/SimplePanel.java @@ -1,10 +1,11 @@ package g3dtest.simple; import org.mini.gl.GL; -import org.mini.gl.warp.GLFrameBuffer; +import org.mini.gl.GLMath; +import org.mini.glwrap.GLFrameBuffer; import org.mini.gui.GOpenGLPanel; import org.mini.gui.GToolkit; -import org.mini.nanovg.Gutil; +import org.mini.glwrap.GLUtil; import static org.mini.gl.GL.*; @@ -22,7 +23,7 @@ int loadShader(String vss, String fss) { //编译顶点着色器 int vertexShader; vertexShader = glCreateShader(GL_VERTEX_SHADER); - glShaderSource(vertexShader, 1, new byte[][]{Gutil.toUtf8(vss)}, null, 0); + glShaderSource(vertexShader, 1, new byte[][]{GLUtil.toUtf8(vss)}, null, 0); glCompileShader(vertexShader); int success; GL.glGetShaderiv(vertexShader, GL.GL_COMPILE_STATUS, return_val, 0); @@ -37,7 +38,7 @@ int loadShader(String vss, String fss) { int fragmentShader; fragmentShader = glCreateShader(GL_FRAGMENT_SHADER); - glShaderSource(fragmentShader, 1, new byte[][]{Gutil.toUtf8(fss)}, null, 0); + glShaderSource(fragmentShader, 1, new byte[][]{GLUtil.toUtf8(fss)}, null, 0); glCompileShader(fragmentShader); GL.glGetShaderiv(fragmentShader, GL.GL_COMPILE_STATUS, return_val, 0); if (return_val[0] == GL_FALSE) { @@ -213,16 +214,16 @@ public void gl_init() { int[] whd = {0, 0, 0}; - texture1[0] = Gutil.gl_image_load(GToolkit.readFileFromJar("/res/textures/fern.png"), whd); + texture1[0] = GLUtil.gl_image_load(GToolkit.readFileFromJar("/res/textures/fern.png"), whd); // =================== // Texture 2 // =================== - texture2[0] = Gutil.gl_image_load(GToolkit.readFileFromJar("/res/textures/pine.png"), whd); + texture2[0] = GLUtil.gl_image_load(GToolkit.readFileFromJar("/res/textures/pine.png"), whd); glEnable(GL_DEPTH_TEST); - //Gutil.checkGlError("gl_init"); + //GLUtil.checkGlError("gl_init"); } @Override @@ -255,11 +256,11 @@ public void gl_paint() { // Bind Textures using texture units glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, texture1[0]); - int location = glGetUniformLocation(ourShader, Gutil.toUtf8("ourTexture1")); + int location = glGetUniformLocation(ourShader, GLUtil.toUtf8("ourTexture1")); glUniform1i(location, 0); glActiveTexture(GL_TEXTURE1); glBindTexture(GL_TEXTURE_2D, texture2[0]); - location = glGetUniformLocation(ourShader, Gutil.toUtf8("ourTexture2")); + location = glGetUniformLocation(ourShader, GLUtil.toUtf8("ourTexture2")); glUniform1i(location, 1); @@ -269,20 +270,20 @@ public void gl_paint() { time += 1f / 60f; float camX = (float) Math.sin(time) * radius; float camZ = (float) Math.cos(time) * radius; - Gutil.mat4x4_look_at(view + GLMath.mat4x4_look_at(view , new float[]{camX, 0.0f, camZ} , new float[]{0.0f, 0.0f, 0.0f} , new float[]{0.0f, 1.0f, 0.0f}); //view = glm::lookAt (glm::vec3 (camX, 0.0f, camZ),glm::vec3 (0.0f, 0.0f, 0.0f),glm::vec3 (0.0f, 1.0f, 0.0f)); // Projection float[] projection = new float[16]; - Gutil.mat4x4_perspective(projection + GLMath.mat4x4_perspective(projection , 45.0f, getW() / getH(), 0.1f, 100.0f); //projection = glm::perspective (45.0f, (GLfloat) WIDTH / (GLfloat) HEIGHT, 0.1f, 100.0f); // Get the uniform locations - int modelLoc = glGetUniformLocation(ourShader, Gutil.toUtf8("model")); - int viewLoc = glGetUniformLocation(ourShader, Gutil.toUtf8("view")); - int projLoc = glGetUniformLocation(ourShader, Gutil.toUtf8("projection")); + int modelLoc = glGetUniformLocation(ourShader, GLUtil.toUtf8("model")); + int viewLoc = glGetUniformLocation(ourShader, GLUtil.toUtf8("view")); + int projLoc = glGetUniformLocation(ourShader, GLUtil.toUtf8("projection")); // Pass the matrices to the shader glUniformMatrix4fv(viewLoc, 1, GL_FALSE, view, 0); glUniformMatrix4fv(projLoc, 1, GL_FALSE, projection, 0); @@ -292,9 +293,9 @@ public void gl_paint() { glBindVertexArray(VAO[0]); for (int i = 0; i < 10; i++) { // Calculate the model matrix for each object and pass it to shader before drawing - Gutil.mat4x4_translate(model, cubePositions[i][0], cubePositions[i][1], cubePositions[i][2]); + GLMath.mat4x4_translate(model, cubePositions[i][0], cubePositions[i][1], cubePositions[i][2]); float angle = 0.f * 1; - Gutil.mat4x4_rotate(modelr, model, 1.0f, 1.0f, 1.0f, angle); + GLMath.mat4x4_rotate(modelr, model, 1.0f, 1.0f, 1.0f, angle); glUniformMatrix4fv(modelLoc, 1, GL_FALSE, modelr, 0); glDrawArrays(GL_TRIANGLES, 0, 36); diff --git a/src/main/java/org/mini/g3d/animation/AnimatedModel.java b/src/main/java/org/mini/g3d/animation/AnimatedModel.java index ddde69b..c000699 100644 --- a/src/main/java/org/mini/g3d/animation/AnimatedModel.java +++ b/src/main/java/org/mini/g3d/animation/AnimatedModel.java @@ -12,7 +12,8 @@ import org.mini.g3d.core.toolbox.G3dMath; import org.mini.g3d.core.vector.Matrix4f; import org.mini.g3d.entity.Entity; -import org.mini.nanovg.Gutil; +import org.mini.glwrap.GLUtil; +import org.mini.gl.GLMath; import java.util.ArrayList; import java.util.List; @@ -160,7 +161,7 @@ private void processNodeChildren(GLTFNode node, RenderNode parent) { @Override public void swap() { - Gutil.mat4x4_dup(transform.mat, transform_backend.mat); + GLMath.mat4x4_dup(transform.mat, transform_backend.mat); rootRenderNode.swap(); } } diff --git a/src/main/java/org/mini/g3d/core/Loader.java b/src/main/java/org/mini/g3d/core/Loader.java index bc8c841..ec2101b 100644 --- a/src/main/java/org/mini/g3d/core/Loader.java +++ b/src/main/java/org/mini/g3d/core/Loader.java @@ -4,7 +4,7 @@ import org.mini.g3d.core.textures.TextureData; import org.mini.gui.GCmd; import org.mini.gui.GForm; -import org.mini.nanovg.Gutil; +import org.mini.glwrap.GLUtil; import java.util.ArrayList; import java.util.List; @@ -51,7 +51,7 @@ public RawModel loadAnimatedModelToVAO(float[] positions, float[] textureCoords, public int loadTexture(String fileName) { byte[] filecont = loadFileFromJar(EngineManager.RES_LOC + fileName + ".png"); - int textureID = Gutil.gl_image_load(filecont, w_h_d); + int textureID = GLUtil.gl_image_load(filecont, w_h_d); textures.add(textureID); return textureID; } @@ -80,7 +80,7 @@ public int loadCubeMap(String[] textureFiles) { private TextureData decodeTextureFile(String fileName) { byte[] filecont = EngineManager.loadFileFromJar(fileName); - byte[] b = Gutil.image_parse_from_file_content(filecont, w_h_d); + byte[] b = GLUtil.image_parse_from_file_content(filecont, w_h_d); //System.out.println("load " + fileName + " whn:" + w_h_d[0] + "," + w_h_d[1] + "," + w_h_d[2]); return new TextureData(b, w_h_d[0], w_h_d[1], w_h_d[2]); } diff --git a/src/main/java/org/mini/g3d/core/MasterPass.java b/src/main/java/org/mini/g3d/core/MasterPass.java index 5728066..aef36ad 100644 --- a/src/main/java/org/mini/g3d/core/MasterPass.java +++ b/src/main/java/org/mini/g3d/core/MasterPass.java @@ -1,6 +1,6 @@ package org.mini.g3d.core; -import org.mini.gl.warp.GLFrameBuffer; +import org.mini.glwrap.GLFrameBuffer; public class MasterPass extends GLFrameBuffer { public static int triangles = 0; diff --git a/src/main/java/org/mini/g3d/core/MasterRenderer.java b/src/main/java/org/mini/g3d/core/MasterRenderer.java index 6547a0d..3926bea 100644 --- a/src/main/java/org/mini/g3d/core/MasterRenderer.java +++ b/src/main/java/org/mini/g3d/core/MasterRenderer.java @@ -64,7 +64,7 @@ public void render(Camera camera, List lights, List animat masterShader.loadViewMatrix(camera); enitiyRenderer.render(entities); masterShader.stop(); - //Gutil.checkGlError(this.getClass().getCanonicalName() + "render 1"); + //GLUtil.checkGlError(this.getClass().getCanonicalName() + "render 1"); for (int i = 0, imax = animatedPlayers.size(); i < imax; i++) { AnimatedModel p = animatedPlayers.get(i); @@ -74,7 +74,7 @@ public void render(Camera camera, List lights, List animat // animatedModelShader.loadViewMatrix(camera); animatedModelRenderer.render(camera, p); // animatedModelShader.stop(); - //Gutil.checkGlError(this.getClass().getCanonicalName() + "render 2"); + //GLUtil.checkGlError(this.getClass().getCanonicalName() + "render 2"); } terrainShader.start(); @@ -83,7 +83,7 @@ public void render(Camera camera, List lights, List animat terrainShader.loadViewMatrix(camera); terrainRenderer.render(terrains); terrainShader.stop(); - //Gutil.checkGlError(this.getClass().getCanonicalName() + "render 3"); + //GLUtil.checkGlError(this.getClass().getCanonicalName() + "render 3"); skyboxRenderer.render(camera, box, FOG_RED, FOG_GREEN, FOG_BLUE); diff --git a/src/main/java/org/mini/g3d/core/MasterShader.java b/src/main/java/org/mini/g3d/core/MasterShader.java index 0f18162..3aa5475 100644 --- a/src/main/java/org/mini/g3d/core/MasterShader.java +++ b/src/main/java/org/mini/g3d/core/MasterShader.java @@ -100,7 +100,7 @@ public void loadProjectionMatrix(Matrix4f matrix) { public void loadViewMatrix(Camera camera) { // Matrix4f viewMatrix = new Matrix4f(); // float[] eye = new float[]{GamePanel.sun.getPosition().left, GamePanel.sun.getPosition().top, GamePanel.sun.getPosition().z}; -// Gutil.mat4x4_look_at(viewMatrix.mat, eye, new float[]{-GamePanel.sun.getPosition().left, -GamePanel.sun.getPosition().top, -GamePanel.sun.getPosition().z}, new float[]{0.0f, 1.0f, 0.0f}); +// GLMath.mat4x4_look_at(viewMatrix.mat, eye, new float[]{-GamePanel.sun.getPosition().left, -GamePanel.sun.getPosition().top, -GamePanel.sun.getPosition().z}, new float[]{0.0f, 1.0f, 0.0f}); super.loadMatrix(location_viewMatrix, camera.getViewMatrix()); } diff --git a/src/main/java/org/mini/g3d/core/ShaderProgram.java b/src/main/java/org/mini/g3d/core/ShaderProgram.java index 3209aa2..3dcbe99 100644 --- a/src/main/java/org/mini/g3d/core/ShaderProgram.java +++ b/src/main/java/org/mini/g3d/core/ShaderProgram.java @@ -7,7 +7,7 @@ import org.mini.gui.GToolkit; import static org.mini.gl.GL.*; -import static org.mini.nanovg.Gutil.toUtf8; +import static org.mini.glwrap.GLUtil.toUtf8; public abstract class ShaderProgram { diff --git a/src/main/java/org/mini/g3d/core/WorldCamera.java b/src/main/java/org/mini/g3d/core/WorldCamera.java index a1b65f4..1ce4719 100644 --- a/src/main/java/org/mini/g3d/core/WorldCamera.java +++ b/src/main/java/org/mini/g3d/core/WorldCamera.java @@ -3,7 +3,8 @@ import org.mini.g3d.core.vector.Matrix4f; import org.mini.g3d.core.vector.Vector3f; import org.mini.g3d.entity.Entity; -import org.mini.nanovg.Gutil; +import org.mini.glwrap.GLUtil; +import org.mini.gl.GLMath; public class WorldCamera implements Camera { @@ -163,14 +164,14 @@ public void createProjectionMatrix() { // projectionMatrix.mat[Matrix4f.M33] = 0; float aspectRatio = viewW / viewH; - Gutil.mat4x4_perspective(projectionMatrix.mat, fov, aspectRatio, near, far); -// Gutil.mat4x4_ortho(projectionMatrix.mat, -1500.0f, 1500.0f, -1500.0f, 1500.0f, 0.1f, 3000.0f); + GLMath.mat4x4_perspective(projectionMatrix.mat, fov, aspectRatio, near, far); +// GLMath.mat4x4_ortho(projectionMatrix.mat, -1500.0f, 1500.0f, -1500.0f, 1500.0f, 0.1f, 3000.0f); } public void createSkyboxProjectionMatrix() { float aspectRatio = viewW / viewH; - Gutil.mat4x4_perspective(skyBoxProjectionMatrix.mat, fov, aspectRatio, near, far * 8); + GLMath.mat4x4_perspective(skyBoxProjectionMatrix.mat, fov, aspectRatio, near, far * 8); } public Matrix4f getProjectionMatrix() { @@ -235,4 +236,4 @@ public Matrix4f getViewMatrix() { Matrix4f.translate(negativeCameraPos, viewMatrix, viewMatrix); return viewMatrix; } -} \ No newline at end of file +} diff --git a/src/main/java/org/mini/g3d/core/gltf2/AnimatedShader.java b/src/main/java/org/mini/g3d/core/gltf2/AnimatedShader.java index 2fb7661..9b9f82f 100644 --- a/src/main/java/org/mini/g3d/core/gltf2/AnimatedShader.java +++ b/src/main/java/org/mini/g3d/core/gltf2/AnimatedShader.java @@ -12,7 +12,7 @@ import org.mini.g3d.core.gltf2.render.UniformLight; import org.mini.g3d.core.vector.Matrix4f; import org.mini.g3d.core.vector.Vector3f; -import org.mini.nanovg.Gutil; +import org.mini.glwrap.GLUtil; import java.lang.reflect.Field; import java.util.List; @@ -75,7 +75,7 @@ public void getAllUniformLocations(RenderNode node, int lightCount) { GLTFAccessor accessor = entry.getValue(); - int location = glGetAttribLocation(getProgramId(), Gutil.toUtf8(attributeName)); + int location = glGetAttribLocation(getProgramId(), GLUtil.toUtf8(attributeName)); location_attribute[c++] = location; if (location < 0) { continue; @@ -117,7 +117,7 @@ public void getAllUniformLocations(RenderNode node, int lightCount) { location_u_Lights[i] = getUniformLocation("u_Lights[" + i + "]"); } - location_a_Position = glGetAttribLocation(getProgramId(), Gutil.toUtf8("a_Position")); + location_a_Position = glGetAttribLocation(getProgramId(), GLUtil.toUtf8("a_Position")); } diff --git a/src/main/java/org/mini/g3d/core/gltf2/GlUtil.java b/src/main/java/org/mini/g3d/core/gltf2/GlUtil.java index 069b76d..b855cab 100644 --- a/src/main/java/org/mini/g3d/core/gltf2/GlUtil.java +++ b/src/main/java/org/mini/g3d/core/gltf2/GlUtil.java @@ -10,7 +10,7 @@ import org.mini.g3d.core.gltf2.loader.data.GLTFAccessor; import org.mini.g3d.core.gltf2.render.RenderTexture; import org.mini.gl.GL; -import org.mini.nanovg.Gutil; +import org.mini.glwrap.GLUtil; import java.nio.ByteBuffer; import java.util.HashMap; @@ -34,7 +34,7 @@ public static int compileShader(String shaderIdentifier, boolean isVert, String // System.out.println(shaderSource); int shader = glCreateShader(isVert ? GL_VERTEX_SHADER : GL_FRAGMENT_SHADER); // glShaderSource(shader, shaderSource); - glShaderSource(shader, 1, new byte[][]{Gutil.toUtf8(shaderSource)}, null, 0); + glShaderSource(shader, 1, new byte[][]{GLUtil.toUtf8(shaderSource)}, null, 0); glCompileShader(shader); int[] return_val = {0}; diff --git a/src/main/java/org/mini/g3d/core/gltf2/loader/GLTFImporter.java b/src/main/java/org/mini/g3d/core/gltf2/loader/GLTFImporter.java index 1bdae82..d215125 100644 --- a/src/main/java/org/mini/g3d/core/gltf2/loader/GLTFImporter.java +++ b/src/main/java/org/mini/g3d/core/gltf2/loader/GLTFImporter.java @@ -16,10 +16,11 @@ public class GLTFImporter { - JsonParser mapper = new JsonParser(GCallBack.getInstance().getApplication().getClass().getClassLoader()); + JsonParser mapper = new JsonParser<>(); public GLTFImporter() { + mapper.setClassLoader(GCallBack.getInstance().getApplication().getClass().getClassLoader()); mapper.registerModule(GLTFJsonModule.getModule()); } @@ -80,7 +81,9 @@ static public GLTF loadFile(String path) { static public AnimationClip loadAnimationClip(String path) { String json = GToolkit.readFileFromJarAsString(path, "utf-8"); - AnimationClip aniClip = (AnimationClip) new JsonParser(GCallBack.getInstance().getApplication().getClass().getClassLoader()).deserial(json, AnimationClip.class); + JsonParser parser = new JsonParser(); + parser.setClassLoader(GCallBack.getInstance().getApplication().getClass().getClassLoader()); + AnimationClip aniClip = (AnimationClip) parser.deserial(json, AnimationClip.class); return aniClip; } } diff --git a/src/main/java/org/mini/g3d/core/gltf2/render/RenderNode.java b/src/main/java/org/mini/g3d/core/gltf2/render/RenderNode.java index 8a55c9a..fb1832d 100644 --- a/src/main/java/org/mini/g3d/core/gltf2/render/RenderNode.java +++ b/src/main/java/org/mini/g3d/core/gltf2/render/RenderNode.java @@ -9,7 +9,8 @@ import org.mini.g3d.core.BackendSuported; import org.mini.g3d.core.gltf2.loader.data.GLTFNode; import org.mini.g3d.core.vector.*; -import org.mini.nanovg.Gutil; +import org.mini.glwrap.GLUtil; +import org.mini.gl.GLMath; import java.util.ArrayList; import java.util.List; @@ -90,8 +91,8 @@ public List getChildren() { } private void applyMatrix(Matrix4f floatMatrix) { - Gutil.mat4x4_dup(localTransform_backend.mat, floatMatrix.mat); - Gutil.mat4x4_dup(localTransform.mat, floatMatrix.mat); + GLMath.mat4x4_dup(localTransform_backend.mat, floatMatrix.mat); + GLMath.mat4x4_dup(localTransform.mat, floatMatrix.mat); localTransform.getScale(scale); //localTransform.getUnnormalizedRotation(rotation); Matrix4f.getRotation(rotation, localTransform); @@ -178,9 +179,9 @@ public void updateSkin() { @Override public void swap() { - Gutil.mat4x4_dup(worldTransform.mat, worldTransform_backend.mat); - Gutil.mat4x4_dup(inverseWorldTransform.mat, inverseWorldTransform_backend.mat); - Gutil.mat4x4_dup(localTransform.mat, localTransform_backend.mat); + GLMath.mat4x4_dup(worldTransform.mat, worldTransform_backend.mat); + GLMath.mat4x4_dup(inverseWorldTransform.mat, inverseWorldTransform_backend.mat); + GLMath.mat4x4_dup(localTransform.mat, localTransform_backend.mat); for (int i = 0, imax = children.size(); i < imax; i++) { RenderNode child = children.get(i); child.swap(); diff --git a/src/main/java/org/mini/g3d/core/gltf2/render/RenderSkin.java b/src/main/java/org/mini/g3d/core/gltf2/render/RenderSkin.java index e809bb6..d8eb4fb 100644 --- a/src/main/java/org/mini/g3d/core/gltf2/render/RenderSkin.java +++ b/src/main/java/org/mini/g3d/core/gltf2/render/RenderSkin.java @@ -11,7 +11,8 @@ import org.mini.g3d.core.gltf2.loader.data.GLTFNode; import org.mini.g3d.core.gltf2.loader.data.GLTFSkin; import org.mini.g3d.core.vector.Matrix4f; -import org.mini.nanovg.Gutil; +import org.mini.glwrap.GLUtil; +import org.mini.gl.GLMath; import java.util.ArrayList; import java.util.List; @@ -109,8 +110,8 @@ public List getJointNormalMatrices() { public void swap() { for (int i = 0, imax = getJoints().size(); i < imax; i++) { RenderNode renderNode = getJoints().get(i); - Gutil.mat4x4_dup(jointMatrices.get(i).mat, jointMatrices_backend.get(i).mat); - Gutil.mat4x4_dup(jointNormalMatrices.get(i).mat, jointNormalMatrices_backend.get(i).mat); + GLMath.mat4x4_dup(jointMatrices.get(i).mat, jointMatrices_backend.get(i).mat); + GLMath.mat4x4_dup(jointNormalMatrices.get(i).mat, jointNormalMatrices_backend.get(i).mat); } } } diff --git a/src/main/java/org/mini/g3d/core/gltf2/render/RenderTexture.java b/src/main/java/org/mini/g3d/core/gltf2/render/RenderTexture.java index 8e0f95e..cee60b6 100644 --- a/src/main/java/org/mini/g3d/core/gltf2/render/RenderTexture.java +++ b/src/main/java/org/mini/g3d/core/gltf2/render/RenderTexture.java @@ -11,7 +11,7 @@ import org.mini.g3d.core.gltf2.loader.data.GLTF; import org.mini.g3d.core.gltf2.loader.data.GLTFSampler; import org.mini.g3d.core.gltf2.loader.data.GLTFTextureInfo; -import org.mini.nanovg.Gutil; +import org.mini.glwrap.GLUtil; import java.io.IOException; import java.io.InputStream; @@ -144,7 +144,7 @@ public ByteBuffer loadData() { if (data == null) { ByteBuffer dataBuffer = getData.get(); int[] whd = new int[3]; - byte[] b = Gutil.image_parse_from_file_content(dataBuffer.array(), dataBuffer.arrayOffset(), dataBuffer.capacity(), whd); + byte[] b = GLUtil.image_parse_from_file_content(dataBuffer.array(), dataBuffer.arrayOffset(), dataBuffer.capacity(), whd); //TODO not sure how different this buffer is from dataBuffer data = ByteBuffer.wrap(b); diff --git a/src/main/java/org/mini/g3d/core/gltf2/render/Renderer.java b/src/main/java/org/mini/g3d/core/gltf2/render/Renderer.java index 2094d13..65ee501 100644 --- a/src/main/java/org/mini/g3d/core/gltf2/render/Renderer.java +++ b/src/main/java/org/mini/g3d/core/gltf2/render/Renderer.java @@ -95,7 +95,7 @@ public Renderer() { } public void draw(Camera camera, RenderNode rootNode, int targetDrawLimit) { - //Gutil.checkGlError("draw 0"); + //GLUtil.checkGlError("draw 0"); this.camera = camera; //System.out.println("================================"); @@ -103,12 +103,12 @@ public void draw(Camera camera, RenderNode rootNode, int targetDrawLimit) { List transparentNodes = new ArrayList<>(); draw(rootNode, transparentNodes); - //Gutil.checkGlError("draw 1"); + //GLUtil.checkGlError("draw 1"); //TODO sort by distance for (RenderMeshPrimitive renderMeshPrimitive : transparentNodes) { drawRenderObject(renderMeshPrimitive); } - //Gutil.checkGlError("draw 2"); + //GLUtil.checkGlError("draw 2"); } /** @@ -143,7 +143,7 @@ private void draw(RenderNode node, List transparentNodes) { private void drawInvisibleNode(RenderNode node) { AnimatedShader shader = ShaderCache.getDebugShaderProgram(); glUseProgram(shader.getProgramId()); - //Gutil.checkGlError("drawInvisibleNode 1"); + //GLUtil.checkGlError("drawInvisibleNode 1"); this.projMatrix = camera.getProjectionMatrix(); this.viewMatrix = camera.getViewMatrix(); @@ -155,7 +155,7 @@ private void drawInvisibleNode(RenderNode node) { shader.load_u_Exposure(0.1f); shader.load_u_Camera(camera.getPosition()); - //Gutil.checkGlError("drawInvisibleNode 2"); + //GLUtil.checkGlError("drawInvisibleNode 2"); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, debugEle[0]); glBindBuffer(GL_ARRAY_BUFFER, debugBuf[0]); @@ -164,16 +164,16 @@ private void drawInvisibleNode(RenderNode node) { glVertexAttribPointer(positionAttribute, 4, GL_FLOAT, GL_FALSE, 0, null, 0); glEnableVertexAttribArray(positionAttribute); - //Gutil.checkGlError("drawInvisibleNode 3"); + //GLUtil.checkGlError("drawInvisibleNode 3"); glDrawElements(GL_TRIANGLES, 32, GL_UNSIGNED_SHORT, null, 0); glDisableVertexAttribArray(positionAttribute); - //Gutil.checkGlError("drawInvisibleNode 4"); + //GLUtil.checkGlError("drawInvisibleNode 4"); } private void drawRenderObject(RenderMeshPrimitive rmp) { - //Gutil.checkGlError("drawRenderObject 0"); + //GLUtil.checkGlError("drawRenderObject 0"); if (rmp.isSkip()) { return; } @@ -206,14 +206,14 @@ private void drawRenderObject(RenderMeshPrimitive rmp) { } int vertexHash = ShaderCache.selectShader(rmp.getShaderIdentifier(), vertDefines); - //Gutil.checkGlError("drawRenderObject 0.1"); + //GLUtil.checkGlError("drawRenderObject 0.1"); int fragmentHash = ShaderCache.selectShader(material.getShaderIdentifier(), fragDefines); - //Gutil.checkGlError("drawRenderObject 0.2"); + //GLUtil.checkGlError("drawRenderObject 0.2"); shader = ShaderCache.getShaderProgram(vertexHash, fragmentHash); shader.getAllUniformLocations(rmp, visibleLights.size()); rmp.setShader(shader); - //Gutil.checkGlError("drawRenderObject 1"); + //GLUtil.checkGlError("drawRenderObject 1"); } shader.start(); @@ -221,7 +221,7 @@ private void drawRenderObject(RenderMeshPrimitive rmp) { shader.load_u_Lights(visibleLights); } - //Gutil.checkGlError("drawRenderObject 1.3"); + //GLUtil.checkGlError("drawRenderObject 1.3"); this.projMatrix = camera.getProjectionMatrix(); this.viewMatrix = camera.getViewMatrix(); @@ -237,17 +237,17 @@ private void drawRenderObject(RenderMeshPrimitive rmp) { shader.load_u_Exposure(1.0f); shader.load_u_Camera(camera.getPosition()); - //Gutil.checkGlError("drawRenderObject 1.4"); + //GLUtil.checkGlError("drawRenderObject 1.4"); boolean drawIndexed = rmp.getPrimitive().getIndicesAccessor() != null; if (drawIndexed) { GlUtil.setIndices(rmp.getPrimitive().getIndicesAccessor()); } - //Gutil.checkGlError("drawRenderObject 1.5"); + //GLUtil.checkGlError("drawRenderObject 1.5"); updateAnimationUniforms(shader, rmp.getMesh(), rmp); - //Gutil.checkGlError("drawRenderObject 2"); + //GLUtil.checkGlError("drawRenderObject 2"); if (material.getGLTFMaterial().isDoubleSided()) { glDisable(GL_CULL_FACE); @@ -262,16 +262,16 @@ private void drawRenderObject(RenderMeshPrimitive rmp) { } else { glDisable(GL_BLEND); } - //Gutil.checkGlError("drawRenderObject 3"); + //GLUtil.checkGlError("drawRenderObject 3"); int vertexCount = shader.bindAttributes(rmp.getGlAttributes()); - //Gutil.checkGlError("drawRenderObject 4"); + //GLUtil.checkGlError("drawRenderObject 4"); shader.load_materialProperties(material); shader.load_materialTextures(material); - //Gutil.checkGlError("drawRenderObject 6"); + //GLUtil.checkGlError("drawRenderObject 6"); if (drawIndexed) { GLTFAccessor indexAccessor = rmp.getPrimitive().getIndicesAccessor(); @@ -279,18 +279,18 @@ private void drawRenderObject(RenderMeshPrimitive rmp) { } else { glDrawArrays(rmp.getPrimitive().getMode(), 0, vertexCount); } - //Gutil.checkGlError("drawRenderObject 7 " + this + " " + drawIndexed); + //GLUtil.checkGlError("drawRenderObject 7 " + this + " " + drawIndexed); shader.unbindAttributes(); shader.stop(); - //Gutil.checkGlError("drawRenderObject 10"); + //GLUtil.checkGlError("drawRenderObject 10"); } private void updateAnimationUniforms(AnimatedShader shader, RenderMesh mesh, RenderMeshPrimitive renderMeshPrimitive) { - //Gutil.checkGlError("updateAnimationUniforms 1"); + //GLUtil.checkGlError("updateAnimationUniforms 1"); // Skinning if (mesh.getSkin() != null) { RenderSkin skin = mesh.getSkin(); diff --git a/src/main/java/org/mini/g3d/core/vector/Matrix4f.java b/src/main/java/org/mini/g3d/core/vector/Matrix4f.java index 8bee885..1462f56 100644 --- a/src/main/java/org/mini/g3d/core/vector/Matrix4f.java +++ b/src/main/java/org/mini/g3d/core/vector/Matrix4f.java @@ -31,7 +31,8 @@ */ package org.mini.g3d.core.vector; -import org.mini.nanovg.Gutil; +import org.mini.glwrap.GLUtil; +import org.mini.gl.GLMath; import java.io.Serializable; @@ -164,7 +165,7 @@ public Matrix identity() { * @return m */ public static Matrix4f identity(Matrix4f m) { - Gutil.mat4x4_identity(m.mat); + GLMath.mat4x4_identity(m.mat); // m.mat[M00] = 1.0f; // m.mat[M01] = 0.0f; // m.mat[M02] = 0.0f; @@ -245,7 +246,7 @@ public static Matrix4f load(Matrix4f src, Matrix4f dest) { if (dest == null) { dest = new Matrix4f(); } - Gutil.mat4x4_dup(dest.mat, src.mat); + GLMath.mat4x4_dup(dest.mat, src.mat); // dest.mat[M00] = src.mat[M00]; // dest.mat[M01] = src.mat[M01]; // dest.mat[M02] = src.mat[M02]; @@ -275,7 +276,7 @@ public static Matrix4f load(Matrix4f src, Matrix4f dest) { */ public Matrix load(float[] buf) { - Gutil.mat4x4_dup(mat, buf); + GLMath.mat4x4_dup(mat, buf); // mat[M00] = buf[0]; // mat[M01] = buf[1]; @@ -305,7 +306,7 @@ public Matrix load(float[] buf) { */ public Matrix loadTranspose(float[] buf) { - Gutil.mat4x4_transpose(mat, buf); + GLMath.mat4x4_transpose(mat, buf); // mat[M00] = buf[0]; // mat[M10] = buf[1]; @@ -333,7 +334,7 @@ public Matrix loadTranspose(float[] buf) { * @param buf The buffer to store this matrix in */ public Matrix store(float[] buf) { - Gutil.mat4x4_dup(buf, mat); + GLMath.mat4x4_dup(buf, mat); // buf[0] = (mat[M00]); // buf[1] = (mat[M01]); // buf[2] = (mat[M02]); @@ -360,7 +361,7 @@ public Matrix store(float[] buf) { * @param buf The buffer to store this matrix in */ public Matrix storeTranspose(float[] buf) { - Gutil.mat4x4_transpose(buf, mat); + GLMath.mat4x4_transpose(buf, mat); // buf[0] = (mat[M00]); // buf[1] = (mat[M10]); // buf[2] = (mat[M20]); @@ -411,7 +412,7 @@ public static Matrix4f add(Matrix4f left, Matrix4f right, Matrix4f dest) { if (dest == null) { dest = new Matrix4f(); } - Gutil.mat4x4_add(dest.mat, left.mat, right.mat); + GLMath.mat4x4_add(dest.mat, left.mat, right.mat); // dest.mat[M00] = left.mat[M00] + right.mat[M00]; // dest.mat[M01] = left.mat[M01] + right.mat[M01]; @@ -445,7 +446,7 @@ public static Matrix4f sub(Matrix4f left, Matrix4f right, Matrix4f dest) { if (dest == null) { dest = new Matrix4f(); } - Gutil.mat4x4_sub(dest.mat, left.mat, right.mat); + GLMath.mat4x4_sub(dest.mat, left.mat, right.mat); // dest.mat[M00] = left.mat[M00] - right.mat[M00]; // dest.mat[M01] = left.mat[M01] - right.mat[M01]; @@ -479,7 +480,7 @@ public static Matrix4f mul(Matrix4f left, Matrix4f right, Matrix4f dest) { if (dest == null) { dest = new Matrix4f(); } - Gutil.mat4x4_mul(dest.mat, left.mat, right.mat); + GLMath.mat4x4_mul(dest.mat, left.mat, right.mat); // dest.mat[M00] = left.mat[M00] * right.mat[M00] + left.mat[M10] * right.mat[M01] + left.mat[M20] * right.mat[M02] + left.mat[M30] * right.mat[M03]; // dest.mat[M01] = left.mat[M01] * right.mat[M00] + left.mat[M11] * right.mat[M01] + left.mat[M21] * right.mat[M02] + left.mat[M31] * right.mat[M03]; @@ -570,7 +571,7 @@ public static Vector4f transform(Matrix4f left, Vector4f right, Vector4f dest) { f4[2] = right.z; f4[3] = right.w; float[] r = arr_f16B.get(); - Gutil.mat4x4_mul_vec4(r, left.mat, f4); + GLMath.mat4x4_mul_vec4(r, left.mat, f4); dest.x = r[0]; dest.y = r[1]; dest.z = r[2]; @@ -635,7 +636,7 @@ public static Matrix4f scale(float sx, float sy, float sz, Matrix4f src, Matrix4 if (dest == null) { dest = new Matrix4f(); } - Gutil.mat4x4_scale_aniso(dest.mat, src.mat, sx, sy, sz); + GLMath.mat4x4_scale_aniso(dest.mat, src.mat, sx, sy, sz); // dest.mat[M00] = src.mat[M00] * vec.left; // dest.mat[M01] = src.mat[M01] * vec.left; // dest.mat[M02] = src.mat[M02] * vec.left; @@ -699,10 +700,10 @@ public static Matrix4f rotate(float angle, float ax, float ay, float az, Matrix4 } if (src == dest) { float[] tmp = arr_f16A.get(); - Gutil.mat4x4_rotate(tmp, src.mat, ax, ay, az, angle); - Gutil.mat4x4_dup(dest.mat, tmp); + GLMath.mat4x4_rotate(tmp, src.mat, ax, ay, az, angle); + GLMath.mat4x4_dup(dest.mat, tmp); } else { - Gutil.mat4x4_rotate(dest.mat, src.mat, ax, ay, az, angle); + GLMath.mat4x4_rotate(dest.mat, src.mat, ax, ay, az, angle); } // float c = (float) Math.cos(angle); // float s = (float) Math.sin(angle); @@ -775,8 +776,8 @@ public static Matrix4f translate(Vector3f vec, Matrix4f src, Matrix4f dest) { if (dest == null) { dest = new Matrix4f(); } - Gutil.mat4x4_dup(dest.mat, src.mat); - Gutil.mat4x4_translate_in_place(dest.mat, vec.x, vec.y, vec.z); + GLMath.mat4x4_dup(dest.mat, src.mat); + GLMath.mat4x4_translate_in_place(dest.mat, vec.x, vec.y, vec.z); // dest.mat[M30] += src.mat[M00] * vec.left + src.mat[M10] * vec.top + src.mat[M20] * vec.z; // dest.mat[M31] += src.mat[M01] * vec.left + src.mat[M11] * vec.top + src.mat[M21] * vec.z; // dest.mat[M32] += src.mat[M02] * vec.left + src.mat[M12] * vec.top + src.mat[M22] * vec.z; @@ -811,8 +812,8 @@ public static Matrix4f translate(Vector2f vec, Matrix4f src, Matrix4f dest) { if (dest == null) { dest = new Matrix4f(); } - Gutil.mat4x4_dup(dest.mat, src.mat); - Gutil.mat4x4_translate_in_place(dest.mat, vec.x, vec.y, 0.f); + GLMath.mat4x4_dup(dest.mat, src.mat); + GLMath.mat4x4_translate_in_place(dest.mat, vec.x, vec.y, 0.f); // dest.mat[M30] += src.mat[M00] * vec.left + src.mat[M10] * vec.top; // dest.mat[M31] += src.mat[M01] * vec.left + src.mat[M11] * vec.top; @@ -846,11 +847,11 @@ public static Matrix4f transpose(Matrix4f src, Matrix4f dest) { dest = new Matrix4f(); } if (dest != src) { - Gutil.mat4x4_transpose(dest.mat, src.mat); + GLMath.mat4x4_transpose(dest.mat, src.mat); } else { float[] tmp = arr_f16A.get(); - Gutil.mat4x4_transpose(tmp, src.mat); - Gutil.mat4x4_dup(dest.mat, tmp); + GLMath.mat4x4_transpose(tmp, src.mat); + GLMath.mat4x4_dup(dest.mat, tmp); } // dest.mat[M00] = src.mat[M00]; @@ -945,10 +946,10 @@ public static Matrix4f invert(Matrix4f src, Matrix4f dest) { } if (src == dest) { float[] tmp = arr_f16A.get(); - Gutil.mat4x4_invert(tmp, src.mat); - Gutil.mat4x4_dup(dest.mat, tmp); + GLMath.mat4x4_invert(tmp, src.mat); + GLMath.mat4x4_dup(dest.mat, tmp); } else { - Gutil.mat4x4_invert(dest.mat, src.mat); + GLMath.mat4x4_invert(dest.mat, src.mat); } // float determinant_inv = 1f / determinant; @@ -1073,7 +1074,7 @@ public static Matrix4f negate(Matrix4f src, Matrix4f dest) { * @see #perspective(float, float, float, float) */ public Matrix4f perspective(float fovy, float aspect, float zNear, float zFar) { - Gutil.mat4x4_perspective(this.mat, fovy, aspect, zNear, zFar); + GLMath.mat4x4_perspective(this.mat, fovy, aspect, zNear, zFar); return this; } @@ -1105,7 +1106,7 @@ public Matrix4f perspective(float fovy, float aspect, float zNear, float zFar) { public Matrix4f lookAt(float eyeX, float eyeY, float eyeZ, float centerX, float centerY, float centerZ, float upX, float upY, float upZ) { - Gutil.mat4x4_look_at( + GLMath.mat4x4_look_at( mat , new float[]{eyeX, eyeY, eyeZ} , new float[]{centerX, centerY, centerZ} @@ -1116,7 +1117,7 @@ public Matrix4f lookAt(float eyeX, float eyeY, float eyeZ, public Matrix4f lookAt(Vector3f eye, Vector3f center, Vector3f up) { - Gutil.mat4x4_look_at( + GLMath.mat4x4_look_at( mat , new float[]{eye.x, eye.y, eye.z} , new float[]{center.x, center.y, center.z} @@ -1169,7 +1170,7 @@ public static Matrix4f translationRotateScale(Vector3f t, float[] c = arr_f16C.get(); s.store(c); - Gutil.mat4x4_trans_rotate_scale(dest.mat, a, b, c); + GLMath.mat4x4_trans_rotate_scale(dest.mat, a, b, c); // float dqx = q.x + q.x; // float dqy = q.y + q.y; @@ -1205,7 +1206,7 @@ public static Matrix4f translationRotateScale(Vector3f t, public static Quaternionf getRotation(Quaternionf q, Matrix4f mat) { float[] a = arr_f16A.get(); - Gutil.vec4_from_mat4x4(a, mat.mat); + GLMath.vec4_from_mat4x4(a, mat.mat); q.load(a); return q; } diff --git a/src/main/java/org/mini/g3d/core/vector/Quaternionf.java b/src/main/java/org/mini/g3d/core/vector/Quaternionf.java index 380ca4f..e8abc0c 100644 --- a/src/main/java/org/mini/g3d/core/vector/Quaternionf.java +++ b/src/main/java/org/mini/g3d/core/vector/Quaternionf.java @@ -31,7 +31,8 @@ */ package org.mini.g3d.core.vector; -import org.mini.nanovg.Gutil; +import org.mini.glwrap.GLUtil; +import org.mini.gl.GLMath; import java.io.Serializable; @@ -196,7 +197,7 @@ public static Quaternionf normalise(Quaternionf src, Quaternionf dest) { float[] a = arr_f4B.get(); float[] b = arr_f4C.get(); src.store(a); - Gutil.vec_normal(b, a); + GLMath.vec_normal(b, a); dest.load(b); return dest; } @@ -692,7 +693,7 @@ public Quaternionf slerp(Quaternionf target, float alpha, Quaternionf dest) { float[] b = arr_f4C.get(); store(a); target.store(b); - Gutil.vec4_slerp(r, a, b, alpha); + GLMath.vec4_slerp(r, a, b, alpha); dest.load(r); // float cosom = x * target.x + y * target.y + z * target.z + w * target.w; diff --git a/src/main/java/org/mini/g3d/shadowmap/ShadowMappingPass.java b/src/main/java/org/mini/g3d/shadowmap/ShadowMappingPass.java index c0883d3..4fb3e98 100644 --- a/src/main/java/org/mini/g3d/shadowmap/ShadowMappingPass.java +++ b/src/main/java/org/mini/g3d/shadowmap/ShadowMappingPass.java @@ -1,9 +1,9 @@ package org.mini.g3d.shadowmap; import org.mini.gl.GL; -import org.mini.gl.warp.GLShadowMapping; +import org.mini.glwrap.GLShadowMapping; import org.mini.gui.GImage; -import org.mini.nanovg.Gutil; +import org.mini.glwrap.GLUtil; import static org.mini.gl.GL.*; @@ -32,7 +32,7 @@ public void gl_init() { // rgb[i * 3 + 1] = b; // rgb[i * 3 + 2] = b; // } -// int texid = Gutil.genTexture2D(rgb, getTexWidth(), getTexHeight(), GL_RGB, GL_RGB); +// int texid = GLUtil.genTexture2D(rgb, getTexWidth(), getTexHeight(), GL_RGB, GL_RGB); // GImage shadowMapImg = GImage.createImage(texid, getTexWidth(), getTexHeight()); // return shadowMapImg; // } diff --git a/src/main/java/org/mini/g3d/shadowmap/ShadowMappingRenderer.java b/src/main/java/org/mini/g3d/shadowmap/ShadowMappingRenderer.java index 6b29ba2..416847a 100644 --- a/src/main/java/org/mini/g3d/shadowmap/ShadowMappingRenderer.java +++ b/src/main/java/org/mini/g3d/shadowmap/ShadowMappingRenderer.java @@ -10,7 +10,8 @@ import org.mini.g3d.core.vector.Vector3f; import org.mini.g3d.entity.Entity; import org.mini.g3d.core.textures.ModelTexture; -import org.mini.nanovg.Gutil; +import org.mini.glwrap.GLUtil; +import org.mini.gl.GLMath; import java.util.List; import java.util.Map; @@ -50,13 +51,13 @@ void updateDepthMVP(Light light) { Vector3f pos = light.getPosition(); if (pos.x != eye[0] || pos.y != eye[1] || pos.z != eye[2]) { // MVP from light poisition - Gutil.mat4x4_ortho(depthProjection.mat, -20.0f, 1080.0f, -20.0f, 1080.0f, 400f, 1000.0f); + GLMath.mat4x4_ortho(depthProjection.mat, -20.0f, 1080.0f, -20.0f, 1080.0f, 400f, 1000.0f); light.getPosition().store(eye); - Gutil.mat4x4_look_at(depthView.mat, eye, center, up); - Gutil.mat4x4_identity(depthModel.mat); - Gutil.mat4x4_mul(depthPV.mat, depthProjection.mat, depthView.mat); - Gutil.mat4x4_mul(depthMVP.mat, depthPV.mat, depthModel.mat); - Gutil.mat4x4_mul(depthBiasMVP.mat, biasMatrix, depthMVP.mat); + GLMath.mat4x4_look_at(depthView.mat, eye, center, up); + GLMath.mat4x4_identity(depthModel.mat); + GLMath.mat4x4_mul(depthPV.mat, depthProjection.mat, depthView.mat); + GLMath.mat4x4_mul(depthMVP.mat, depthPV.mat, depthModel.mat); + GLMath.mat4x4_mul(depthBiasMVP.mat, biasMatrix, depthMVP.mat); } } @@ -76,7 +77,7 @@ public void render(Light light) { // glEnableVertexAttribArray(2); // // Matrix4f transformationMatrix = G3dMath.createTransformationMatrix(new Vector3f(t.getX(), 0, t.getZ()), 0, 0, 0, 1); -// Gutil.mat4x4_mul(transformationMatrix.mat, depthPV.mat, transformationMatrix.mat); +// GLMath.mat4x4_mul(transformationMatrix.mat, depthPV.mat, transformationMatrix.mat); // shadowMappingShader.loadDepthMVP(transformationMatrix); // glDrawElements(GL_TRIANGLES, t.getModel().getVertexCount(), GL_UNSIGNED_INT, null, 0);//gust // triangles += t.getModel().getVertexCount(); @@ -107,7 +108,7 @@ public void render(Light light) { Entity entity = batch.get(i); G3dMath.createTransformationMatrix(entity.getPosition(), entity.getRotX(), entity.getRotY(), entity.getRotZ(), entity.getScale(), transformationMatrix); - Gutil.mat4x4_mul(transformationMatrix.mat, depthPV.mat, transformationMatrix.mat); + GLMath.mat4x4_mul(transformationMatrix.mat, depthPV.mat, transformationMatrix.mat); shadowMappingShader.loadDepthMVP(transformationMatrix); glDrawElements(GL_TRIANGLES, rawModel.getVertexCount(), GL_UNSIGNED_INT, null, 0); triangles += rawModel.getVertexCount(); diff --git a/src/main/java/org/mini/g3d/terrain/Terrain.java b/src/main/java/org/mini/g3d/terrain/Terrain.java index 35b1766..9e4d8ad 100644 --- a/src/main/java/org/mini/g3d/terrain/Terrain.java +++ b/src/main/java/org/mini/g3d/terrain/Terrain.java @@ -10,7 +10,7 @@ import org.mini.g3d.core.vector.Vector2f; import org.mini.g3d.core.vector.Vector3f; import org.mini.g3d.core.textures.TextureData; -import org.mini.nanovg.Gutil; +import org.mini.glwrap.GLUtil; public class Terrain { @@ -78,7 +78,7 @@ private RawModel generateTerrain(Loader loader, String heightMap) { int[] w_h_d = {0, 0, 0}; byte[] filecont = EngineManager.loadFileFromJar(EngineManager.RES_LOC + heightMap + ".png"); - byte[] b = Gutil.image_parse_from_file_content(filecont, w_h_d); + byte[] b = GLUtil.image_parse_from_file_content(filecont, w_h_d); int VERTEX_COUNT = w_h_d[1]; mapSize = w_h_d[1] * 2; diff --git a/src/main/resource/config.txt b/src/main/resource/config.txt index ae684be..47c35f9 100644 --- a/src/main/resource/config.txt +++ b/src/main/resource/config.txt @@ -1,6 +1,6 @@ -name=G3D +name=G3D-Game app=g3dtest.G3d icon=/res/logo.png -desc= G3d test.\n you can upgrade it. +desc=This is a Game\n It can be run in web, mobile, or desktop using miniJVM.\n Just for fun; version=1.0.0 -upgradeurl=http://192.168.0.10/g3d.jar \ No newline at end of file +upgradeurl=http://192.168.0.10/g3d.jar