diff --git a/src/boomer.nim b/src/boomer.nim index 198d9df..dcd5263 100644 --- a/src/boomer.nim +++ b/src/boomer.nim @@ -20,8 +20,8 @@ proc readShader(file: string): Shader = const isDebug = not (defined(danger) or defined(release)) - vertexShader = readShader "boomer.vs" - fragmentShader = readShader "boomer.fs" + defaultVertexShader = readShader "vert.glsl" + defaultFragmentShader = readShader "frag.glsl" proc newShader(shader: Shader, kind: GLenum): GLuint = result = glCreateShader(kind) @@ -78,11 +78,9 @@ proc draw(screenshot: Image, camera: var Camera, shader, vao, texture: GLuint) = proc main() = var config = defaultConfig - let configFile = block: - if paramCount() > 0: - paramStr(1) - else: - getConfigDir() / "boomer" / "config" + let + boomerDir = getConfigDir() / "boomer" + configFile = boomerDir / "config" if existsFile configFile: config = loadConfig(configFile) @@ -91,6 +89,21 @@ proc main() = echo "Using config: ", config + let customVertexShaderPath = boomerDir / "vert.glsl" + let customFragmentShaderPath = boomerDir / "frag.glsl" + + var vertexShader: Shader = block: + if existsFile customVertexShaderPath: + readShader customVertexShaderPath + else: + defaultVertexShader + + var fragmentShader = block: + if existsFile customFragmentShaderPath: + readShader customFragmentShaderPath + else: + defaultFragmentShader + # Fetching pixel data from X var display = XOpenDisplay(nil) @@ -144,7 +157,7 @@ proc main() = var wmName = "boomer" var wmClass = "Boomer" var hints = TXClassHint(res_name: wmName, res_class: wmClass) - + discard XStoreName(display, win, wmName) discard XSetClassHint(display, win, addr(hints)) diff --git a/src/config.nim b/src/config.nim index b4fa9da..57ab867 100644 --- a/src/config.nim +++ b/src/config.nim @@ -39,7 +39,10 @@ macro parseObject(obj: typed, key, val: string) = proc loadConfig*(filePath: string): Config = result = defaultConfig - for line in filePath.lines: + for rawLine in filePath.lines: + let line = rawLine.strip + if line.len > 0 and line[0] == '#': + continue let pair = line.split('=', 1) let key = pair[0].strip let value = pair[1].strip diff --git a/src/boomer.fs b/src/frag.glsl similarity index 100% rename from src/boomer.fs rename to src/frag.glsl diff --git a/src/boomer.vs b/src/vert.glsl similarity index 100% rename from src/boomer.vs rename to src/vert.glsl