| 22 |
22 |
|
| 23 |
23 |
import android.opengl.GLES30
|
| 24 |
24 |
import org.distorted.library.main.DistortedLibrary
|
| 25 |
|
import java.io.BufferedReader
|
| 26 |
|
import java.io.IOException
|
| 27 |
|
import java.io.InputStream
|
| 28 |
|
import java.io.InputStreamReader
|
| 29 |
25 |
|
| 30 |
26 |
///////////////////////////////////////////////////////////////////////////////////////////////////
|
| 31 |
27 |
/** An object which encapsulates a vertex/fragment shader combo, aka Shader Program.
|
| ... | ... | |
| 310 |
306 |
}
|
| 311 |
307 |
|
| 312 |
308 |
///////////////////////////////////////////////////////////////////////////////////////////////
|
| 313 |
|
private fun readTextFileFromRawResource(inputStream: InputStream, doAttributes: Boolean): String?
|
|
309 |
private fun readTextFileFromRawResource(inputBytes: ByteArray, doAttributes: Boolean): String?
|
| 314 |
310 |
{
|
| 315 |
|
val inputStreamReader = InputStreamReader(inputStream)
|
| 316 |
|
val bufferedReader = BufferedReader(inputStreamReader)
|
| 317 |
|
|
| 318 |
|
var nextLine: String?
|
| 319 |
|
var attribute: String?
|
| 320 |
|
var attrList: String? = ""
|
| 321 |
311 |
val body = StringBuilder()
|
|
312 |
var attrList: String? = ""
|
| 322 |
313 |
|
| 323 |
314 |
try
|
| 324 |
315 |
{
|
| 325 |
|
while ((bufferedReader.readLine().also { nextLine = it }) != null)
|
|
316 |
val lines = inputBytes.toString(Charsets.UTF_8).lines()
|
|
317 |
|
|
318 |
for (nextLine in lines)
|
| 326 |
319 |
{
|
| 327 |
|
body.append(nextLine)
|
| 328 |
|
body.append('\n')
|
|
320 |
body.append(nextLine).append('\n')
|
| 329 |
321 |
|
| 330 |
322 |
if (doAttributes)
|
| 331 |
323 |
{
|
| 332 |
|
attribute = parseOutAttribute(nextLine!!)
|
| 333 |
|
|
|
324 |
val attribute = parseOutAttribute(nextLine)
|
| 334 |
325 |
if (attribute != null)
|
| 335 |
326 |
{
|
| 336 |
327 |
if (!attrList!!.isEmpty()) attrList += " "
|
| ... | ... | |
| 339 |
330 |
}
|
| 340 |
331 |
}
|
| 341 |
332 |
}
|
| 342 |
|
catch (e: IOException) { return null }
|
|
333 |
catch (_: Exception) { return null }
|
| 343 |
334 |
|
| 344 |
335 |
if (doAttributes)
|
| 345 |
336 |
{
|
| ... | ... | |
| 455 |
446 |
*
|
| 456 |
447 |
* @y.exclude
|
| 457 |
448 |
*/
|
| 458 |
|
constructor(vert: InputStream, frag: InputStream, vertHeader: String,
|
|
449 |
constructor(vert: ByteArray, frag: ByteArray, vertHeader: String,
|
| 459 |
450 |
fragHeader: String, glslVersion: Int, feedback: Array<String>?)
|
| 460 |
451 |
{
|
| 461 |
452 |
init(glslVersion)
|
| ... | ... | |
| 482 |
473 |
*
|
| 483 |
474 |
* @y.exclude
|
| 484 |
475 |
*/
|
| 485 |
|
constructor(vert: InputStream, frag: InputStream, vertHeader: String, fragHeader: String,
|
|
476 |
constructor(vert: ByteArray, frag: ByteArray, vertHeader: String, fragHeader: String,
|
| 486 |
477 |
enabledVert: String?, enabledFrag: String?, glslVersion: Int, feedback: Array<String>?)
|
| 487 |
478 |
{
|
| 488 |
479 |
init(glslVersion)
|
| ... | ... | |
| 512 |
503 |
*
|
| 513 |
504 |
* @y.exclude
|
| 514 |
505 |
*/
|
| 515 |
|
constructor( vert: InputStream, frag: InputStream, vertHeader: String, fragHeader: String, glslVersion: Int) :
|
|
506 |
constructor( vert: ByteArray, frag: ByteArray, vertHeader: String, fragHeader: String, glslVersion: Int) :
|
| 516 |
507 |
this(vert, frag, vertHeader, fragHeader, glslVersion, null)
|
| 517 |
508 |
|
| 518 |
509 |
///////////////////////////////////////////////////////////////////////////////////////////////
|
java.io.InputStream -> Kotlin's ByteArray