本文整理汇总了C++中LTexture::imageWidth方法的典型用法代码示例。如果您正苦于以下问题:C++ LTexture::imageWidth方法的具体用法?C++ LTexture::imageWidth怎么用?C++ LTexture::imageWidth使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LTexture
的用法示例。
在下文中一共展示了LTexture::imageWidth方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: render
void render()
{
//Clear color buffer
glClear( GL_COLOR_BUFFER_BIT );
//Initialize modelview matrix
glLoadIdentity();
//Render textured quad using VBOs
gVBOTexture.render( ( SCREEN_WIDTH - gVBOTexture.imageWidth() ) / 2.f, ( SCREEN_HEIGHT - gVBOTexture.imageHeight() ) / 2.f );
}
示例2: render
void render()
{
// clear color buffer
glClear(GL_COLOR_BUFFER_BIT);
// render OpenGL texture
gCircleTexture.render((SCREEN_WIDTH - gCircleTexture.imageWidth()) / 2.f,
(SCREEN_HEIGHT - gCircleTexture.imageHeight()) / 2.f);
// update screen
glutSwapBuffers();
}
示例3: render
void render()
{
//Clear color and stencil buffer
glClear( GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT );
glLoadIdentity();
//Disable rendering to the color buffer
glColorMask( GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE );
//Start using the stencil
glEnable( GL_STENCIL_TEST );
//Place a 1 where rendered
glStencilFunc( GL_ALWAYS, 1, 1 );
//Replace where rendered
glStencilOp( GL_REPLACE, GL_REPLACE, GL_REPLACE );
//Render stencil triangle
glTranslatef( gPolygonX, gPolygonY, 0.f );
glRotatef( gPolygonAngle, 0.f, 0.f, 1.f );
glBegin( GL_TRIANGLES );
glVertex2f( -0.f / 4.f, -SCREEN_HEIGHT / 4.f );
glVertex2f( SCREEN_WIDTH / 4.f, SCREEN_HEIGHT / 4.f );
glVertex2f( -SCREEN_WIDTH / 4.f, SCREEN_HEIGHT / 4.f );
glEnd();
//Reenable color
glColorMask( GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE );
//Where a 1 was not rendered
glStencilFunc( gStencilRenderOp, 1, 1 );
//Keep the pixel
glStencilOp( GL_KEEP, GL_KEEP, GL_KEEP );
//Render stenciled texture
glLoadIdentity();
gTexture.render( ( SCREEN_WIDTH - gTexture.imageWidth() ) / 2.f, ( SCREEN_HEIGHT - gTexture.imageHeight() ) / 2.f );
//Finished using stencil
glDisable( GL_STENCIL_TEST );
//Update screen
glutSwapBuffers();
}
示例4: loadMedia
bool loadMedia()
{
// load texture
if (!gCircleTexture.loadTextureFromFile("./images/circle.png")) {
cout << "Unable to load circle texture!" << endl;
return false;
}
// lock texture for modificatio
gCircleTexture.lock();
// calculate target color
GLuint targetColor;
GLubyte *colors = (GLubyte *)&targetColor;
colors[0] = 000;
colors[1] = 255;
colors[2] = 255;
colors[3] = 255;
// replace target color with transparent black
GLuint *pixels = gCircleTexture.getPixelData32();
GLuint pixelCount = gCircleTexture.textureWidth() * gCircleTexture.textureHeight();
GLuint i;
for (i = 0; i < pixelCount; i++) {
if (pixels[i] == targetColor)
pixels[i] = 0;
}
// diagonal lines
GLuint x, y;
int factor = 10;
for (y = 0; y < gCircleTexture.imageHeight(); y++) {
for (x = 0; x < gCircleTexture.imageWidth(); x++) {
if (y % factor != x % factor)
gCircleTexture.setPixel32(x, y, 0);
}
}
// update texture
gCircleTexture.unlock();
return true;
}