Merge pull request #1817 from MoritzBrueckner/shaderdata-sampler2d

Add sampler2D access to ShaderData node
This commit is contained in:
Lubos Lenco 2020-08-28 17:38:47 +02:00 committed by GitHub
commit a4f7030ef8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -30,7 +30,8 @@ class ShaderDataNode(Node):
('float', 'float', 'float'),
('vec2', 'vec2', 'vec2'),
('vec3', 'vec3', 'vec3'),
('vec4', 'vec4', 'vec4')],
('vec4', 'vec4', 'vec4'),
('sampler2D', 'sampler2D', 'sampler2D')],
name='Variable Type',
default='vec3',
description="The type of the variable")
@ -65,6 +66,11 @@ class ShaderDataNode(Node):
def parse(self, frag: Shader, vert: Shader) -> str:
if self.input_type == "uniform":
frag.add_uniform(f'{self.variable_type} {self.variable_name}', link=self.variable_name)
if self.variable_type == "sampler2D":
frag.add_uniform('vec2 screenSize', link='_screenSize')
return f'texture({self.variable_name}, gl_FragCoord.xy / screenSize).rgb'
return self.variable_name
else: