program = Gdx.gl20.glCreateProgram(); vertexshader = Gdx.gl20.glCreateShader(GL20.GL_VERTEX_SHADER); fragmentshader = Gdx.gl20.glCreateShader(GL20.GL_FRAGMENT_SHADER); Gdx.gl20.glShaderSource(vertexshader, vertexShaderSource); Gdx.gl20.glShaderSource(fragmentshader, fragmentShaderSource); Gdx.gl20.glCompileShader(vertexshader); Gdx.gl20.glCompileShader(fragmentshader); Gdx.gl20.glAttachShader(program, vertexshader); Gdx.gl20.glAttachShader(program, fragmentshader); sizepointer = Gdx.gl20.glGetUniformLocation(program, "size"); MeshBuilder builder = new MeshBuilder(); builder.begin(Usage.Position); builder.box(1, 1, 1); Mesh temp = builder.end(); short[] indices = new short[temp.getNumIndices()]; temp.getIndices(indices); float[] vertexs = new float[temp.getNumVertices()]; temp.getVertices(vertexs); FloatBuffer vertexbuff = BufferUtils.newFloatBuffer(vertexs.length); vertexbuff.put(vertexs); vertexbuff.flip(); ShortBuffer indicesbuff = BufferUtils.newShortBuffer(indices.length); indicesbuff.put(indices); indicesbuff.flip(); IntBuffer tempint = BufferUtils.newIntBuffer(2); Gdx.gl20.glGenBuffers(2, tempint); VBO = tempint.get(0); VBOi = tempint.get(1); Gdx.gl20.glBindBuffer(GL20.GL_ARRAY_BUFFER, VBO); Gdx.gl20.glBufferData(GL20.GL_ARRAY_BUFFER, vertexbuff.capacity() * 4, vertexbuff, GL20.GL_STATIC_DRAW); Gdx.gl20.glBindBuffer(GL20.GL_ARRAY_BUFFER, 0); Gdx.gl20.glBindBuffer(GL20.GL_ARRAY_BUFFER, VBOi); Gdx.gl20.glBufferData(GL20.GL_ARRAY_BUFFER, indicesbuff.capacity() * 2, indicesbuff, GL20.GL_STATIC_DRAW); Gdx.gl20.glBindBuffer(GL20.GL_ELEMENT_ARRAY_BUFFER, 0);