This commit is contained in:
Ishan09811 2024-01-25 21:55:17 +05:30 committed by GitHub
parent 61935cdd6e
commit 113e825898
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -3,6 +3,7 @@ package com.panda3ds.pandroid.view;
import android.content.Context;
import android.opengl.GLSurfaceView;
import android.os.Debug;
import android.view.SurfaceHolder;
import androidx.annotation.NonNull;
import com.panda3ds.pandroid.math.Vector2;
@ -11,49 +12,51 @@ import com.panda3ds.pandroid.view.controller.nodes.TouchScreenNodeImpl;
import com.panda3ds.pandroid.view.renderer.ConsoleRenderer;
public class PandaGlSurfaceView extends GLSurfaceView implements TouchScreenNodeImpl {
final PandaGlRenderer renderer;
private int width;
private int height;
final PandaGlRenderer renderer;
private int width;
private int height;
public PandaGlSurfaceView(Context context, String romPath) {
super(context);
setEGLContextClientVersion(3);
if (Debug.isDebuggerConnected()) {
setDebugFlags(DEBUG_LOG_GL_CALLS);
}
renderer = new PandaGlRenderer(romPath, context.getResources()); // pass resources if needed
setRenderer(renderer);
}
public PandaGlSurfaceView(Context context, String romPath) {
super(context);
setEGLContextClientVersion(3);
if (Debug.isDebuggerConnected()) {
setDebugFlags(DEBUG_LOG_GL_CALLS);
}
renderer = new PandaGlRenderer(romPath, context.getResources()); // pass resources if needed
setRenderer(renderer);
}
public ConsoleRenderer getRenderer() { return renderer; }
public ConsoleRenderer getRenderer() {
return renderer;
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
width = getMeasuredWidth();
height = getMeasuredHeight();
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
width = getMeasuredWidth();
height = getMeasuredHeight();
}
@NonNull
@Override
public Vector2 getSize() {
return new Vector2(width, height);
}
@NonNull
@Override
public Vector2 getSize() {
return new Vector2(width, height);
}
@Override
public void onTouch(TouchEvent event) {
onTouchScreenPress(renderer, event);
}
@Override
public void onTouch(TouchEvent event) {
onTouchScreenPress(renderer, event);
}
@Override
public void onSurfaceChanged(SurfaceHolder holder, int format, int width, int height) {
@Override
public void onSurfaceChanged(SurfaceHolder holder, int format, int width, int height) {
super.onSurfaceChanged(holder, format, width, height);
// Update the dimensions in the renderer when the surface changes
renderer.onSurfaceChanged(newWidth, newHeight);
}
renderer.onSurfaceChanged(width, height);
}
@Override
public void onSurfaceDestroyed(SurfaceHolder holder) {
@Override
public void onSurfaceDestroyed(SurfaceHolder holder) {
super.onSurfaceDestroyed(holder);
// Release resources from the renderer when the surface is destroyed
renderer.releaseResources();