enigma-3d 0.2.15

A 3D Rendering Engine with a focus on simplicity and ease of use. Far from feature complete and not recommended for production use.
Documentation
#version 330 core
#extension GL_EXT_geometry_shader : enable

layout(triangles) in;
layout(triangle_strip, max_vertices = 3) out;

// Input from vertex shader
in vec3 v_world_position[];
in vec3 v_view_direction[];
in vec3 v_modelView_pos[];
in vec3 v_object_position[];
in vec3 v_vertex_color[];
in vec3 v_vertex_normal[];
in vec2 v_vertex_texcoord[];

// Output to fragment shader (same names as input)
out vec3 world_position;
out vec3 view_direction;
out vec3 modelView_pos;
out vec3 object_position;
out vec3 vertex_color;
out vec3 vertex_normal;
out vec2 vertex_texcoord;

void main() {
    for(int i = 0; i < 3; i++) {
        // Pass through the position
        gl_Position = gl_in[i].gl_Position;

        // Pass through all other attributes
        world_position = v_world_position[i];
        view_direction = v_view_direction[i];
        modelView_pos = v_modelView_pos[i];
        object_position = v_object_position[i];
        vertex_color = v_vertex_color[i];
        vertex_normal = v_vertex_normal[i];
        vertex_texcoord = v_vertex_texcoord[i];

        EmitVertex();
    }
    EndPrimitive();
}