Merge pull request #45 from SolitudeSF/user

User shaders
pull/47/head
Alexey Kutepov 5 years ago committed by GitHub
commit 750044855c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -20,8 +20,8 @@ proc readShader(file: string): Shader =
const const
isDebug = not (defined(danger) or defined(release)) isDebug = not (defined(danger) or defined(release))
vertexShader = readShader "boomer.vs" defaultVertexShader = readShader "vert.glsl"
fragmentShader = readShader "boomer.fs" defaultFragmentShader = readShader "frag.glsl"
proc newShader(shader: Shader, kind: GLenum): GLuint = proc newShader(shader: Shader, kind: GLenum): GLuint =
result = glCreateShader(kind) result = glCreateShader(kind)
@ -78,11 +78,9 @@ proc draw(screenshot: Image, camera: var Camera, shader, vao, texture: GLuint) =
proc main() = proc main() =
var config = defaultConfig var config = defaultConfig
let configFile = block: let
if paramCount() > 0: boomerDir = getConfigDir() / "boomer"
paramStr(1) configFile = boomerDir / "config"
else:
getConfigDir() / "boomer" / "config"
if existsFile configFile: if existsFile configFile:
config = loadConfig(configFile) config = loadConfig(configFile)
@ -91,6 +89,21 @@ proc main() =
echo "Using config: ", config 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 # Fetching pixel data from X
var display = XOpenDisplay(nil) var display = XOpenDisplay(nil)
@ -144,7 +157,7 @@ proc main() =
var wmName = "boomer" var wmName = "boomer"
var wmClass = "Boomer" var wmClass = "Boomer"
var hints = TXClassHint(res_name: wmName, res_class: wmClass) var hints = TXClassHint(res_name: wmName, res_class: wmClass)
discard XStoreName(display, win, wmName) discard XStoreName(display, win, wmName)
discard XSetClassHint(display, win, addr(hints)) discard XSetClassHint(display, win, addr(hints))

@ -39,7 +39,10 @@ macro parseObject(obj: typed, key, val: string) =
proc loadConfig*(filePath: string): Config = proc loadConfig*(filePath: string): Config =
result = defaultConfig 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 pair = line.split('=', 1)
let key = pair[0].strip let key = pair[0].strip
let value = pair[1].strip let value = pair[1].strip

Loading…
Cancel
Save