本文整理汇总了C++中LTexture::textureWidth方法的典型用法代码示例。如果您正苦于以下问题:C++ LTexture::textureWidth方法的具体用法?C++ LTexture::textureWidth怎么用?C++ LTexture::textureWidth使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LTexture
的用法示例。
在下文中一共展示了LTexture::textureWidth方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: render
void render()
{
//Clear color buffer
glClear( GL_COLOR_BUFFER_BIT );
//Calculate texture maxima
GLfloat textureRight = (GLfloat)SCREEN_WIDTH / (GLfloat)gRepeatingTexture.textureWidth();
GLfloat textureBottom = (GLfloat)SCREEN_HEIGHT / (GLfloat)gRepeatingTexture.textureHeight();
//Use repeating texture
glBindTexture( GL_TEXTURE_2D, gRepeatingTexture.getTextureID() );
//Switch to texture matrix
glMatrixMode( GL_TEXTURE );
//Reset transformation
glLoadIdentity();
//Scroll texture
glTranslatef( gTexX / gRepeatingTexture.textureWidth(), gTexY / gRepeatingTexture.textureHeight(), 0.f );
//Render
glBegin( GL_QUADS );
glTexCoord2f( 0.f, 0.f ); glVertex2f( 0.f, 0.f );
glTexCoord2f( textureRight, 0.f ); glVertex2f( SCREEN_WIDTH, 0.f );
glTexCoord2f( textureRight, textureBottom ); glVertex2f( SCREEN_WIDTH, SCREEN_HEIGHT );
glTexCoord2f( 0.f, textureBottom ); glVertex2f( 0.f, SCREEN_HEIGHT );
glEnd();
//Update screen
glutSwapBuffers();
}
示例2: render
void render()
{
// clear color buffer
glClear(GL_COLOR_BUFFER_BIT);
// calculate centered offsets
GLfloat x = (SCREEN_WIDTH - gCheckerBoardTexture.textureWidth()) / 2.f;
GLfloat y = (SCREEN_HEIGHT - gCheckerBoardTexture.textureHeight()) / 2.f;
// render checkerboard texture
gCheckerBoardTexture.render(x, y);
// update screen
glutSwapBuffers();
}
示例3: update
void update()
{
//Scroll texture
gTexX++;
gTexY++;
//Cap scrolling
if( gTexX >= gRepeatingTexture.textureWidth() )
{
gTexX = 0.f;
}
if( gTexY >= gRepeatingTexture.textureHeight() )
{
gTexY = 0.f;
}
}
示例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;
}