Class: RLSL::ShaderBuilder
- Inherits:
-
Object
- Object
- RLSL::ShaderBuilder
show all
- Defined in:
- lib/rlsl/shader_builder.rb,
lib/rlsl/shader_builder/build_service.rb,
lib/rlsl/shader_builder/source_resolver.rb,
lib/rlsl/shader_builder/shader_definition.rb,
lib/rlsl/shader_builder/native_extension_compiler.rb
Defined Under Namespace
Classes: BuildService, NativeExtensionCompiler, ShaderDefinition, SourceResolver
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(name, definition = ShaderDefinition.new) ⇒ ShaderBuilder
Returns a new instance of ShaderBuilder.
12
13
14
15
|
# File 'lib/rlsl/shader_builder.rb', line 12
def initialize(name, definition = ShaderDefinition.new)
@name = name.to_s
@definition = definition
end
|
Instance Attribute Details
#name ⇒ Object
Returns the value of attribute name.
10
11
12
|
# File 'lib/rlsl/shader_builder.rb', line 10
def name
@name
end
|
Instance Method Details
#build_glsl_shader(version: "450") ⇒ Object
56
57
58
|
# File 'lib/rlsl/shader_builder.rb', line 56
def build_glsl_shader(version: "450")
build_service.build_glsl_shader(version: version)
end
|
48
49
50
|
# File 'lib/rlsl/shader_builder.rb', line 48
def build_metal_shader
build_service.build_metal_shader
end
|
#build_wgsl_shader ⇒ Object
52
53
54
|
# File 'lib/rlsl/shader_builder.rb', line 52
def build_wgsl_shader
build_service.build_wgsl_shader
end
|
#compile_and_load ⇒ Object
44
45
46
|
# File 'lib/rlsl/shader_builder.rb', line 44
def compile_and_load
build_service.compile_and_load
end
|
#fragment(&block) ⇒ Object
37
38
39
40
41
42
|
# File 'lib/rlsl/shader_builder.rb', line 37
def fragment(&block)
@definition = @definition.with_fragment(
mode: block.arity > 0 ? :ruby : :c,
block: block
)
end
|
#functions(&block) ⇒ Object
31
32
33
34
35
|
# File 'lib/rlsl/shader_builder.rb', line 31
def functions(&block)
ctx = FunctionContext.new
ctx.instance_eval(&block)
@definition = @definition.with_custom_functions(ctx.functions)
end
|
#helpers(mode = :ruby, &block) ⇒ Object
27
28
29
|
# File 'lib/rlsl/shader_builder.rb', line 27
def helpers(mode = :ruby, &block)
@definition = @definition.with_helpers(mode: mode, block: block)
end
|
#transpile_fragment(target) ⇒ Object
60
61
62
|
# File 'lib/rlsl/shader_builder.rb', line 60
def transpile_fragment(target)
build_service.transpile_fragment(target)
end
|
#transpile_helpers(target) ⇒ Object
64
65
66
|
# File 'lib/rlsl/shader_builder.rb', line 64
def transpile_helpers(target)
build_service.transpile_helpers(target)
end
|
17
18
19
20
21
22
23
24
25
|
# File 'lib/rlsl/shader_builder.rb', line 17
def uniforms(&block)
if block_given?
ctx = UniformContext.new
ctx.instance_eval(&block)
@definition = @definition.with_uniforms(ctx.uniforms)
else
@definition.uniforms
end
end
|