// This is a test file for the Katepart GLSL Syntax Highlighting.

normal text
// this is a single-line comment
normal text
/* this
is a multi-line 
comment */
normal text

some_symbol.some_member;
some_symbol.some_member_function();
some_function();

// this is a function
void main()
{
	float f = 1.4e3; // decimal float literal
	int i1 = 2884;   // decimal int literal
	int i2 = 0x44;   // hex int literal
	int i3 = 0456;   // octal int literal
}

// this is a structure
struct some_struct
{
	vec3 some_member_vector;
};

# this is 
#preprocessor code

// all keywords
break continue do for while
if else
true false
discard return
struct

// all basic types
float int void bool
mat2 mat3 mat4
vec2 vec3 vec4
ivec2 ivec3 ivec4
bvec2 bvec3 bvec4
sampler1D sampler2D sampler3D
samplerCube sampler1DShadow sampler1DShadow

// all type qualifiers
attribute const uniform varying
in out inout

// attensions:
// FIXME
// TODO
// BUG

// some of the std functions
radians degrees sin cos tan asin acos atan

// some of the std variables
gl_Position gl_PointSize gl_ClipVertex

#version 330 core

// single line comment

/* single line commonet */

/*
 multi line comment
 */

in ColorFormat {
    vec3 color;
} fs_in;

out vec4 fragColor;

vec3 fun(const in vec3 foo) {
    foo[2] = foo.x;

    return foo;
}

void main()
{
    fragColor = vec4( fs_in.color, 1.0 );
}