Android Open Source - jmini3d Gl Surface View3d






From Project

Back to project page jmini3d.

License

The source code is released under:

Copyright 2012 Mobialia http://www.mobialia.com/ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to ...

If you think the Android project jmini3d listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package jmini3d.android;
/*from   w  ww .j  a  v  a 2 s  .c om*/
import android.content.Context;
import android.graphics.PixelFormat;
import android.opengl.GLSurfaceView;
import android.os.Build;

import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;

import jmini3d.Scene;
import jmini3d.SceneController;
import jmini3d.android.compat.CompatibilityWrapper5;

public class GlSurfaceView3d extends GLSurfaceView implements GLSurfaceView.Renderer {
  public static final String TAG = "GlSurfaceView3d";

  int width, height;

  Renderer3d renderer3d;
  SceneController sceneController;
  int forceRedraw = 0;

  GL10 gl;

  public GlSurfaceView3d(Context ctx, boolean traslucent) {
    super(ctx);

    setEGLContextClientVersion(2);
    if (traslucent) {
      if (Build.VERSION.SDK_INT >= 5) {
        CompatibilityWrapper5.setZOrderOnTop(this);
      }
      setEGLConfigChooser(8, 8, 8, 8, 16, 0);
      getHolder().setFormat(PixelFormat.TRANSLUCENT);
    } else {
      setEGLConfigChooser(8, 8, 8, 8, 16, 0);
      getHolder().setFormat(PixelFormat.RGBA_8888);
    }

    renderer3d = new Renderer3d(new ResourceLoader(ctx));

    setRenderer(this);
    setRenderMode(RENDERMODE_CONTINUOUSLY);
  }

  @Override
  public void onSurfaceCreated(GL10 gl, EGLConfig eglConfig) {
    this.gl = gl;
  }

  @Override
  public void onSurfaceChanged(GL10 unused, int w, int h) {
    width = w;
    height = h;
    renderer3d.reset();
  }

  @Override
  public void onDrawFrame(GL10 unused) {
    if (sceneController != null) {
      if (sceneController.updateScene(width, height)) {
        // due to buffer swapping we need to redraw three frames
        forceRedraw = 3;
      }

      if (forceRedraw > 0) {
        Scene scene = sceneController.getScene();
        if (scene != null) {
          forceRedraw--;
          renderer3d.render(scene);
        }
      }
    }
  }

  public void requestRender() {
    forceRedraw = 3;
  }

  public void setSceneController(SceneController sceneController) {
    this.sceneController = sceneController;
  }

  public Renderer3d getRenderer3d() {
    return renderer3d;
  }

  public GL10 getGl() {
    return gl;
  }
}




Java Source Code List

cocoonjs.CocoonJsLinker.java
jmini3d.Blending.java
jmini3d.Camera.java
jmini3d.Color4.java
jmini3d.CubeMapTexture.java
jmini3d.Font.java
jmini3d.GpuObjectStatus.java
jmini3d.MatrixUtils.java
jmini3d.Object3d.java
jmini3d.Rect.java
jmini3d.SceneController.java
jmini3d.Scene.java
jmini3d.Texture.java
jmini3d.Utils.java
jmini3d.Vector3.java
jmini3d.android.Activity3d.java
jmini3d.android.GeometryBuffers.java
jmini3d.android.GlSurfaceView3d.java
jmini3d.android.GpuUploader.java
jmini3d.android.Program.java
jmini3d.android.Renderer3d.java
jmini3d.android.ResourceLoader.java
jmini3d.android.compat.CompatibilityWrapper5.java
jmini3d.android.demo.DemoActivity.java
jmini3d.android.input.InputController.java
jmini3d.demo.ArialFont.java
jmini3d.demo.CubeScene.java
jmini3d.demo.CubesScene.java
jmini3d.demo.DemoSceneController.java
jmini3d.demo.EnvMapCubeScene.java
jmini3d.demo.NormalMapScene.java
jmini3d.demo.ParentScene.java
jmini3d.demo.TeapotGeometry.java
jmini3d.demo.TeapotScene.java
jmini3d.geometry.BoxGeometry.java
jmini3d.geometry.Geometry.java
jmini3d.geometry.PlaneGeometry.java
jmini3d.geometry.SkyboxGeometry.java
jmini3d.geometry.SpriteGeometry.java
jmini3d.geometry.VariableGeometry.java
jmini3d.gwt.Canvas3d.java
jmini3d.gwt.EngineResources.java
jmini3d.gwt.EntryPoint3d.java
jmini3d.gwt.GeometryBuffers.java
jmini3d.gwt.GpuUploader.java
jmini3d.gwt.MyInt16Array.java
jmini3d.gwt.Program.java
jmini3d.gwt.Renderer3d.java
jmini3d.gwt.ResourceLoader.java
jmini3d.gwt.TextureLoadedListener.java
jmini3d.gwt.demo.DemoEntryPoint.java
jmini3d.gwt.input.InputController.java
jmini3d.input.KeyListener.java
jmini3d.input.TouchListener.java
jmini3d.input.TouchPointer.java
jmini3d.light.AmbientLight.java
jmini3d.light.DirectionalLight.java
jmini3d.light.Light.java
jmini3d.light.PointLight.java
jmini3d.material.Material.java
jmini3d.material.PhongMaterial.java
jmini3d.material.SpriteMaterial.java
jmini3d.utils.Fnt2Class.java
jmini3d.utils.Obj2Class.java