Beispiel #1
0
void Graphics3D::render(const Matrix &view, const Matrix &proj, const Light *lighting, int flags)
{
    if (!getIsVisible()) return;
    if (!isValid()) return;
    if (lighting == nullptr) {
        lighting = defaultLight;
    }

    Matrix modl = referenceFrame->getModelMatrix();
    OpenGLShaderProgram *shaderProgram = shader->getShader();
    shaderProgram->use();
    
    OpenGLShaderProgram::Uniform modlMatrix(*shaderProgram, "M");
    OpenGLShaderProgram::Uniform viewMatrix(*shaderProgram, "V");
    OpenGLShaderProgram::Uniform projMatrix(*shaderProgram, "P");
    OpenGLShaderProgram::Uniform selectionHandle(*shaderProgram, "selectionHandle");


    modlMatrix.setMatrix4(modl.mat, 1, false);
    viewMatrix.setMatrix4(view.mat, 1, false);
    projMatrix.setMatrix4(proj.mat, 1, false);
    selectionHandle.set(flags ? uniqueHandle : 0);


    geometry->activate(shaderProgram);
    material->activate(shaderProgram);
    lighting->activate(shaderProgram);
    geometry->drawElements();
    geometry->deactivate(shaderProgram);
    material->deactivate(shaderProgram);
    lighting->deactivate(shaderProgram);
}
void CUIMAAApprenticeManage::show()
{
    if (getIsVisible())return;
    setIsVisible(true);
    setIsTouchEnabled(true);
    CCTouchDispatcher::sharedDispatcher()->addTargetedDelegate(this, 1, true);
    createBasicChild();
}