Write a class in C++ that wraps an OpenGL texture using RAII
  Sure! Here is an example of a class in C++ that wraps an OpenGL texture using RAII (Resource Acquisition Is Initialization):
```
#include <glad/glad.h>
#include <iostream>

class Texture {
public:
    Texture(GLsizei width, GLsizei height) : width_(width), height_(height) {}
    ~Texture() { glDeleteTextures(1, &texture_); }

    void bind() const { glBindTexture(GL_TEXTURE_2D, texture_); }
    void unbind() const { glBindTexture(GL_TEXTURE_2D, 0); }

    GLsizei width() const { return width_; }
    GLsizei height() const { return height_; }

private:
    GLuint texture_;
    GLsizei width_;
    GLsizei height_;
};

int main() {
    Texture texture(1024, 1024);
    std::cout << "Texture width: " << texture.width() << std::endl;
    std::cout << "Texture height: " << texture.height() << std::endl;

    texture.bind();
    // do some texture manipulation here
    texture.unbind();

    return 0;

class Texture {
public:
    Texture(GLuint texId) : m_textureId(texId) {
        glBindTexture(GL_TEXTURE_2D, m_textureId);
    }

    ~Texture() {
        glBindTexture(GL_TEXTURE_2D, 0);
    }

    GLuint m_textureId;
};