Advertisement
Guest User

Untitled

a guest
Jul 6th, 2016
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.30 KB | None | 0 0
  1. m_materialsLocation = glGetUniformBlockIndex(m_program.id(), "MaterialsBlock");
  2.     GLint blockSize;
  3.     std::vector<const GLchar *> names({
  4.             "u_materials",
  5.             "u_materials.materials",
  6.             "u_materials.materials[0]",
  7.             "u_materials.materials.ambientTexture",
  8.             "u_materials.materials[0].ambientTexture",
  9.             "MaterialsBlock.materials",
  10.             "MaterialsBlock.materials[0]",
  11.             "MaterialsBlock.materials.ambientTexture",
  12.             "MaterialsBlock.materials[0].ambientTexture",
  13.             "materials",
  14.             "materials[0]",
  15.             "materials.ambientTexture",
  16.             "materials[0].ambientTexture",
  17.     });
  18.     std::vector<GLuint> indices(names.size());
  19.     std::vector<GLint> offsets(names.size());
  20.  
  21.     glGetActiveUniformBlockiv(m_program.id(), m_materialsLocation, GL_UNIFORM_BLOCK_DATA_SIZE, &blockSize);
  22.     glGetUniformIndices(m_program.id(), names.size(), names.data(), indices.data());
  23.     glGetActiveUniformsiv(m_program.id(), indices.size(), indices.data(), GL_UNIFORM_OFFSET, offsets.data());
  24.     for (int i = 0; i < names.size(); ++i) {
  25.         std::cout << names[i] << ": " << indices[i] << " offset " << offsets[i] << std::endl;
  26.     }
  27.  
  28.     std::cout << "Materials block size " << blockSize << std::endl;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement