Class: Processing::Shader
- Inherits:
-
Object
- Object
- Processing::Shader
- Includes:
- Xot::Inspectable
- Defined in:
- lib/processing/shader.rb
Overview
Shader object.
Instance Method Summary collapse
-
#initialize(vertSrc, fragSrc) ⇒ Shader
constructor
Initialize shader object.
-
#setUniform(name, *args) ⇒ Object
(also: #set)
Sets uniform variables.
Constructor Details
#initialize(vertSrc, fragSrc) ⇒ Shader
Initialize shader object.
15 16 17 |
# File 'lib/processing/shader.rb', line 15 def initialize(vertSrc, fragSrc) @shader = Rays::Shader.new fragSrc, vertSrc, ENV__ end |
Instance Method Details
#set(name, a) ⇒ Object #set(name, a, b) ⇒ Object #set(name, a, b, c) ⇒ Object #set(name, a, b, c, d) ⇒ Object #set(name, nums) ⇒ Object #set(name, vec) ⇒ Object #set(name, vec, ncoords) ⇒ Object #set(name, tex) ⇒ Object Also known as: set
Sets uniform variables.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/processing/shader.rb', line 40 def setUniform(name, *args) arg = args.first case when Array === arg @shader.uniform name, *arg when Numeric === arg @shader.uniform name, *args when Vector === arg vec, ncoords = args @shader.uniform name, vec.getInternal__.to_a(ncoords || 3) when arg.respond_to?(:getInternal__) @shader.uniform name, arg.getInternal__ else raise ArgumentError end end |