void CtinyWingsTerrainSprite::draw(){ //----change shader ccGLBlendFunc( m_sBlendFunc.src, m_sBlendFunc.dst ); ccGLEnable(m_eGLServerState); //pass values for cocos2d-x build-in uniforms this->setShaderProgram(m_program); CGLProgramWithUnifos*program=(CGLProgramWithUnifos*)this->getShaderProgram(); program->use(); program->setUniformsForBuiltins(); //pass values for my own uniforms float colorList_tmp[4*3]={m_colorList[0].r,m_colorList[0].g,m_colorList[0].b,m_colorList[0].a, m_colorList[1].r,m_colorList[1].g,m_colorList[1].b,m_colorList[1].a, m_colorList[2].r,m_colorList[2].g,m_colorList[2].b,m_colorList[2].a}; program->passUnifoValue1f("u_texNonlinearFactor", m_texNonlinearFactor); program->passUnifoValueNfvN("u_colors", colorList_tmp, 4, 3); program->passUnifoValue1f("u_cosA", cosf(m_ribbonRotation*M_PI/180)); program->passUnifoValue1f("u_sinA", sinf(m_ribbonRotation*M_PI/180)); program->passUnifoValue1f("u_ribbonRepeat", m_ribbonRepeat); //enable attributes bool isAttribPositionOn=CindexVBO::isEnabledAttribArray_position(); bool isAttribColorOn=CindexVBO::isEnabledAttribArray_color(); bool isAttribTexCoordOn=CindexVBO::isEnabledAttribArray_texCoord(); CindexVBO::enableAttribArray_position(true); CindexVBO::enableAttribArray_color(true); CindexVBO::enableAttribArray_texCoord(true); //bind texture ccGLBindTexture2D( this->getTexture()->getName()); //draw m_indexVBO m_indexVBO->setPointer_position(); m_indexVBO->setPointer_texCoord(); m_indexVBO->setPointer_color(); m_indexVBO->draw(GL_TRIANGLES); //unbind texture ccGLBindTexture2D(0); //disable attributes CindexVBO::enableAttribArray_position(isAttribPositionOn); CindexVBO::enableAttribArray_color(isAttribColorOn); CindexVBO::enableAttribArray_texCoord(isAttribTexCoordOn); //draw wire if(m_isDrawDebug){ drawWire(); } }
t_libraryEditor::t_libraryEditor(void) { setMouseTracking(true); mode = MOVE; scale = 1; incompleteStage = false; pinPlacement = false; haveComp = false; g_color = QColor(200, 100, 100); p_color = QColor(100, 200, 100); offsetx = 500; offsety = 500; hintWidth = 4000; hintHeight = 4000; connect(this, SIGNAL(drawWireSignal(QPoint)), this, SLOT(drawWire(QPoint))); connect(this, SIGNAL(drawPinSignal(QPoint)), this, SLOT(drawPin(QPoint))); connect(this, SIGNAL(moveItemSignal(QPoint)), this, SLOT(moveItem(QPoint))); }