本文整理汇总了C++中LTexture::unlock方法的典型用法代码示例。如果您正苦于以下问题:C++ LTexture::unlock方法的具体用法?C++ LTexture::unlock怎么用?C++ LTexture::unlock使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LTexture
的用法示例。
在下文中一共展示了LTexture::unlock方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: 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;
}