19#include <QtGui/QOpenGLBuffer>
20#include <QtGui/QOpenGLFunctions>
21#include <QtGui/QOpenGLShaderProgram>
22#include <QtGui/QOpenGLVertexArrayObject>
29 const QString& vertexShaderFileName,
const QString& fragShaderFileName);
32 const std::shared_ptr<QOpenGLShaderProgram>&
52 static_cast<int>(
sizeof(GLfloat));
56 const std::shared_ptr<QOpenGLShaderProgram>& shaderProgram) {
63 std::shared_ptr<QOpenGLShaderProgram>& shaderProgram =
67 void Render(
const QMatrix4x4* mvp =
nullptr);
76 glEnableVertexAttribArray(0);
77 glVertexAttribPointer(
89 QOpenGLVertexArrayObject
vao_;
virtual void SetupAllAttrPointer(void)
int vertex_element_count(void) const
int vertex_element_count_
bool Init(std::shared_ptr< QOpenGLShaderProgram > &shaderProgram=NullRenderableObj)
virtual void SetupExtraUniforms(void)
int vertex_count(void) const
int VertexBufferSize(void) const
std::shared_ptr< QOpenGLShaderProgram > shader_program_
virtual ~RenderableObject(void)
void Render(const QMatrix4x4 *mvp=nullptr)
void set_is_renderable(bool b)
void set_shader_program(const std::shared_ptr< QOpenGLShaderProgram > &shaderProgram)
QOpenGLVertexArrayObject vao_
void set_vertex_count(int vertexCount)
static std::shared_ptr< QOpenGLShaderProgram > NullRenderableObj
virtual bool FillVertexBuffer(GLfloat *pBuffer)=0
virtual GLenum GetPrimitiveType(void) const =0
void set_vertex_element_count(int vertexElementCount)
static std::shared_ptr< QOpenGLShaderProgram > CreateShaderProgram(const QString &vertexShaderFileName, const QString &fragShaderFileName)
bool is_renderable(void) const
bool haveShaderProgram(void)