commit a091b98d495edc75aea7a38002c0441f80f08056
Author: leszek <leszek@koltunski.pl>
Date:   Mon Dec 1 15:44:19 2025 +0100

    java.io.InputStream -> Kotlin's ByteArray

diff --git a/src/main/java/org/distorted/library/effectqueue/EffectQueuePostprocess.kt b/src/main/java/org/distorted/library/effectqueue/EffectQueuePostprocess.kt
index fa0a6cb..f95a2d9 100644
--- a/src/main/java/org/distorted/library/effectqueue/EffectQueuePostprocess.kt
+++ b/src/main/java/org/distorted/library/effectqueue/EffectQueuePostprocess.kt
@@ -32,7 +32,6 @@ import org.distorted.library.main.InternalRenderState
 import org.distorted.library.mesh.MeshBase
 import org.distorted.library.message.EffectMessageSender
 import org.distorted.library.program.DistortedProgram
-import java.io.InputStream
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 /** Not part of public API, do not document
@@ -68,7 +67,7 @@ class EffectQueuePostprocess : EffectQueue
 
         ///////////////////////////////////////////////////////////////////////////////////////////
         
-        fun createPrograms(vert: InputStream, frag: InputStream, GLSL: Int)
+        fun createPrograms(vert: ByteArray, frag: ByteArray, GLSL: Int)
         {
             val numV = VertexEffect.getNumEnabled()
 
diff --git a/src/main/java/org/distorted/library/main/DistortedLibrary.kt b/src/main/java/org/distorted/library/main/DistortedLibrary.kt
index 260cc2c..a260358 100644
--- a/src/main/java/org/distorted/library/main/DistortedLibrary.kt
+++ b/src/main/java/org/distorted/library/main/DistortedLibrary.kt
@@ -47,7 +47,6 @@ import org.distorted.library.message.EffectMessageSender
 import org.distorted.library.program.DistortedProgram
 import org.distorted.library.program.VertexCompilationException
 import org.distorted.library.type.Dynamic
-import java.io.InputStream
 import java.nio.ByteBuffer
 import java.nio.ByteOrder
 import java.nio.FloatBuffer
@@ -279,7 +278,7 @@ object DistortedLibrary
     interface LibraryUser
     {
         fun distortedException(ex: Exception)
-        fun localFile(fileID: Int): InputStream
+        fun localFile(fileID: Int): ByteArray
         fun logMessage(message: String)
     }
     private lateinit var mUser: LibraryUser
diff --git a/src/main/java/org/distorted/library/program/DistortedProgram.kt b/src/main/java/org/distorted/library/program/DistortedProgram.kt
index 043f947..9d1646a 100644
--- a/src/main/java/org/distorted/library/program/DistortedProgram.kt
+++ b/src/main/java/org/distorted/library/program/DistortedProgram.kt
@@ -22,10 +22,6 @@ package org.distorted.library.program
 
 import android.opengl.GLES30
 import org.distorted.library.main.DistortedLibrary
-import java.io.BufferedReader
-import java.io.IOException
-import java.io.InputStream
-import java.io.InputStreamReader
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 /** An object which encapsulates a vertex/fragment shader combo, aka Shader Program.
@@ -310,27 +306,22 @@ class DistortedProgram
     }
 
     ///////////////////////////////////////////////////////////////////////////////////////////////
-    private fun readTextFileFromRawResource(inputStream: InputStream, doAttributes: Boolean): String?
+    private fun readTextFileFromRawResource(inputBytes: ByteArray, doAttributes: Boolean): String?
     {
-        val inputStreamReader = InputStreamReader(inputStream)
-        val bufferedReader = BufferedReader(inputStreamReader)
-
-        var nextLine: String?
-        var attribute: String?
-        var attrList: String? = ""
         val body = StringBuilder()
+        var attrList: String? = ""
 
         try
         {
-            while ((bufferedReader.readLine().also { nextLine = it }) != null)
+            val lines = inputBytes.toString(Charsets.UTF_8).lines()
+
+            for (nextLine in lines)
             {
-                body.append(nextLine)
-                body.append('\n')
+                body.append(nextLine).append('\n')
 
                 if (doAttributes)
                 {
-                    attribute = parseOutAttribute(nextLine!!)
-
+                    val attribute = parseOutAttribute(nextLine)
                     if (attribute != null)
                     {
                         if (!attrList!!.isEmpty()) attrList += " "
@@ -339,7 +330,7 @@ class DistortedProgram
                 }
             }
         }
-        catch (e: IOException) { return null }
+        catch (_: Exception) { return null }
 
         if (doAttributes)
         {
@@ -455,7 +446,7 @@ class DistortedProgram
     *
     * @y.exclude
     */
-    constructor(vert: InputStream, frag: InputStream, vertHeader: String,
+    constructor(vert: ByteArray, frag: ByteArray, vertHeader: String,
                 fragHeader: String, glslVersion: Int, feedback: Array<String>?)
     {
         init(glslVersion)
@@ -482,7 +473,7 @@ class DistortedProgram
     *
     * @y.exclude
     */
-    constructor(vert: InputStream, frag: InputStream, vertHeader: String, fragHeader: String,
+    constructor(vert: ByteArray, frag: ByteArray, vertHeader: String, fragHeader: String,
                 enabledVert: String?, enabledFrag: String?, glslVersion: Int, feedback: Array<String>?)
     {
         init(glslVersion)
@@ -512,7 +503,7 @@ class DistortedProgram
     *
     * @y.exclude
     */
-    constructor( vert: InputStream, frag: InputStream, vertHeader: String, fragHeader: String, glslVersion: Int) :
+    constructor( vert: ByteArray, frag: ByteArray, vertHeader: String, fragHeader: String, glslVersion: Int) :
             this(vert, frag, vertHeader, fragHeader, glslVersion, null)
 
     ///////////////////////////////////////////////////////////////////////////////////////////////
