Сначала просто не было автодополнения, но собиралось нормально. Хотя, вроде, всё, что нужно, подключил:
#ifndef APPLICATION_H
#define APPLICATION_H
#include <iostream>
#include <fstream>
#include <SDL2/SDL.h>
#define GLCOREARB_PROTOTYPES 1
#include "glcorearb.h"
#include <oglplus/all.hpp>
#include <oglplus/shader.hpp>
#include <oglplus/program.hpp>
#include <oglplus/buffer.hpp>
#include <oglplus/context.hpp>
class application
{
public:
application(std::string appName);
void end();
void run();
bool setupShaders(std::string vss, std::string fss);
bool setupBuffers();
std::string loadShader(std::string fileName);
private:
SDL_Window *window;
oglplus::Context gl;
SDL_GLContext context;
oglplus::VertexShader vs;
oglplus::FragmentShader fs;
oglplus::Program prog;
oglplus::VertexArray arr;
oglplus::Buffer verts[2];
};
#endif // APPLICATION_H
Но потом стало ругаться на несуществующий метод isCompiled(), хотя в документации он есть, и еще несколько аналогичных ошибок:
bool application::setupShaders(std::string vss, std::string fss)
{
std::string vsCode = loadShader(vss);
std::string fsCode = loadShader(fss);
if(vsCode!="")
{
vs.Source(vsCode);
vs.Compile();
if(!vs.isCompiled())
return false;
}
else
return false;
if(fsCode!="")
{
fs.Source(fsCode);
fs.Compile();
if(!fs.isCompiled())
return false;
}
else
return false;
prog.AttachShader(vs);
prog.AttachShader(fs);
prog.Link();
if(!prog.isLinked())
return false;
/*prog.Validate();
if(!prog.isValid())
return false;*/
prog.Use();
}