mirror of
https://github.com/curioustorvald/tsvm.git
synced 2026-03-07 19:51:51 +09:00
app screen zoom
This commit is contained in:
@@ -16,6 +16,7 @@ public class AppLoader {
|
||||
|
||||
public static int WIDTH = 640;
|
||||
public static int HEIGHT = 480;
|
||||
public static float MAGN = 2f;
|
||||
|
||||
public static void main(String[] args) {
|
||||
ShaderProgram.pedantic = false;
|
||||
@@ -28,7 +29,7 @@ public class AppLoader {
|
||||
appConfig.setResizable(false);
|
||||
appConfig.setTitle(appTitle);
|
||||
|
||||
appConfig.setWindowedMode(WIDTH, HEIGHT);
|
||||
appConfig.setWindowedMode(((int) (WIDTH * MAGN)), ((int) (HEIGHT * MAGN)));
|
||||
|
||||
HashMap<String, VMWatchdog> watchdogs = new HashMap<>();
|
||||
watchdogs.put("TEVD_COMMIT", TevdPartialDomCommitWatchdog.INSTANCE);
|
||||
|
||||
@@ -53,6 +53,7 @@ class VMGUI(val loaderInfo: EmulInstance, val viewportWidth: Int, val viewportHe
|
||||
lateinit var memvwr: Memvwr
|
||||
lateinit var fullscreenQuad: Mesh
|
||||
lateinit var gpuFBO: FrameBuffer
|
||||
lateinit var winFBO: FrameBuffer
|
||||
|
||||
val usememvwr = false
|
||||
|
||||
@@ -102,6 +103,7 @@ class VMGUI(val loaderInfo: EmulInstance, val viewportWidth: Int, val viewportHe
|
||||
crtShader = loadShaderInline(CRT_POST_SHADER)
|
||||
|
||||
gpuFBO = FrameBuffer(Pixmap.Format.RGBA8888, viewportWidth, viewportHeight, false)
|
||||
winFBO = FrameBuffer(Pixmap.Format.RGBA8888, viewportWidth, viewportHeight, false)
|
||||
|
||||
init()
|
||||
}
|
||||
@@ -247,6 +249,8 @@ class VMGUI(val loaderInfo: EmulInstance, val viewportWidth: Int, val viewportHe
|
||||
private val defaultGuiBackgroundColour = Color(0x444444ff)
|
||||
|
||||
private fun renderGame(delta: Float) {
|
||||
camera.setToOrtho(false, viewportWidth.toFloat(), viewportHeight.toFloat())
|
||||
batch.projectionMatrix = camera.combined
|
||||
gpuFBO.begin()
|
||||
val clearCol = gpu?.getBackgroundColour() ?: defaultGuiBackgroundColour
|
||||
Gdx.gl.glClearColor(clearCol.r, clearCol.g, clearCol.b, clearCol.a)
|
||||
@@ -262,6 +266,9 @@ class VMGUI(val loaderInfo: EmulInstance, val viewportWidth: Int, val viewportHe
|
||||
gpuFBO.end()
|
||||
|
||||
|
||||
camera.setToOrtho(false, viewportWidth.toFloat(), viewportHeight.toFloat())
|
||||
batch.projectionMatrix = camera.combined
|
||||
winFBO.begin()
|
||||
Gdx.gl.glClearColor(0f, 0f, 0f, 0f)
|
||||
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT)
|
||||
|
||||
@@ -286,6 +293,19 @@ class VMGUI(val loaderInfo: EmulInstance, val viewportWidth: Int, val viewportHe
|
||||
(viewportWidth - loaderInfo.drawWidth).div(2).toFloat() + (gpu?.config?.width ?: 0),
|
||||
(viewportHeight - loaderInfo.drawHeight).div(2).toFloat())
|
||||
}
|
||||
winFBO.end()
|
||||
|
||||
|
||||
camera.setToOrtho(true, viewportWidth * AppLoader.MAGN, viewportHeight * AppLoader.MAGN)
|
||||
batch.projectionMatrix = camera.combined
|
||||
|
||||
Gdx.gl.glClearColor(0f, 0f, 0f, 0f)
|
||||
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT)
|
||||
batch.inUse {
|
||||
batch.shader = null
|
||||
batch.color = Color.WHITE
|
||||
batch.draw(winFBO.colorBufferTexture, 0f, 0f, viewportWidth * AppLoader.MAGN, viewportHeight * AppLoader.MAGN)
|
||||
}
|
||||
}
|
||||
|
||||
private fun setCameraPosition(newX: Float, newY: Float) {
|
||||
@@ -320,12 +340,14 @@ class VMGUI(val loaderInfo: EmulInstance, val viewportWidth: Int, val viewportHe
|
||||
crtGradTex.texture.dispose()
|
||||
crtShader.dispose()
|
||||
gpuFBO.dispose()
|
||||
winFBO.dispose()
|
||||
vm.dispose()
|
||||
|
||||
System.err.println("VM disposed: ${vm.id}")
|
||||
exitProcess(0)
|
||||
}
|
||||
|
||||
|
||||
companion object {
|
||||
val cp437toUni = hashMapOf<Int, Char>(
|
||||
0 to 32.toChar(),
|
||||
|
||||
Reference in New Issue
Block a user