|
|
|
@ -190,11 +190,12 @@ namespace lunarium
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Draw Methods
|
|
|
|
// Draw Methods
|
|
|
|
void OglGraphics::DrawLine(glm::vec2 point1, glm::vec2 point2, Color color, float lineWidth)
|
|
|
|
void OglGraphics::DrawLine(glm::vec2 point1, glm::vec2 point2, Color color, float lineWidth, float angle)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
mShapeShader.MakeActive();
|
|
|
|
mShapeShader.MakeActive();
|
|
|
|
mShapeShader.SetUniformMatrix("projection", 1, glm::value_ptr(mProjection));
|
|
|
|
mShapeShader.SetUniformMatrix("projection", 1, glm::value_ptr(mProjection));
|
|
|
|
glm::mat4 model = glm::mat4(1.0f);
|
|
|
|
glm::mat4 model = glm::mat4(1.0f);
|
|
|
|
|
|
|
|
model = glm::rotate(model, angle, glm::vec3(0.0f, 0.0f, 1.0f));
|
|
|
|
mShapeShader.SetUniformMatrix("model", 1, glm::value_ptr(model));
|
|
|
|
mShapeShader.SetUniformMatrix("model", 1, glm::value_ptr(model));
|
|
|
|
mShapeShader.SetUniformf("shapeColor", { color.Red, color.Green, color.Blue, color.Alpha });
|
|
|
|
mShapeShader.SetUniformf("shapeColor", { color.Red, color.Green, color.Blue, color.Alpha });
|
|
|
|
glBindVertexArray(mRectVAO);
|
|
|
|
glBindVertexArray(mRectVAO);
|
|
|
|
@ -273,11 +274,13 @@ namespace lunarium
|
|
|
|
glBindVertexArray(0);
|
|
|
|
glBindVertexArray(0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void OglGraphics::DrawFilledPolygon(float* pVerts, int numVerts, Color color)
|
|
|
|
void OglGraphics::DrawFilledPolygon(float* pVerts, int numVerts, Color color, glm::vec2 position, float angle)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
mShapeShader.MakeActive();
|
|
|
|
mShapeShader.MakeActive();
|
|
|
|
mShapeShader.SetUniformMatrix("projection", 1, glm::value_ptr(mProjection));
|
|
|
|
mShapeShader.SetUniformMatrix("projection", 1, glm::value_ptr(mProjection));
|
|
|
|
glm::mat4 model = glm::mat4(1.0f);
|
|
|
|
glm::mat4 model = glm::mat4(1.0f);
|
|
|
|
|
|
|
|
model = glm::translate(model, glm::vec3(position.x, position.y, 0.0f));
|
|
|
|
|
|
|
|
model = glm::rotate(model, angle, glm::vec3(0.0f, 0.0f, 1.0f));
|
|
|
|
mShapeShader.SetUniformMatrix("model", 1, glm::value_ptr(model));
|
|
|
|
mShapeShader.SetUniformMatrix("model", 1, glm::value_ptr(model));
|
|
|
|
mShapeShader.SetUniformf("shapeColor", { color.Red, color.Green, color.Blue, color.Alpha });
|
|
|
|
mShapeShader.SetUniformf("shapeColor", { color.Red, color.Green, color.Blue, color.Alpha });
|
|
|
|
glBindVertexArray(mRectVAO);
|
|
|
|
glBindVertexArray(mRectVAO);
|
|
|
|
@ -348,7 +351,7 @@ namespace lunarium
|
|
|
|
void OglGraphics::DrawImage(Image& image, Rectangle source, Rectangle destination, Color color, float angle)
|
|
|
|
void OglGraphics::DrawImage(Image& image, Rectangle source, Rectangle destination, Color color, float angle)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
glm::mat4 id = glm::mat4(1.0f);
|
|
|
|
glm::mat4 id = glm::mat4(1.0f);
|
|
|
|
glm::vec3 pos = glm::vec3(destination.left(), destination.top(), 0.0f);
|
|
|
|
glm::vec3 pos = glm::vec3(destination.X, destination.Y, 0.0f);
|
|
|
|
glm::mat4 trans = glm::translate(id, pos);
|
|
|
|
glm::mat4 trans = glm::translate(id, pos);
|
|
|
|
trans = glm::rotate(trans, angle, glm::vec3(0.0f, 0.0f, 1.0f));
|
|
|
|
trans = glm::rotate(trans, angle, glm::vec3(0.0f, 0.0f, 1.0f));
|
|
|
|
trans = glm::scale(trans, glm::vec3(destination.HalfWidth * 2, destination.HalfHeight * 2, 1.0f));
|
|
|
|
trans = glm::scale(trans, glm::vec3(destination.HalfWidth * 2, destination.HalfHeight * 2, 1.0f));
|
|
|
|
@ -476,24 +479,24 @@ namespace lunarium
|
|
|
|
GLuint VBO;
|
|
|
|
GLuint VBO;
|
|
|
|
GLfloat vertices[] = {
|
|
|
|
GLfloat vertices[] = {
|
|
|
|
// Pos // Tex
|
|
|
|
// Pos // Tex
|
|
|
|
0.0f, 1.0f, 0.0f, 0.0f,
|
|
|
|
-0.5f, 0.5f, 0.0f, 0.0f,
|
|
|
|
1.0f, 0.0f, 1.0f, 1.0f,
|
|
|
|
0.5f, -0.5f, 1.0f, 1.0f,
|
|
|
|
0.0f, 0.0f, 0.0f, 1.0f,
|
|
|
|
-0.5f, -0.5f, 0.0f, 1.0f,
|
|
|
|
|
|
|
|
|
|
|
|
0.0f, 1.0f, 0.0f, 0.0f,
|
|
|
|
-0.5f, 0.5f, 0.0f, 0.0f,
|
|
|
|
1.0f, 1.0f, 1.0f, 0.0f,
|
|
|
|
0.5f, 0.5f, 1.0f, 0.0f,
|
|
|
|
1.0f, 0.0f, 1.0f, 1.0f
|
|
|
|
0.5f, -0.5f, 1.0f, 1.0f
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// GLfloat vertices[] = {
|
|
|
|
// GLfloat vertices[] = {
|
|
|
|
// // Pos // Tex
|
|
|
|
// // Pos // Tex
|
|
|
|
// 0.0f, 1.0f, 0.0f, 1.0f,
|
|
|
|
// 0.0f, 1.0f, 0.0f, 0.0f,
|
|
|
|
// 1.0f, 0.0f, 1.0f, 0.0f,
|
|
|
|
// 1.0f, 0.0f, 1.0f, 1.0f,
|
|
|
|
// 0.0f, 0.0f, 0.0f, 0.0f,
|
|
|
|
// 0.0f, 0.0f, 0.0f, 1.0f,
|
|
|
|
|
|
|
|
|
|
|
|
// 0.0f, 1.0f, 0.0f, 1.0f,
|
|
|
|
// 0.0f, 1.0f, 0.0f, 0.0f,
|
|
|
|
// 1.0f, 1.0f, 1.0f, 1.0f,
|
|
|
|
// 1.0f, 1.0f, 1.0f, 0.0f,
|
|
|
|
// 1.0f, 0.0f, 1.0f, 0.0f
|
|
|
|
// 1.0f, 0.0f, 1.0f, 1.0f
|
|
|
|
// };
|
|
|
|
// };
|
|
|
|
|
|
|
|
|
|
|
|
glGenVertexArrays(1, &mImageVAO);
|
|
|
|
glGenVertexArrays(1, &mImageVAO);
|
|
|
|
|