且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何在OpenGL纹理中更改单个纹理

更新时间:2023-11-08 23:10:58

OpenGL具有glTexSubImage2D功能,正是您想要的功能.

OpenGL has the glTexSubImage2D function, which is exactly for your purpose.

这是一个可更改一个纹理像素颜色的函数:

Here's a functions that changes the color of one texel:

void changeTexelColor(GLuint id, GLint x, GLint y, uint8_t r, uint8_t g, uint8_t b, uint8_t a) {
    uint8_t data[4];
    data[0] = r;
    data[1] = g;
    data[2] = b;
    data[3] = a;
    glBindTexture(GL_TEXTURE_2D, id);
    glTexSubImage2D(GL_TEXTURE_2D,
                    0,
                    x,
                    y,
                    1,
                    1,
                    GL_RGBA,
                    GL_UNSIGNED_BYTE,
                    data);
}