| Index: client/deps/glbench/src/trianglesetuptest.cc
 | 
| diff --git a/client/deps/glbench/src/trianglesetuptest.cc b/client/deps/glbench/src/trianglesetuptest.cc
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..6610eed68de107aa030fc200ae30b52c8fc128c7
 | 
| --- /dev/null
 | 
| +++ b/client/deps/glbench/src/trianglesetuptest.cc
 | 
| @@ -0,0 +1,85 @@
 | 
| +// Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
 | 
| +// Use of this source code is governed by a BSD-style license that can be
 | 
| +// found in the LICENSE file.
 | 
| +
 | 
| +#include <stdlib.h>
 | 
| +
 | 
| +#include "main.h"
 | 
| +#include "testbase.h"
 | 
| +#include "utils.h"
 | 
| +
 | 
| +
 | 
| +namespace glbench {
 | 
| +
 | 
| +
 | 
| +class TriangleSetupTest : public DrawElementsTestFunc {
 | 
| + public:
 | 
| +  TriangleSetupTest() {}
 | 
| +  virtual ~TriangleSetupTest() {}
 | 
| +  virtual bool Run();
 | 
| +
 | 
| + private:
 | 
| +  DISALLOW_COPY_AND_ASSIGN(TriangleSetupTest);
 | 
| +};
 | 
| +
 | 
| +
 | 
| +bool TriangleSetupTest::Run() {
 | 
| +  glViewport(-g_width, -g_height, g_width*2, g_height*2);
 | 
| +
 | 
| +  // Larger meshes make this test too slow for devices that do 1 mtri/sec.
 | 
| +  GLint width = 64;
 | 
| +  GLint height = 64;
 | 
| +
 | 
| +  GLfloat *vertices = NULL;
 | 
| +  GLsizeiptr vertex_buffer_size = 0;
 | 
| +  CreateLattice(&vertices, &vertex_buffer_size, 1.f / g_width, 1.f / g_height,
 | 
| +                width, height);
 | 
| +  GLuint vertex_buffer = SetupVBO(GL_ARRAY_BUFFER,
 | 
| +                                  vertex_buffer_size, vertices);
 | 
| +  glVertexPointer(2, GL_FLOAT, 0, 0);
 | 
| +  glEnableClientState(GL_VERTEX_ARRAY);
 | 
| +
 | 
| +  GLuint *indices = NULL;
 | 
| +  GLuint index_buffer = 0;
 | 
| +  GLsizeiptr index_buffer_size = 0;
 | 
| +
 | 
| +  {
 | 
| +    count_ = CreateMesh(&indices, &index_buffer_size, width, height, 0);
 | 
| +
 | 
| +    index_buffer = SetupVBO(GL_ELEMENT_ARRAY_BUFFER,
 | 
| +                            index_buffer_size, indices);
 | 
| +    RunTest(this, "mtri_sec_triangle_setup", count_ / 3, true);
 | 
| +    glEnable(GL_CULL_FACE);
 | 
| +    RunTest(this, "mtri_sec_triangle_setup_all_culled", count_ / 3, true);
 | 
| +    glDisable(GL_CULL_FACE);
 | 
| +
 | 
| +    glDeleteBuffers(1, &index_buffer);
 | 
| +    delete[] indices;
 | 
| +  }
 | 
| +
 | 
| +  {
 | 
| +    glColor4f(0.f, 1.f, 1.f, 1.f);
 | 
| +    count_ = CreateMesh(&indices, &index_buffer_size, width, height,
 | 
| +                        RAND_MAX / 2);
 | 
| +
 | 
| +    index_buffer = SetupVBO(GL_ELEMENT_ARRAY_BUFFER,
 | 
| +                            index_buffer_size, indices);
 | 
| +    glEnable(GL_CULL_FACE);
 | 
| +    RunTest(this, "mtri_sec_triangle_setup_half_culled", count_ / 3, true);
 | 
| +
 | 
| +    glDeleteBuffers(1, &index_buffer);
 | 
| +    delete[] indices;
 | 
| +  }
 | 
| +
 | 
| +  glDeleteBuffers(1, &vertex_buffer);
 | 
| +  delete[] vertices;
 | 
| +  return true;
 | 
| +}
 | 
| +
 | 
| +
 | 
| +TestBase* GetTriangleSetupTest() {
 | 
| +  return new TriangleSetupTest;
 | 
| +}
 | 
| +
 | 
| +
 | 
| +} // namespace glbench
 | 
| 
 |