Merge remote-tracking branch 'refs/remotes/raysan5/develop' into develop

This commit is contained in:
victorfisac 2016-01-04 21:03:30 +01:00
commit 1c23edd1e5
2 changed files with 16 additions and 16 deletions

View File

@ -783,8 +783,8 @@ Ray GetMouseRay(Vector2 mousePosition, Camera camera)
{
Ray ray;
Matrix proj = MatrixIdentity();
Matrix view = MatrixLookAt(camera.position, camera.target, camera.up);
Matrix matProj = MatrixIdentity();
Matrix matView = MatrixLookAt(camera.position, camera.target, camera.up);
// Calculate projection matrix for the camera
float aspect = (float)GetScreenWidth()/(float)GetScreenHeight();
@ -792,8 +792,8 @@ Ray GetMouseRay(Vector2 mousePosition, Camera camera)
double right = top*aspect;
// NOTE: zNear and zFar values are important for depth
proj = MatrixFrustum(-right, right, -top, top, 0.01f, 1000.0f);
MatrixTranspose(&proj);
matProj = MatrixFrustum(-right, right, -top, top, 0.01f, 1000.0f);
MatrixTranspose(&matProj);
// NOTE: Our screen origin is top-left instead of bottom-left: transform required!
float invertedMouseY = (float)GetScreenHeight() - mousePosition.y;
@ -806,8 +806,8 @@ Ray GetMouseRay(Vector2 mousePosition, Camera camera)
Vector3 nearPoint = { mousePosition.x, invertedMouseY, 0.0f };
Vector3 farPoint = { mousePosition.x, invertedMouseY, 1.0f };
nearPoint = rlglUnproject(nearPoint, proj, view);
farPoint = rlglUnproject(farPoint, proj, view); // TODO: it seems it doesn't work...
nearPoint = rlglUnproject(nearPoint, matProj, matView);
farPoint = rlglUnproject(farPoint, matProj, matView); // TODO: it seems it doesn't work...
Vector3 direction = VectorSubtract(farPoint, nearPoint);
VectorNormalize(&direction);

View File

@ -397,33 +397,33 @@ void rlLoadIdentity(void)
// Multiply the current matrix by a translation matrix
void rlTranslatef(float x, float y, float z)
{
Matrix mat = MatrixTranslate(x, y, z);
MatrixTranspose(&mat);
Matrix matTranslation = MatrixTranslate(x, y, z);
MatrixTranspose(&matTranslation);
*currentMatrix = MatrixMultiply(*currentMatrix, mat);
*currentMatrix = MatrixMultiply(*currentMatrix, matTranslation);
}
// Multiply the current matrix by a rotation matrix
void rlRotatef(float angleDeg, float x, float y, float z)
{
Matrix rotation = MatrixIdentity();
Matrix matRotation = MatrixIdentity();
Vector3 axis = (Vector3){ x, y, z };
VectorNormalize(&axis);
rotation = MatrixRotate(angleDeg*DEG2RAD, axis);
matRotation = MatrixRotate(angleDeg*DEG2RAD, axis);
MatrixTranspose(&rotation);
MatrixTranspose(&matRotation);
*currentMatrix = MatrixMultiply(*currentMatrix, rotation);
*currentMatrix = MatrixMultiply(*currentMatrix, matRotation);
}
// Multiply the current matrix by a scaling matrix
void rlScalef(float x, float y, float z)
{
Matrix mat = MatrixScale(x, y, z);
MatrixTranspose(&mat);
Matrix matScale = MatrixScale(x, y, z);
MatrixTranspose(&matScale);
*currentMatrix = MatrixMultiply(*currentMatrix, mat);
*currentMatrix = MatrixMultiply(*currentMatrix, matScale);
}
// Multiply the current matrix by another matrix