本文整理汇总了C++中QOpenGLFunctions_2_1::glVertex2i方法的典型用法代码示例。如果您正苦于以下问题:C++ QOpenGLFunctions_2_1::glVertex2i方法的具体用法?C++ QOpenGLFunctions_2_1::glVertex2i怎么用?C++ QOpenGLFunctions_2_1::glVertex2i使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QOpenGLFunctions_2_1
的用法示例。
在下文中一共展示了QOpenGLFunctions_2_1::glVertex2i方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
void ccGLUtils::DisplayTexture2DPosition(GLuint texID, int x, int y, int w, int h, unsigned char alpha/*=255*/)
{
QOpenGLContext* context = QOpenGLContext::currentContext();
if (!context)
{
assert(false);
return;
}
QOpenGLFunctions_2_1* glFunc = context->versionFunctions<QOpenGLFunctions_2_1>();
if (glFunc)
{
glFunc->glBindTexture(GL_TEXTURE_2D, texID);
glFunc->glPushAttrib(GL_ENABLE_BIT);
glFunc->glEnable(GL_TEXTURE_2D);
glFunc->glColor4ub(255, 255, 255, alpha);
glFunc->glBegin(GL_QUADS);
glFunc->glTexCoord2f(0.0, 1.0);
glFunc->glVertex2i(x, y + h);
glFunc->glTexCoord2f(0.0, 0.0);
glFunc->glVertex2i(x, y);
glFunc->glTexCoord2f(1.0, 0.0);
glFunc->glVertex2i(x + w, y);
glFunc->glTexCoord2f(1.0, 1.0);
glFunc->glVertex2i(x + w, y + h);
glFunc->glEnd();
glFunc->glBindTexture(GL_TEXTURE_2D, 0);
glFunc->glPopAttrib();
glFunc->glBindTexture(GL_TEXTURE_2D, 0);
}
}
示例2: DrawColorRamp
//.........这里部分代码省略.........
int x = halfW-xShift-scaleWidth;
int y = halfH-yShift-scaleMaxHeight;
if (keyValues.size() > 1)
{
int histoStart = x + scaleWidth + std::min(std::max(scaleWidth / 8, 3), static_cast<int>(15 * renderZoom));
glFunc->glBegin(GL_LINES);
for (int j=0; j<scaleMaxHeight; ++j)
{
double baseValue = sortedKeyValues.front() + (j * maxRange) / scaleMaxHeight;
double value = baseValue;
if (logScale)
{
value = exp(value*c_log10);
}
const ColorCompType* col = sf->getColor(static_cast<ScalarType>(value));
if (!col)
{
//special case: if we have user-defined labels, we want all the labels to be displayed with their associated color
if (customLabels)
{
assert(sf->getColorScale() && !sf->getColorScale()->isRelative());
col = sf->getColorScale()->getColorByValue(value, ccColor::lightGrey.rgba);
}
else
{
col = ccColor::lightGrey.rgba;
}
}
assert(col);
glFunc->glColor3ubv(col);
glFunc->glVertex2i(x,y+j);
glFunc->glVertex2i(x+scaleWidth,y+j);
if (showHistogram)
{
double bind = (value - sf->displayRange().min())*(histogram.size() - 1) / sf->displayRange().maxRange();
int bin = static_cast<int>(floor(bind));
double hVal = 0.0;
if (bin >= 0 && bin < static_cast<int>(histogram.size())) //in symmetrical case we can get values outside of the real SF range
{
hVal = histogram[bin];
if (bin+1 < static_cast<int>(histogram.size()))
{
//linear interpolation
double alpha = bind-static_cast<double>(bin);
hVal = (1.0-alpha) * hVal + alpha * histogram[bin+1];
}
}
int xSpan = std::max(static_cast<int>(hVal / histogram.maxValue * (scaleWidth/2)),1);
glFunc->glVertex2i(histoStart,y+j);
glFunc->glVertex2i(histoStart+xSpan,y+j);
}
}
glFunc->glEnd();
}
else
{
//if there's a unique (visible) scalar value, we only draw a square!
double value = sortedKeyValues.front();
if (logScale)
value = exp(value*c_log10);
示例3: tab
//.........这里部分代码省略.........
glFunc->glTranslatef(static_cast<GLfloat>(-halfW + xStart), static_cast<GLfloat>(-halfH + yStart), 0);
if (!pushName)
{
//compute arrow base position relatively to the label rectangle (for 0 to 8)
int arrowBaseConfig = 0;
int iArrowDestX = static_cast<int>(arrowDestX)-xStart;
int iArrowDestY = static_cast<int>(arrowDestY)-yStart;
{
if (iArrowDestX < m_labelROI.left()) //left
arrowBaseConfig += 0;
else if (iArrowDestX > m_labelROI.right()) //Right
arrowBaseConfig += 2;
else //Middle
arrowBaseConfig += 1;
if (iArrowDestY > -m_labelROI.top()) //Top
arrowBaseConfig += 0;
else if (iArrowDestY < -m_labelROI.bottom()) //Bottom
arrowBaseConfig += 6;
else //Middle
arrowBaseConfig += 3;
}
//we make the arrow base start from the nearest corner
if (arrowBaseConfig != 4) //4 = label above point!
{
glFunc->glColor4ubv(defaultBorderColor.rgba);
glFunc->glBegin(GL_TRIANGLE_FAN);
glFunc->glVertex2d(arrowDestX - xStart, arrowDestY - yStart);
switch(arrowBaseConfig)
{
case 0: //top-left corner
glFunc->glVertex2i(m_labelROI.left(), -m_labelROI.top()-2*arrowBaseSize);
glFunc->glVertex2i(m_labelROI.left(), -m_labelROI.top());
glFunc->glVertex2i(m_labelROI.left()+2*arrowBaseSize, -m_labelROI.top());
break;
case 1: //top-middle edge
glFunc->glVertex2i(std::max(m_labelROI.left(),iArrowDestX-arrowBaseSize), -m_labelROI.top());
glFunc->glVertex2i(std::min(m_labelROI.right(),iArrowDestX+arrowBaseSize), -m_labelROI.top());
break;
case 2: //top-right corner
glFunc->glVertex2i(m_labelROI.right(), -m_labelROI.top()-2*arrowBaseSize);
glFunc->glVertex2i(m_labelROI.right(), -m_labelROI.top());
glFunc->glVertex2i(m_labelROI.right()-2*arrowBaseSize, -m_labelROI.top());
break;
case 3: //middle-left edge
glFunc->glVertex2i(m_labelROI.left(), std::min(-m_labelROI.top(),iArrowDestY+arrowBaseSize));
glFunc->glVertex2i(m_labelROI.left(), std::max(-m_labelROI.bottom(),iArrowDestY-arrowBaseSize));
break;
case 4: //middle of rectangle!
break;
case 5: //middle-right edge
glFunc->glVertex2i(m_labelROI.right(), std::min(-m_labelROI.top(),iArrowDestY+arrowBaseSize));
glFunc->glVertex2i(m_labelROI.right(), std::max(-m_labelROI.bottom(),iArrowDestY-arrowBaseSize));
break;
case 6: //bottom-left corner
glFunc->glVertex2i(m_labelROI.left(), -m_labelROI.bottom()+2*arrowBaseSize);
glFunc->glVertex2i(m_labelROI.left(), -m_labelROI.bottom());
glFunc->glVertex2i(m_labelROI.left()+2*arrowBaseSize, -m_labelROI.bottom());
break;
case 7: //bottom-middle edge
glFunc->glVertex2i(std::max(m_labelROI.left(),iArrowDestX-arrowBaseSize), -m_labelROI.bottom());
glFunc->glVertex2i(std::min(m_labelROI.right(),iArrowDestX+arrowBaseSize), -m_labelROI.bottom());
break;
case 8: //bottom-right corner