Esempio n. 1
0
  // synchronized
  public static void changeVideo(int newWidth, int newHeight) {
    // Log.d("Thread Video", "changeVideo");
    synchronized (lock1) {
      for (int i = 0; i < 4; i++) Emulator.setPadData(i, 0);

      // if(emu_width!=newWidth || emu_height!=newHeight)
      // {
      emu_width = newWidth;
      emu_height = newHeight;

      emuBitmap = Bitmap.createBitmap(newWidth, newHeight, Bitmap.Config.RGB_565);
      mtx.setScale(
          (float) (window_width / (float) emu_width), (float) (window_height / (float) emu_height));

      if (videoRenderMode == PrefsHelper.PREF_RENDER_GL) {
        GLRenderer r = (GLRenderer) ((EmulatorViewGL) mm.getEmuView()).getRender();
        if (r != null) r.changedEmulatedSize();
      }

      mm.runOnUiThread(
          new Runnable() {
            public void run() {
              mm.getMainHelper().updateMAME4all();
            }
          });
      // }
    }
  }
Esempio n. 2
0
  @Override
  public void onResume() {
    super.onResume();

    if (hasRenderer) {
      mRenderer.onResume();
    }
  }
Esempio n. 3
0
  @Override
  public void onPause() {
    super.onPause();

    if (hasRenderer) {
      mRenderer.onPause();
    }
  }
Esempio n. 4
0
  private void init() {
    renderer = new GLRenderer(this);
    renderer.setFpsCount(true);

    this.setRenderer(renderer);

    TextureFactory.getInstance().setContext(this.getContext());
  }
Esempio n. 5
0
  public void setValue(int switchCode, float value) {

    switch (switchCode) {
      case Z_DIST:
        renderer.zDistance += value;
        break;
      case X_ANGLE:
        renderer.xAngle += value;
        break;
      case Y_ANGLE:
        renderer.yAngle += value;
        break;
      case Z_ANGLE:
        renderer.zAngle += value;
        break;
      case X_EYE:
        renderer.eyeX += value;
        break;
      case Y_EYE:
        renderer.eyeY += value;
        break;
      case Z_EYE:
        renderer.eyeZ += value;
        break;
    }
  }
  /**
   * Binds the BufferedImage byte-stream into video memory. BufferedImage must be in 4BYTE_ABGR.
   * 4BYTE_ABGR removes endinese problems.
   */
  public Texture bind(final BufferedImage _image, final InternalFormat _format) {
    final GL3 gl = GLRenderer.getCanvas().getContext().getCurrentGL().getGL3();
    if (gl == null) {
      System.out.println("GL context doesn't exist");
      return null;
    }

    gl.glEnable(GL.GL_TEXTURE_2D);

    final int textureID = glGenTextures(gl);
    gl.glBindTexture(GL3.GL_TEXTURE_2D, textureID);

    gl.glTexParameteri(GL3.GL_TEXTURE_2D, GL3.GL_TEXTURE_WRAP_S, GL3.GL_REPEAT);
    gl.glTexParameteri(GL3.GL_TEXTURE_2D, GL3.GL_TEXTURE_WRAP_T, GL3.GL_REPEAT);
    gl.glTexParameteri(GL3.GL_TEXTURE_2D, GL3.GL_TEXTURE_MAG_FILTER, GL3.GL_LINEAR);
    gl.glTexParameteri(GL3.GL_TEXTURE_2D, GL3.GL_TEXTURE_MIN_FILTER, GL3.GL_LINEAR_MIPMAP_LINEAR);

    final int width = _image.getWidth();
    final int height = _image.getHeight();
    final int channels = _image.getSampleModel().getNumBands();
    int internalFormat = GL3.GL_RGB;

    if (gl.isExtensionAvailable("GL_EXT_abgr") == true) {
      switch (channels) {
        case 4:
          imageFormat = GL2.GL_ABGR_EXT;
          break;
        case 3:
          imageFormat = GL3.GL_BGR;
          break;
        case 1:
          imageFormat = GL3.GL_RED;
          break;
      }
    } else {
      switch (channels) {
        case 4:
          imageFormat = GL3.GL_RGBA;
          break;
        case 3:
          imageFormat = GL3.GL_RGB;
          break;
        case 1:
          imageFormat = GL3.GL_RED;
          break;
      }
    }

    gl.glPixelStorei(GL3.GL_UNPACK_ALIGNMENT, 1);
    gl.glTexImage2D(
        GL3.GL_TEXTURE_2D,
        0,
        getGLInternalFormat(channels, _format),
        width,
        height,
        0,
        imageFormat,
        GL3.GL_UNSIGNED_BYTE,
        getByteBuffer(_image));

    gl.glGenerateMipmap(GL3.GL_TEXTURE_2D);
    gl.glBindTexture(GL.GL_TEXTURE_2D, 0); // Reset to default texture

    return new Texture(new GLImage(textureID, width, height));
  }
Esempio n. 7
0
 public int getFps() {
   if (renderer != null) return renderer.getFPS();
   else return -1;
 }
Esempio n. 8
0
 public void setFps(int fps) {
   if (renderer != null) renderer.setFPS(fps);
 }
Esempio n. 9
0
 @Override
 public void onResume() {
   // TODO Auto-generated method stub
   super.onResume();
   mRenderer.onResume();
 }