Fix crash in OpenVR mirror texture;

This commit is contained in:
bjorn 2017-09-18 00:39:47 -07:00
parent 6d85f512e3
commit 6c3abad9f4
2 changed files with 11 additions and 1 deletions

View File

@ -218,7 +218,7 @@ void lovrShaderBind(Shader* shader, mat4 model, mat4 view, mat4 projection, Colo
int dirtyView = force || memcmp(shader->view, view, 16 * sizeof(float));
int dirtyTransform = dirtyModel || dirtyView;
int dirtyProjection = force || memcmp(shader->projection, projection, 16 * sizeof(float));
int dirtyColor = force || memcmp(&shader->color, &color, 4 * sizeof(uint8_t));
int dirtyColor = force || memcmp(&shader->color, &color, sizeof(Color));
if (dirtyModel) {
int uniformId = lovrShaderGetUniformId(shader, "lovrModel");

View File

@ -748,9 +748,19 @@ void lovrHeadsetRenderTo(headsetRenderCallback callback, void* userdata) {
Color oldColor = lovrGraphicsGetColor();
lovrGraphicsSetColor((Color) { 255, 255, 255, 255 });
Shader* lastShader = lovrGraphicsGetShader();
if (lastShader) {
lovrRetain(&lastShader->ref);
}
lovrGraphicsSetShader(NULL);
lovrGraphicsPlaneFullscreen(state.texture);
lovrGraphicsSetShader(lastShader);
if (lastShader) {
lovrRelease(&lastShader->ref);
}
lovrGraphicsSetColor(oldColor);
}
}