From d95d9e0ec8673880246b194ca738756a0d81b0b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Lindqvist?= Date: Sun, 28 Jan 2018 03:43:01 +0100 Subject: [PATCH] gpu.shaders: simplified in-word's-path --- extra/gpu/shaders/shaders-tests.factor | 8 +++++++- extra/gpu/shaders/shaders.factor | 5 ++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/extra/gpu/shaders/shaders-tests.factor b/extra/gpu/shaders/shaders-tests.factor index b4b802d368..e97144126c 100644 --- a/extra/gpu/shaders/shaders-tests.factor +++ b/extra/gpu/shaders/shaders-tests.factor @@ -1,6 +1,6 @@ ! Copyright (C) 2009 Joe Groff. ! See http://factorcode.org/license.txt for BSD license. -USING: multiline gpu.shaders gpu.shaders.private tools.test ; +USING: gpu.shaders gpu.shaders.private io.pathnames tools.test ; IN: gpu.shaders.tests { "ERROR: foo.factor:20: Bad command or filename @@ -10,3 +10,9 @@ NOT:A:LOG:LINE" } "ERROR: 0:1: Bad command or filename INFO: 0:11: The operation completed successfully NOT:A:LOG:LINE" replace-log-line-numbers ] unit-test + +SYMBOL: a-test-symbol + +{ "shaders" } [ + a-test-symbol word-directory file-name +] unit-test diff --git a/extra/gpu/shaders/shaders.factor b/extra/gpu/shaders/shaders.factor index 3793975dea..1ea5b1d31f 100755 --- a/extra/gpu/shaders/shaders.factor +++ b/extra/gpu/shaders/shaders.factor @@ -494,8 +494,11 @@ DEFER: : link-program ( program -- program-instance ) dup shaders>> [ ] map (link-program) ; +: word-directory ( word -- directory ) + where first parent-directory ; + : in-word's-path ( word kind filename -- word kind filename' ) - [ over ] dip [ where first parent-directory ] dip append-path ; + pick word-directory prepend-path ; : become-shader-instance ( shader-instance new-shader-instance -- ) handle>> [ swap delete-gl-shader ] curry change-handle drop ;