提示コードのTransform::
を使う方法とそうじゃなく直接継承している関数を参照する場合この二つの違いななんでしょうか?試しましたが同じように作用します。同じなのでしょうか?
A
void FrameWork::Sprite::Renderer(const glm::mat4 view,const glm::vec3 position,const glm::ivec2 startSize,const glm::ivec2 endSize) { setSize(startSize,endSize); setUV(startSize, endSize); glBindVertexArray(vao); glBindBuffer(GL_ARRAY_BUFFER, vbo); glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(VertexAttribute) * vertex.size(), vertex.data()); Transform::setPosition(position); Transform::setRotate(glm::vec3(0, 0, 1), 0); Transform::setScale(glm::vec3(endSize - startSize,1)); shader->setUniformMatrix4fv("uTranslate", Transform::getMatTranslation()); shader->setUniformMatrix4fv("uRotate", Transform::getMatRotate()); shader->setUniformMatrix4fv("uScale", Transform::getMatScale()); shader->setUniformMatrix4fv("uViewProjection", view); glDrawArrays(GL_TRIANGLES,0,6); glBindVertexArray(0); glBindBuffer(GL_ARRAY_BUFFER, 0); }
B
void FrameWork::Sprite::Renderer(const glm::mat4 view,const glm::vec3 position,const glm::ivec2 startSize,const glm::ivec2 endSize) { setSize(startSize,endSize); setUV(startSize, endSize); glBindVertexArray(vao); glBindBuffer(GL_ARRAY_BUFFER, vbo); glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(VertexAttribute) * vertex.size(), vertex.data()); setPosition(position); setRotate(glm::vec3(0, 0, 1), 0); setScale(glm::vec3(endSize - startSize,1)); shader->setUniformMatrix4fv("uTranslate", getMatTranslation()); shader->setUniformMatrix4fv("uRotate", getMatRotate()); shader->setUniformMatrix4fv("uScale", getMatScale()); shader->setUniformMatrix4fv("uViewProjection", view); glDrawArrays(GL_TRIANGLES,0,6); glBindVertexArray(0); glBindBuffer(GL_ARRAY_BUFFER, 0); }
そのコード片だけでは判断できません(僕には)。
回答1件
あなたの回答
tips
プレビュー