Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "tesselator.h"
- Tesselator::Tesselator(){
- ClearQuads();
- ClearTextureQuads();
- }
- void Tesselator::AddVertexQuad(float x, float y, float z){
- arrayVertexQuads[vertexQuadsPos++] = x;
- arrayVertexQuads[vertexQuadsPos++] = y;
- arrayVertexQuads[vertexQuadsPos++] = z;
- vertexQuadsCount++;
- }
- void Tesselator::FlushQuads(){
- if (vertexQuadsCount){
- glInterleavedArrays(GL_V3F, 0, &arrayVertexQuads);
- glEnableClientState(GL_VERTEX_ARRAY);
- glDrawArrays(GL_QUADS, 0, vertexQuadsCount);
- glDisableClientState(GL_VERTEX_ARRAY);
- ClearQuads();
- }
- }
- void Tesselator::ClearQuads(){
- vertexQuadsCount = 0;
- vertexQuadsPos = 0;
- }
- void Tesselator::AddTextureVertexQuad(float u, float v, float x, float y, float z){
- arrayTextureVertexQuads[vertexTextureQuadsPos++] = u;
- arrayTextureVertexQuads[vertexTextureQuadsPos++] = v;
- arrayTextureVertexQuads[vertexTextureQuadsPos++] = x;
- arrayTextureVertexQuads[vertexTextureQuadsPos++] = y;
- arrayTextureVertexQuads[vertexTextureQuadsPos++] = z;
- vertexTextureQuadsCount++;
- }
- void Tesselator::FlushTextureQuads(){
- if (vertexTextureQuadsCount){
- glInterleavedArrays(GL_T2F_V3F, 0, &arrayTextureVertexQuads);
- glEnableClientState(GL_VERTEX_ARRAY);
- glEnableClientState(GL_TEXTURE_COORD_ARRAY);
- glDrawArrays(GL_QUADS, 0, vertexTextureQuadsCount);
- glDisableClientState(GL_TEXTURE_COORD_ARRAY);
- glDisableClientState(GL_VERTEX_ARRAY);
- ClearTextureQuads();
- }
- }
- void Tesselator::ClearTextureQuads(){
- vertexTextureQuadsCount = 0;
- vertexTextureQuadsPos = 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement