#include "mmscene.h" #include "glpoint.h" #include "glcolorrgba.h" MMScene::MMScene(QQuickItem *parent) :GLItem(parent) { m_vertexShaderFilename = ":/shaders/vshader.vsh"; m_eye = 20.0 * v_XYZ; } MMScene::~MMScene() { } void MMScene::paintUnderQmlScene() { m_renderer->pushMvMatrix(); // drawAxes(2.5); drawTriangles(); m_renderer->popMvMatrix(); } void MMScene::paintOnTopOfQmlScene() { m_renderer->pushMvMatrix(); drawAxes(10); drawTriangles(); m_renderer->popMvMatrix(); } void MMScene::setupGeometry() { createF(5.0); m_colorArrayEnabled = true; m_geometryIsValid = true; } void MMScene::drawTriangles() { renderer()->setLightingEnabled(m_lightingEnabled); renderer()->setColorArrayEnabled(m_colorArrayEnabled); renderer()->setTextureEnabled(false); //enable required arrays int stride = sizeof(GLPoint); for(int i = 0; i < m_points.length(); i += 3) { if(i > m_lastAxesPoint || i < m_firstAxesPoint) { renderer()->activateAttributeArray(GLESRenderer::VERTEX_LOCATION, m_points[i].vertexPointer(), stride); renderer()->activateAttributeArray(GLESRenderer::NORMAL_LOCATION, m_points[i].normalPointer(), stride); renderer()->activateAttributeArray(GLESRenderer::TEXCOORD_LOCATION, m_points[i].texCoordPointer(), stride); renderer()->activateAttributeArray(GLESRenderer::COLOR_LOCATION, m_points[i].colorPointer(), stride); glDrawArrays(GL_TRIANGLES, 0, 3); } } renderer()->disableAttributeArrays(); }