Проблемы при чтении ресурса с File.separator на зависимости - PullRequest
0 голосов
/ 08 ноября 2018

Я пытаюсь создать программу opengl, читая определенный шейдер, который является ничем иным, как простым текстом.

Этот файл находится непосредственно в папках src.

Если я читаю свой шейдер из основного приложения, без проблем слеш, обратный слеш, File.separator или File.separatorChar:

  • "ec/core/render/shaders/gl3/texture.vert"
  • "ec/core/render/shaders/gl3\\texture.vert" двойной для побега
  • "ec/core/render/shaders/gl3" + File.separator + "texture.vert"
  • "ec/core/render/shaders/gl3" + File.separatorChar + "texture.vert"

но если я пытаюсь загрузить шейдер из зависимости зависимости :

        val fullShader = when {
            root.endsWith('/') || root.endsWith('\\') -> "$root$shader"
            else -> root + '/' + shader // here
        }

тогда работает только косая черта. Все остальные опции запускают NPE при вызове createShaderFromPath и потоке кода достигает this :

        val lines = ClassLoader.getSystemResourceAsStream(path).use {
            println(path)
            InputStreamReader(it).readLines()  // NPE
        }

Почему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...