| @@ -61,6 +61,9 @@ private: | |||||
| int ntiles; | int ntiles; | ||||
| float angle; | float angle; | ||||
| #if LOL_EXPERIMENTAL | |||||
| GLuint vao; | |||||
| #endif | |||||
| GLuint *bufs; | GLuint *bufs; | ||||
| int nbufs; | int nbufs; | ||||
| @@ -82,6 +85,10 @@ Scene::Scene(float angle) | |||||
| data->bufs = 0; | data->bufs = 0; | ||||
| data->nbufs = 0; | data->nbufs = 0; | ||||
| #if LOL_EXPERIMENTAL | |||||
| glGenVertexArrays(1, &data->vao); | |||||
| #endif | |||||
| } | } | ||||
| Scene::~Scene() | Scene::~Scene() | ||||
| @@ -89,6 +96,9 @@ Scene::~Scene() | |||||
| /* FIXME: this must be done while the GL context is still active. | /* FIXME: this must be done while the GL context is still active. | ||||
| * Change the architecture to make sure of that. */ | * Change the architecture to make sure of that. */ | ||||
| glDeleteBuffers(data->nbufs, data->bufs); | glDeleteBuffers(data->nbufs, data->bufs); | ||||
| #if LOL_EXPERIMENTAL | |||||
| glDeleteVertexArrays(1, &data->vao); | |||||
| #endif | |||||
| free(data->bufs); | free(data->bufs); | ||||
| delete data; | delete data; | ||||
| } | } | ||||
| @@ -200,10 +210,7 @@ void Scene::Render() // XXX: rename to Blit() | |||||
| } | } | ||||
| #if LOL_EXPERIMENTAL | #if LOL_EXPERIMENTAL | ||||
| GLuint vao; | |||||
| glGenVertexArrays(1, &vao); | |||||
| glBindVertexArray(vao); | |||||
| glBindVertexArray(data->vao); | |||||
| #else | #else | ||||
| glEnableClientState(GL_VERTEX_ARRAY); | glEnableClientState(GL_VERTEX_ARRAY); | ||||
| glEnableClientState(GL_TEXTURE_COORD_ARRAY); | glEnableClientState(GL_TEXTURE_COORD_ARRAY); | ||||