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>&
33 shaderProgram = NullRenderableObj);
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 Draw(void)
Definition: renderable_object.h:71
static std::shared_ptr< QOpenGLShaderProgram > NullRenderableObj
Definition: renderable_object.h:27
int vertex_count(void) const
Definition: renderable_object.h:42
int vertex_count_
Definition: renderable_object.h:85
virtual ~RenderableObject(void)
bool is_init_
Definition: renderable_object.h:82
static std::shared_ptr< QOpenGLShaderProgram > CreateShaderProgram(const QString &vertexShaderFileName, const QString &fragShaderFileName)
bool haveShaderProgram(void)
Definition: renderable_object.h:60
Definition: renderable_object.h:25
void set_vertex_count(int vertexCount)
Definition: renderable_object.h:43
virtual bool FillVertexBuffer(GLfloat *pBuffer)=0
std::shared_ptr< QOpenGLShaderProgram > shader_program_
Definition: renderable_object.h:88
void set_is_renderable(bool b)
Definition: renderable_object.h:40
bool Init(std::shared_ptr< QOpenGLShaderProgram > &shaderProgram=NullRenderableObj)
void set_vertex_element_count(int vertexElementCount)
Definition: renderable_object.h:46
virtual GLenum GetPrimitiveType(void) const =0
QOpenGLVertexArrayObject vao_
Definition: renderable_object.h:89
QOpenGLBuffer vbo_
Definition: renderable_object.h:90
virtual void SetupExtraUniforms(void)
Definition: renderable_object.h:37
void set_shader_program(const std::shared_ptr< QOpenGLShaderProgram > &shaderProgram)
Definition: renderable_object.h:55
RenderableObject(int vertex_count=1, int vertex_element_count=3, const std::shared_ptr< QOpenGLShaderProgram > &shaderProgram=NullRenderableObj)
int VertexBufferSize(void) const
Definition: renderable_object.h:50
bool is_renderable_
Definition: renderable_object.h:83
virtual void SetupAllAttrPointer(void)
Definition: renderable_object.h:75
void Render(const QMatrix4x4 *mvp=nullptr)
int vertex_element_count_
Definition: renderable_object.h:86
bool is_renderable(void) const
Definition: renderable_object.h:39
int vertex_element_count(void) const
Definition: renderable_object.h:45