|
|
@ -201,4 +201,54 @@ inline GLenum SwizzleSource(Tegra::Texture::SwizzleSource source) {
|
|
|
|
return {};
|
|
|
|
return {};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline GLenum ComparisonOp(Maxwell::ComparisonOp comparison) {
|
|
|
|
|
|
|
|
switch (comparison) {
|
|
|
|
|
|
|
|
case Maxwell::ComparisonOp::Never:
|
|
|
|
|
|
|
|
return GL_NEVER;
|
|
|
|
|
|
|
|
case Maxwell::ComparisonOp::Less:
|
|
|
|
|
|
|
|
return GL_LESS;
|
|
|
|
|
|
|
|
case Maxwell::ComparisonOp::Equal:
|
|
|
|
|
|
|
|
return GL_EQUAL;
|
|
|
|
|
|
|
|
case Maxwell::ComparisonOp::LessEqual:
|
|
|
|
|
|
|
|
return GL_LEQUAL;
|
|
|
|
|
|
|
|
case Maxwell::ComparisonOp::Greater:
|
|
|
|
|
|
|
|
return GL_GREATER;
|
|
|
|
|
|
|
|
case Maxwell::ComparisonOp::NotEqual:
|
|
|
|
|
|
|
|
return GL_NOTEQUAL;
|
|
|
|
|
|
|
|
case Maxwell::ComparisonOp::GreaterEqual:
|
|
|
|
|
|
|
|
return GL_GEQUAL;
|
|
|
|
|
|
|
|
case Maxwell::ComparisonOp::Always:
|
|
|
|
|
|
|
|
return GL_ALWAYS;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
NGLOG_CRITICAL(Render_OpenGL, "Unimplemented comparison op={}", static_cast<u32>(comparison));
|
|
|
|
|
|
|
|
UNREACHABLE();
|
|
|
|
|
|
|
|
return {};
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline GLenum FrontFace(Maxwell::Cull::FrontFace front_face) {
|
|
|
|
|
|
|
|
switch (front_face) {
|
|
|
|
|
|
|
|
case Maxwell::Cull::FrontFace::ClockWise:
|
|
|
|
|
|
|
|
return GL_CW;
|
|
|
|
|
|
|
|
case Maxwell::Cull::FrontFace::CounterClockWise:
|
|
|
|
|
|
|
|
return GL_CCW;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
NGLOG_CRITICAL(Render_OpenGL, "Unimplemented front face cull={}", static_cast<u32>(front_face));
|
|
|
|
|
|
|
|
UNREACHABLE();
|
|
|
|
|
|
|
|
return {};
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline GLenum CullFace(Maxwell::Cull::CullFace cull_face) {
|
|
|
|
|
|
|
|
switch (cull_face) {
|
|
|
|
|
|
|
|
case Maxwell::Cull::CullFace::Front:
|
|
|
|
|
|
|
|
return GL_FRONT;
|
|
|
|
|
|
|
|
case Maxwell::Cull::CullFace::Back:
|
|
|
|
|
|
|
|
return GL_BACK;
|
|
|
|
|
|
|
|
case Maxwell::Cull::CullFace::FrontAndBack:
|
|
|
|
|
|
|
|
return GL_FRONT_AND_BACK;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
NGLOG_CRITICAL(Render_OpenGL, "Unimplemented cull face={}", static_cast<u32>(cull_face));
|
|
|
|
|
|
|
|
UNREACHABLE();
|
|
|
|
|
|
|
|
return {};
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
} // namespace MaxwellToGL
|
|
|
|
} // namespace MaxwellToGL
|
|
|
|