mirror of https://github.com/bjornbytes/lovr.git
Fix WebGL gamma correction;
Ugh, WebGL doesn't have sRGB backbuffers.
This commit is contained in:
parent
d03d0a39ec
commit
aab987dbef
|
@ -358,7 +358,9 @@ Color lovrGraphicsGetBackgroundColor() {
|
|||
|
||||
void lovrGraphicsSetBackgroundColor(Color color) {
|
||||
state.backgroundColor = state.linearBackgroundColor = color;
|
||||
#ifndef LOVR_WEBGL
|
||||
gammaCorrect(&state.linearBackgroundColor);
|
||||
#endif
|
||||
}
|
||||
|
||||
void lovrGraphicsGetBlendMode(BlendMode* mode, BlendAlphaMode* alphaMode) {
|
||||
|
@ -766,7 +768,9 @@ void lovrGraphicsFlushMesh(Mesh* mesh) {
|
|||
}
|
||||
|
||||
void lovrGraphicsClear(Color* color, float* depth, int* stencil) {
|
||||
#ifndef LOVR_WEBGL
|
||||
if (color) gammaCorrect(color);
|
||||
#endif
|
||||
if (color || depth || stencil) lovrGraphicsFlush();
|
||||
lovrGpuClear(state.canvas ? state.canvas : state.camera.canvas, color, depth, stencil);
|
||||
}
|
||||
|
|
|
@ -94,6 +94,9 @@ const char* lovrShaderFragmentSuffix = ""
|
|||
" colors(lovrColor, lovrDiffuseTexture, texCoord); \n"
|
||||
"#else \n"
|
||||
" lovrCanvas[0] = color(lovrColor, lovrDiffuseTexture, texCoord); \n"
|
||||
#ifdef LOVR_WEBGL
|
||||
" lovrCanvas[0].rgb = pow(lovrCanvas[0].rgb, vec3(.4545)); \n"
|
||||
#endif
|
||||
"#endif \n"
|
||||
"}";
|
||||
|
||||
|
|
Loading…
Reference in New Issue