Adjust graphics from j3270 changes
Build and Test a3270 / Build Android APK (push) Successful in 6m18s

This commit is contained in:
2026-09-07 20:17:11 -04:00
parent 0eaab32e2f
commit f389e626ea
3 changed files with 51 additions and 1 deletions
+1
View File
@@ -9,3 +9,4 @@ captures/
.cxx
*.jar
!gradle/wrapper/gradle-wrapper.jar
*.txt
+1 -1
View File
@@ -46,7 +46,7 @@ if [ ! -d "$J3270_PATH/lib3270j" ]; then
fi
echo "Building debug APK..."
./gradlew assembleDebug
./gradlew assembleDebug --no-daemon
APK_PATH="$SCRIPT_DIR/build/outputs/apk/debug/a3270-debug.apk"
if [ -f "$APK_PATH" ]; then
@@ -0,0 +1,49 @@
package haus.nightmare.a3270.graphics
import android.graphics.Bitmap
import android.graphics.Canvas
import android.graphics.Paint
import android.graphics.RectF
import haus.nightmare.lib3270j.graphics.PixelBuffer
/**
* Android bridge for translating lib3270j PixelBuffer into Android Bitmaps and rendering onto Canvas.
*/
object AndroidCanvasRenderer {
/**
* Converts a PixelBuffer into an Android Bitmap using ARGB_8888 configuration.
*/
fun toBitmap(buffer: PixelBuffer?): Bitmap? {
if (buffer == null) return null
val w = buffer.width
val h = buffer.height
if (w <= 0 || h <= 0) return null
val pixels = buffer.pixels ?: return null
return Bitmap.createBitmap(pixels, w, h, Bitmap.Config.ARGB_8888)
}
/**
* Draws the given PixelBuffer onto an Android Canvas scaled to the destination rectangle.
*/
fun drawPixelBuffer(
canvas: Canvas,
buffer: PixelBuffer?,
dstRect: RectF,
paint: Paint? = null
) {
val bmp = toBitmap(buffer) ?: return
canvas.drawBitmap(bmp, null, dstRect, paint)
}
/**
* Copies the PixelBuffer contents into an existing mutable Bitmap.
*/
fun copyIntoBitmap(buffer: PixelBuffer, target: Bitmap) {
val pixels = buffer.pixels ?: return
val w = minOf(buffer.width, target.width)
val h = minOf(buffer.height, target.height)
if (w <= 0 || h <= 0) return
target.setPixels(pixels, 0, buffer.width, 0, 0, w, h)
}
}