//
// Triangle.cpp
// Triangle
//
// Created by John Ryland on 2/10/17.
// Copyright © 2017 John Ryland. All rights reserved.
//
#include <OpenGL/gl.h>
#include "../Framework/Framework.h"
const char* s_fixedFunctionVertexShader =
R"(
void main()
{
gl_FrontColor = gl_Color;
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
}
)";
const char* s_fixedFunctionFragmentShader =
R"(
void main()
{
gl_FragColor = gl_Color;
}
)";
class Triangle : public DemoContext
{
public:
~Triangle() override;
void prepare() override;
void draw() override;
private:
GLProgram m_program;
};
Triangle::~Triangle()
{
m_program.deleteProgram();
}
void Triangle::prepare()
{
OptionsType options;
m_program.deleteProgram();
m_program.loadShaders(s_fixedFunctionVertexShader, s_fixedFunctionFragmentShader, Medium, options, [](unsigned int){}, [](unsigned int){});
}
void Triangle::draw()
{
m_program.useProgram();
glDisable(GL_DEPTH_TEST);
// Fixed function calls
glColor3f(1.0f, 0.85f, 0.35f);
glBegin(GL_TRIANGLES);
{
glVertex3f( 0.0, 0.6, 0.0);
glVertex3f( -0.2, -0.3, 0.0);
glVertex3f( 0.2, -0.3 ,0.0);
}
glEnd();
}
REGISTER_DEMO_CONTEXT("Triangle", Triangle)