Fix windows;

This commit is contained in:
bjorn 2016-09-27 00:24:28 -07:00
parent 435d7a9cf8
commit dba017c8df
3 changed files with 10 additions and 3 deletions

View File

@ -1,3 +1,4 @@
#define _USE_MATH_DEFINES
#include "graphics.h"
#include "model.h"
#include "buffer.h"
@ -5,6 +6,7 @@
#include "../glfw.h"
#include "../util.h"
#include <stdlib.h>
#include <math.h>
#include <assimp/cimport.h>
#include <assimp/scene.h>
#include <assimp/postprocess.h>
@ -105,6 +107,10 @@ void lovrGraphicsSetProjection(float near, float far, float fov) {
mat4_setProjection(state.projection, near, far, fov, (float) width / height);
}
void lovrGraphicsSetProjectionRaw(mat4 projection) {
memcpy(state.projection, projection, 16 * sizeof(float));
}
int lovrGraphicsPush() {
vec_mat4_t* transforms = &state.transforms;
if (transforms->length >= 64) { return 1; }

View File

@ -26,6 +26,7 @@ Shader* lovrGraphicsGetShader();
void lovrGraphicsSetShader(Shader* shader);
void lovrGraphicsGetProjection(float* near, float* far, float* fov);
void lovrGraphicsSetProjection(float near, float far, float fov);
void lovrGraphicsSetProjectionRaw(mat4 projection);
int lovrGraphicsPush();
int lovrGraphicsPop();
void lovrGraphicsOrigin();

View File

@ -76,7 +76,8 @@ Headset* viveInit() {
}
state->deviceIndex = k_unTrackedDeviceIndex_Hmd;
state->clipNear = 0.1f;
state->clipFar = 30.f;
state->vrSystem->GetRecommendedRenderTargetSize(&state->renderWidth, &state->renderHeight);
glGenFramebuffers(1, &state->framebuffer);
@ -213,14 +214,13 @@ void viveRenderTo(void* headset, headsetRenderCallback callback, void* userdata)
float far = state->clipFar;
matrix = state->vrSystem->GetProjectionMatrix(eye, near, far, graphicsConvention).m;
mat4_fromMat44(projectionMatrix, matrix);
lovrGraphicsSetProjectionRaw(projectionMatrix);
Shader* shader = lovrGraphicsGetShader();
if (shader) {
int lovrTransformId = lovrShaderGetUniformId(shader, "lovrTransform");
int lovrProjectionId = lovrShaderGetUniformId(shader, "lovrProjection");
mat4 transformMatrix = mat4_multiply(eyeMatrix, headMatrix);
lovrShaderSendFloatMat4(shader, lovrTransformId, transformMatrix);
lovrShaderSendFloatMat4(shader, lovrProjectionId, projectionMatrix);
}
glEnable(GL_MULTISAMPLE);