getStockShader()

Generate generic shader.

Namespace Include
[ci::gl::getStockShader()] #include "cinder/gl/gl.h"




Signature

Output Function
GlslProgRef & getStockShader (const class ShaderDef &shader)

Example

image

#include "cinder/app/App.h"
#include "cinder/app/RendererGl.h"
#include "cinder/gl/gl.h"

using namespace ci;
using namespace ci::app;

class MyApp : public App {
  public:
    void setup() override;
    void draw() override;

    gl::BatchRef mCircleBatch;
};

void MyApp::setup()
{
    gl::enableDepthWrite();
    gl::enableDepthRead();

    auto lambert = gl::ShaderDef().lambert().color();
    gl::GlslProgRef shader = gl::getStockShader(lambert);
    mCircleBatch = gl::Batch::create(
        geom::Circle().radius(30), shader
    );
}

void MyApp::draw()
{
    gl::clear(Color::gray(0.2f));

    for (float angle = 0; angle < 2 * M_PI; angle += 0.2f) {
        gl::pushModelMatrix();
        gl::translate(
            getWindowCenter() + 200.0f * vec2(sin(angle), cos(angle))
        );
        gl::color(
            Color(CM_HSV, angle / (2 * M_PI), 1, 1)
        );
        mCircleBatch->draw();
        gl::popModelMatrix();
  }
}

CINDER_APP(MyApp, RendererGl)