Ejemplo n.º 1
0
/*
 * Sets the value of an attribute in the current vertex.
 *
 * The pos parameter refers to the position of the attribute
 * as specified indirectly when setting the format using
 * set_vertex_format(). e.g. 0 = first attribute, 1 = second
 * etc
 */
void
Mesh::set_attrib(unsigned int pos, const LibMatrix::vec2 &v, std::vector<float> *vertex)
{
    if (!check_attrib(pos, 2))
        return;

    std::vector<float> &vtx = !vertex ? ensure_vertex() : *vertex;

    int offset = vertex_format_[pos].second;

    vtx[offset] = v.x();
    vtx[offset + 1] = v.y();
}
Ejemplo n.º 2
0
static GLboolean
test_attrib_funcs(void)
{
   GLint vals[4];

   gen_values(vals, 1, SIGNED);
   glVertexAttribI1iEXT(Index, vals[0]);
   if (!check_attrib(vals, SIGNED, "glVertexAttribI1iEXT"))
      return GL_FALSE;

   gen_values(vals, 2, SIGNED);
   glVertexAttribI2iEXT(Index, vals[0], vals[1]);
   if (!check_attrib(vals, SIGNED, "glVertexAttribI2iEXT"))
      return GL_FALSE;

   gen_values(vals, 3, SIGNED);
   glVertexAttribI3iEXT(Index, vals[0], vals[1], vals[2]);
   if (!check_attrib(vals, SIGNED, "glVertexAttribI3iEXT"))
      return GL_FALSE;

   gen_values(vals, 4, SIGNED);
   glVertexAttribI4iEXT(Index, vals[0], vals[1], vals[2], vals[3]);
   if (!check_attrib(vals, SIGNED, "glVertexAttribI4iEXT"))
      return GL_FALSE;


   gen_values(vals, 1, SIGNED);
   glVertexAttribI1ivEXT(Index, vals);
   if (!check_attrib(vals, SIGNED, "glVertexAttribI1ivEXT"))
      return GL_FALSE;

   gen_values(vals, 2, SIGNED);
   glVertexAttribI2ivEXT(Index, vals);
   if (!check_attrib(vals, SIGNED, "glVertexAttribI2ivEXT"))
      return GL_FALSE;

   gen_values(vals, 3, SIGNED);
   glVertexAttribI3ivEXT(Index, vals);
   if (!check_attrib(vals, SIGNED, "glVertexAttribI3ivEXT"))
      return GL_FALSE;

   gen_values(vals, 4, SIGNED);
   glVertexAttribI4ivEXT(Index, vals);
   if (!check_attrib(vals, SIGNED, "glVertexAttribI4ivEXT"))
      return GL_FALSE;


   gen_values(vals, 1, UNSIGNED);
   glVertexAttribI1uiEXT(Index, vals[0]);
   if (!check_attrib(vals, UNSIGNED, "glVertexAttribI1uiEXT"))
      return GL_FALSE;

   gen_values(vals, 2, UNSIGNED);
   glVertexAttribI2uiEXT(Index, vals[0], vals[1]);
   if (!check_attrib(vals, UNSIGNED, "glVertexAttribI2uiEXT"))
      return GL_FALSE;

   gen_values(vals, 3, UNSIGNED);
   glVertexAttribI3uiEXT(Index, vals[0], vals[1], vals[2]);
   if (!check_attrib(vals, UNSIGNED, "glVertexAttribI3uiEXT"))
      return GL_FALSE;

   gen_values(vals, 4, UNSIGNED);
   glVertexAttribI4uiEXT(Index, vals[0], vals[1], vals[2], vals[3]);
   if (!check_attrib(vals, UNSIGNED, "glVertexAttribI4uiEXT"))
      return GL_FALSE;


   gen_values(vals, 1, UNSIGNED);
   glVertexAttribI1uivEXT(Index, (GLuint *) vals);
   if (!check_attrib(vals, UNSIGNED, "glVertexAttribI1uivEXT"))
      return GL_FALSE;

   gen_values(vals, 2, UNSIGNED);
   glVertexAttribI2uivEXT(Index, (GLuint *) vals);
   if (!check_attrib(vals, UNSIGNED, "glVertexAttribI2uivEXT"))
      return GL_FALSE;

   gen_values(vals, 3, UNSIGNED);
   glVertexAttribI3uivEXT(Index, (GLuint *) vals);
   if (!check_attrib(vals, UNSIGNED, "glVertexAttribI3uivEXT"))
      return GL_FALSE;

   gen_values(vals, 4, UNSIGNED);
   glVertexAttribI4uivEXT(Index, (GLuint *) vals);
   if (!check_attrib(vals, UNSIGNED, "glVertexAttribI4uivEXT"))
      return GL_FALSE;

   {
      GLbyte bvals[4];
      gen_values(vals, 4, SIGNED);
      bvals[0] = vals[0];
      bvals[1] = vals[1];
      bvals[2] = vals[2];
      bvals[3] = vals[3];
      glVertexAttribI4bvEXT(Index, bvals);
      if (!check_attrib(vals, SIGNED, "glVertexAttribI4bvEXT"))
         return GL_FALSE;
   }

   {
      GLshort svals[4];
      gen_values(vals, 4, SIGNED);
      svals[0] = vals[0];
      svals[1] = vals[1];
      svals[2] = vals[2];
      svals[3] = vals[3];
      glVertexAttribI4svEXT(Index, svals);
      if (!check_attrib(vals, SIGNED, "glVertexAttribI4svEXT"))
         return GL_FALSE;
   }

   {
      GLubyte bvals[4];
      gen_values(vals, 4, UNSIGNED);
      bvals[0] = vals[0];
      bvals[1] = vals[1];
      bvals[2] = vals[2];
      bvals[3] = vals[3];
      glVertexAttribI4ubvEXT(Index, bvals);
      if (!check_attrib(vals, UNSIGNED, "glVertexAttribI4ubvEXT"))
         return GL_FALSE;
   }

   {
      GLushort svals[4];
      gen_values(vals, 4, UNSIGNED);
      svals[0] = vals[0];
      svals[1] = vals[1];
      svals[2] = vals[2];
      svals[3] = vals[3];
      glVertexAttribI4usvEXT(Index, svals);
      if (!check_attrib(vals, UNSIGNED, "glVertexAttribI4usvEXT"))
         return GL_FALSE;
   }

   return GL_TRUE;
}