Exemplo n.º 1
0
static void test_mixed_user_and_vbo_buffers(float x1, float y1, float x2, float y2, int index)
{
    float v3[] = {
        x1, y1, 0,
        x1, y2, 0,
        x2, y1, 0
    };
    float c3[] = {
        0, 0, 1,
        0, 0, 1,
        0, 0, 1
    };
    GLuint vbo;

    glEnableClientState(GL_COLOR_ARRAY);

    if (!index) {
        glColorPointer(3, GL_FLOAT, 0, c3);
        vbo = vboVertexPointer(3, GL_FLOAT, 0, v3, sizeof(v3), 0);
    } else {
        glVertexPointer(3, GL_FLOAT, 0, v3);
        vbo = vboColorPointer(3, GL_FLOAT, 0, c3, sizeof(c3), 0);
    }

    glDrawArrays(GL_TRIANGLES, 0, 3);

    glDisableClientState(GL_COLOR_ARRAY);
    if (vbo)
        glDeleteBuffers(1, &vbo);
}
Exemplo n.º 2
0
static void test_int_vertices(float x1, float y1, float x2, float y2, int index)
{
    int v2[] = {
        x1, y1,
        x1, y2,
        x2, y1
    };
    int v3[] = {
        x1, y1, 0,
        x1, y2, 0,
        x2, y1, 0
    };
    int v4[] = {
        x1, y1, 0, 1,
        x1, y2, 0, 1,
        x2, y1, 0, 1
    };
    int v2o[] = {
	0,
        x1, y1,
        x1, y2,
        x2, y1
    };
    int v3o[] = {
	0,
        x1, y1, 0,
        x1, y2, 0,
        x2, y1, 0
    };
    int v4o[] = {
	0,
        x1, y1, 0, 1,
        x1, y2, 0, 1,
        x2, y1, 0, 1
    };
    GLuint vbo;

    switch (index) {
        case 0: vbo = vboVertexPointer(2, GL_INT, 8, v2, sizeof(v2), 0); break;
        case 1: vbo = vboVertexPointer(3, GL_INT, 12, v3, sizeof(v3), 0); break;
        case 2: vbo = vboVertexPointer(4, GL_INT, 16, v4, sizeof(v4), 0); break;
        case 3: vbo = vboVertexPointer(2, GL_INT, 8, v2o, sizeof(v2o), 4); break;
        case 4: vbo = vboVertexPointer(3, GL_INT, 12, v3o, sizeof(v3o), 4); break;
        case 5: vbo = vboVertexPointer(4, GL_INT, 16, v4o, sizeof(v4o), 4); break;
        default: vbo = 0; assert(0); break;
    }

    glDrawArrays(GL_TRIANGLES, 0, 3);

    if (vbo)
        glDeleteBuffers(1, &vbo);
}
Exemplo n.º 3
0
static void test_double_vertices(float x1, float y1, float x2, float y2, int index)
{
	double v2[] = {
	    x1, y1,
	    x1, y2,
	    x2, y1
	};
	double v3[] = {
	    x1, y1, 0,
	    x1, y2, 0,
	    x2, y1, 0
	};
	double v4[] = {
	    x1, y1, 0, 1,
	    x1, y2, 0, 1,
	    x2, y1, 0, 1
	};
	double v2o[] = {
	    0,
	    x1, y1,
	    x1, y2,
	    x2, y1
	};
	double v3o[] = {
	    0,
	    x1, y1, 0,
	    x1, y2, 0,
	    x2, y1, 0
	};
	double v4o[] = {
	    0,
	    x1, y1, 0, 1,
	    x1, y2, 0, 1,
	    x2, y1, 0, 1
	};
	double v2s[] = {
	    0,  0,
	    x1, y1,
	    x1, y2,
	    x2, y1
	};
	double v3s[] = {
	    0,  0,  0,
	    x1, y1, 0,
	    x1, y2, 0,
	    x2, y1, 0
	};
	double v4s[] = {
	    0,  0,  0, 0,
	    x1, y1, 0, 1,
	    x1, y2, 0, 1,
	    x2, y1, 0, 1
	};
	GLuint vbo;

	switch (index) {
	case 0: vbo = vboVertexPointer(2, GL_DOUBLE, 16, v2, sizeof(v2), 0); break;
	case 1: vbo = vboVertexPointer(3, GL_DOUBLE, 24, v3, sizeof(v3), 0); break;
	case 2: vbo = vboVertexPointer(4, GL_DOUBLE, 32, v4, sizeof(v4), 0); break;
	case 3: vbo = vboVertexPointer(2, GL_DOUBLE, 16, v2o, sizeof(v2o), 8); break;
	case 4: vbo = vboVertexPointer(3, GL_DOUBLE, 24, v3o, sizeof(v3o), 8); break;
	case 5: vbo = vboVertexPointer(4, GL_DOUBLE, 32, v4o, sizeof(v4o), 8); break;
	case 6: vbo = vboVertexPointer(2, GL_DOUBLE, 16, v2s, sizeof(v2s), 0); break;
	case 7: vbo = vboVertexPointer(3, GL_DOUBLE, 24, v3s, sizeof(v3s), 0); break;
	case 8: vbo = vboVertexPointer(4, GL_DOUBLE, 32, v4s, sizeof(v4s), 0); break;
	default: vbo = 0; assert(0); break;
	}

	if (index <= 5)
		glDrawArrays(GL_TRIANGLES, 0, 3);
	else
		glDrawArrays(GL_TRIANGLES, 1, 3);

	if (vbo)
	    glDeleteBuffers(1, &vbo);
}
Exemplo n.º 4
0
static void test_half_vertices_wrapped(unsigned short x1, unsigned short y1,
                                       unsigned short x2, unsigned short y2,
                                       unsigned short one, int index)
{
    unsigned short v2[] = {
        x1, y1,
        x1, y2,
        x2, y1
    };
    unsigned short v3[] = {
        x1, y1, 0,
        x1, y2, 0,
        x2, y1, 0
    };
    unsigned short v4[] = {
        x1, y1, 0, one,
        x1, y2, 0, one,
        x2, y1, 0, one
    };
    unsigned short v2o[] = {
        0,
        x1, y1,
        x1, y2,
        x2, y1
    };
    unsigned short v3o[] = {
        0,
        x1, y1, 0,
        x1, y2, 0,
        x2, y1, 0
    };
    unsigned short v4o[] = {
        0,
        x1, y1, 0, one,
        x1, y2, 0, one,
        x2, y1, 0, one
    };
    GLuint vbo;

    switch (index) {
        case 0: vbo = vboVertexPointer(2, GL_HALF_FLOAT_ARB, 4, v2, sizeof(v2), 0); break;

        case 1: vbo = vboVertexPointer(2, GL_HALF_FLOAT_ARB, 6, v3, sizeof(v3), 0); break;
        case 2: vbo = vboVertexPointer(3, GL_HALF_FLOAT_ARB, 6, v3, sizeof(v3), 0); break;

        case 3: vbo = vboVertexPointer(2, GL_HALF_FLOAT_ARB, 8, v4, sizeof(v4), 0); break;
        case 4: vbo = vboVertexPointer(3, GL_HALF_FLOAT_ARB, 8, v4, sizeof(v4), 0); break;
        case 5: vbo = vboVertexPointer(4, GL_HALF_FLOAT_ARB, 8, v4, sizeof(v4), 0); break;

        case 6: vbo = vboVertexPointer(2, GL_HALF_FLOAT_ARB, 4, v2o, sizeof(v2o), 2); break;

        case 7: vbo = vboVertexPointer(2, GL_HALF_FLOAT_ARB, 6, v3o, sizeof(v3o), 2); break;
        case 8: vbo = vboVertexPointer(3, GL_HALF_FLOAT_ARB, 6, v3o, sizeof(v3o), 2); break;

        case 9: vbo = vboVertexPointer(2, GL_HALF_FLOAT_ARB, 8, v4o, sizeof(v4o), 2); break;
        case 10:vbo = vboVertexPointer(3, GL_HALF_FLOAT_ARB, 8, v4o, sizeof(v4o), 2); break;
        case 11:vbo = vboVertexPointer(4, GL_HALF_FLOAT_ARB, 8, v4o, sizeof(v4o), 2); break;

        default:vbo = 0; assert(0); break;
    }

    glDrawArrays(GL_TRIANGLES, 0, 3);

    if (vbo)
        glDeleteBuffers(1, &vbo);
}